
software engineer @swmansion 📱 solo skydiving student 🪂
Poland
Joined August 2023
- Tweets388
- Following286
- Followers242
- Likes2.7K
Pinned Tweet
[2/6] Performance is king. 👑
Most SVGs in our apps are static; they don’t need the heavy overhead of specialized full SVG spec rendering.
🔬Nano Icons give you the speed of font-based rendering without losing multi-color complex shape support.
Check out the repo and follow the 🧵 to learn more 👇
github.com/software-mansion-…
Stanisław Białecki retweeted
Meet the Argent family 🤓
➡️ MCP server for your agent
➡️ CLI for you and your CI
➡️ SDK for your Node.js code
Stanisław Białecki retweeted
Same story on iOS 27 with the navigation bar. It can minimize on scroll, but only if it knows which list to watch.
Wrap the list in ScrollViewMarker and it just works.
Liquid Glass tab bar not minimizing as you scroll? The native UI needs to know which list to track, and React Native doesn’t always get it right. 🤷
ScrollViewMarker in react-native-screens 5 lets you point at the right view instead of fighting the heuristic. Learn the details from @tomaboro_👇
swmansion.com/blog/introduci…
Replying to @reczko_konrad
@reczko_konrad wrote a horde-survival game with no engine. Renderer, game logic and every shader in TypeScript with TypeGPU, the same code on web and mobile, up to 120 FPS. An Expo App Awards entry, and a good one. Would you ship a game without an engine?
Stanisław Białecki retweeted
Wanted to share a cool example I've been working on with react-native-audio-api: a phone orchestra 📱🎻
Every phone plays its own part, all in time. That's what you get with access to each phone's output latency and frame-accurate scheduling.
Works with any MIDI file 🎶
Stanisław Białecki retweeted
Our fork shrunk by a huge amount with this! Great ship! Soon we’ll be on stock Enriched 🙌
Your own components, right inside Markdown 🧩
Custom block renderers in Enriched Markdown, built with @jullerino for @t3dotcodes.
Images, videos, and links become your React components, while the rest of the Markdown renders as before.
Demo below 🎷👇
Stanisław Białecki retweeted
Shaders as building blocks: @marchantweb (@npm_i_shaders) and @iwoplaza (@iwoplaza) sat down to talk about composable shaders, TypeGPU, AI-driven design, and more on the Software Mention podcast.
🎧 Watch the full episode: youtube.com/watch?v=ltMLyRpO…
Stanisław Białecki retweeted
Last day for shipping a bug-free app and winning @Heypocket in the meantime!
🐞 use Argent to debug an existing or new app
🎥 record a demo and post it with #CloseTheLoop
🏆 win prizes
argent.swmansion.com/close-t…
Stanisław Białecki retweeted
Your own components, right inside Markdown 🧩
Custom block renderers in Enriched Markdown, built with @jullerino for @t3dotcodes.
Images, videos, and links become your React components, while the rest of the Markdown renders as before.
Demo below 🎷👇
Stanisław Białecki retweeted
Every perf change has a cost somewhere.
This table shows both sides at once: CPU, frames, latency, memory, startup, renderer work, per phase, with confidence intervals.
Faster in one place, slower in another? You see it before it ships.
Stanisław Białecki retweeted
It is Duone. Just in a different place!
We decided to contribute directly to @expo expo-hinge and integrate it with Reanimated and Worklets!
Now you can use useAnimatedHinge imported from expo-hinge/reanimated and get the hinge angle and status as shared values, triggering no re-renders and updated on the UI thread even when JS is busy. 📈
It is now available, since expo-hinge 58.0.2 🎉
Both for iOS with iPhone Duo and for Android foldables 📱📱
Stanisław Białecki retweeted
A new version of create-react-native-library is out! 🎉
After a long wait, the C++ template is no longer experimental.
It now works without `includesGeneratedCode: true` with React Native 0.88+ and supports Expo SDK 58+ as well.
Plus many more fixes and improvements.
github.com/callstack/react-n…
Stanisław Białecki retweeted
#59325 Merged 🎉
Strings that iOS native modules return to JS, including fetch responses, no longer go through UTF-8:
−99% conversion time for non-ASCII text
−70% to read a 1 MB response in JS
Thanks @Javache for the review!
github.com/react/react-nativ…
Stanisław Białecki retweeted
I’ve built an app that runs Meta’s SAM 3 (848M params) fully on my iPhone :D
Had a few free hours while my agent was working, so I decided to export a big model and make it run on the phone as efficiently as possible. I love computer vision, so it had to be SAM 3.
Type a word and it segments every instance of it: 16 boats, 12 houses. The photo is encoded once (~2s), then each new word takes ~0.25s, so the masks update as you type. All of it works in airplane mode.
Stanisław Białecki retweeted
Liquid Glass tab bar not minimizing as you scroll? The native UI needs to know which list to track, and React Native doesn’t always get it right. 🤷
ScrollViewMarker in react-native-screens 5 lets you point at the right view instead of fighting the heuristic. Learn the details from @tomaboro_👇
swmansion.com/blog/introduci…
Stanisław Białecki retweeted
Full platform parity unlocked 🚀
EnrichedMarkdownTextInput is now officially live on the web. iOS, macOS, Android, and Web now share the exact same WYSIWYG Markdown experience across the board - no workarounds needed.
Try it out:
npm i react-native-enriched-markdown@nightly
✍️ EnrichedMarkdownTextInput now works on the web!
Same component as on iOS & Android:
• rich text in, Markdown out
• headings, nested lists, spoilers
• paste Markdown, keep formatting
• its own undo and redo stack, covering formatting as well as text
• RTL, line by line (coming tomorrow)
Try it out with: npm i react-native-enriched-markdown@nightly
Stanisław Białecki retweeted
Headless refresh control in React Native Header Motion is out in its v2 alpha release 🚀
Knowing Reanimated advanced APIs like useEvent makes building and integrating custom features such as this one actually quite straightforward 🤓
If you'd like to see a short breakdown of how APIs like that work and how to use them, let me know. And stay tuned!
Stanisław Białecki retweeted
Your JS thread is busy rendering a list.
Your second runtime is sitting there with nothing to do.
Worklets 0.13 from @swmansion lets Bundle Mode runtimes fetch on their own.
🧵


























