Sign in

Tomasz Sapeta 𝝠

@tsapeta.dev
2K followers 126 following 51 posts

Crafting software at @expo.dev 🪄 Author of Expo Modules on iOS 🚀 Traveler by bike 🚴‍♂️🌍 Eat Sleep Cycle 🍝😴🚴‍♂️

PostsRepliesMedia
Reposted by Tomasz Sapeta 𝝠
Samuel @samuel.fm · 10/07/2026
we're making big moves to make the app better and more performant. soon, we'll be enabling the react native new architecture. want to help us test it out? you now can! iOS: join the TestFlight beta testflight.apple.com/join/UjM5zxM9 Android: use this prerelease APK github.com/bluesky-soci...
github.com
Release v1.128.0 RC 1 (New Arch) · bluesky-social/social-app
Experimental New Arch Build This build contains experimental changes to enable the React Native New Architecture. Thank you for helping us test it out! If you find any bugs, please file a GitHub Is...
2315442
Tomasz Sapeta 𝝠 @tsapeta.dev · 04/01/2025
Thanks Daniel! Your PRs were always great, but also your reviews on some random PRs from the team were very valuable! Thank you for following what's happening in the repo! 🙇‍♂️
010
Tomasz Sapeta 𝝠 @tsapeta.dev · 04/01/2025
Congrats! 👏 I hope it's not the last one 😄
130
Tomasz Sapeta 𝝠 @tsapeta.dev · 02/01/2025
I don't rule out the possibility of returning full-time at some point 😉 For now I want to try to enjoy my unemployment 😂 If you ever need more guidance, just ping me - I'm always happy to help!
150
Tomasz Sapeta 𝝠 @tsapeta.dev · 01/01/2025
Thank you Jamie! Your recent work on react-native-macos stuff is inspiring! 😍 One of the first things I'm going to do as a community contributor is to finally add a CI workflow that builds the test app on macOS 😂
160
Tomasz Sapeta 𝝠 @tsapeta.dev · 01/01/2025
I'm glad to be the top 2 contributor in expo/expo repo at the end of this chapter. The fight for the first place was unequal though. @notbrent.dev pushes a lot of commits directly to the main branch and mostly just in the docs 🤣
1170
Tomasz Sapeta 𝝠 @tsapeta.dev · 01/01/2025
Making Expo Modules better and better, improving support for SwiftUI and macOS are still my missions that bring me joy 🫡 It's just going to slow down a bit, depending on my time and resources 💸 If you appreciate my work and want to help me with the latter, my GitHub Sponsors profile is open.
1251
Tomasz Sapeta 𝝠 @tsapeta.dev · 01/01/2025
For the next few months I would like to focus more on myself and recharge batteries 🪫 I'll be doing open source contributions to @expo.dev occasionally, as a hobby and simply because I got addicted 🤣 but I won't be part of the core team anymore.
2220
Tomasz Sapeta 𝝠 @tsapeta.dev · 01/01/2025
New year, new me. With the arrival of 2025, I'm no longer an employee of @swmansion.com. It's been fun and pleasure to be there for almost 10 years, but I need to take a break from putting all my heart and soul into the full-time job ⌛️
6400
Tomasz Sapeta 𝝠 @tsapeta.dev · 31/12/2024
Do yourself a favor and do some sports in 2025! Cheers! 🍻
080
Tomasz Sapeta 𝝠 @tsapeta.dev · 26/12/2024
At least for this year 😂
050
Tomasz Sapeta 𝝠 @tsapeta.dev · 25/12/2024
I'm done, for now
1180
Tomasz Sapeta 𝝠 @tsapeta.dev · 22/12/2024
I'm in Valencia 🇪🇸 for the next two weeks 🎄 Do I know someone here? Any recommendations?
061
Tomasz Sapeta 𝝠 @tsapeta.dev · 22/12/2024
Has anyone seen this button in any iOS app? It's a SwiftUI-only view called `ContactAccessButton` introduced in iOS 18 (developer.apple.com/documentatio...). I wonder how devs are using it, it has so many requirements and seems to be pretty flaky and unusable 😤
030
Tomasz Sapeta 𝝠 @tsapeta.dev · 16/12/2024
Migration to the New Architecture makes the situation even worse. The readme now officially states that it's not supported, even though I think the interop layer should handle it well.
110
Tomasz Sapeta 𝝠 @tsapeta.dev · 16/12/2024
We've never tried to ship it actually. Initially it was made by a group of students at the uni, but we didn't have enough bandwidth to finish and maintain it. Making expo-image, expo-video and expo-audio were much more essential.
130
Tomasz Sapeta 𝝠 @tsapeta.dev · 16/12/2024
It's unbelievable that after 6 years since Airbnb gave up on React Native, react-native-maps (they originally created it) still uses AIR prefix in the class names. It sounds like no one has taken full responsibility for this package since then. Why?
2150
Tomasz Sapeta 𝝠 @tsapeta.dev · 13/12/2024
Happy Friday the 13th 🐈‍⬛
180
Tomasz Sapeta 𝝠 @tsapeta.dev · 09/12/2024
The Witcher 3, Ghost of Tsushima, Spider-Man 2. I'd also recommend to give Horizon another chance – which one you tried? I love Forbidden West, but you may not feel it if you haven't played Zero Dawn (it recently got remastered)
010
Tomasz Sapeta 𝝠 @tsapeta.dev · 09/12/2024
Thanks for your recent contributions to macOS support! It's quite difficult to maintain so many modules on so many platforms at a good pace. I'm glad we have people like you in the community! 🥰
030
Reposted by Tomasz Sapeta 𝝠
Software Mansion @swmansion.com · 09/12/2024
The State of React Native 2024 is now open! 🚨🚨🚨 ➡️ stateofreactnative.com We've been running this survey for 3 years & it's become an invaluable resource for learning about React Native's best features and biggest pain points. Share your thoughts and help us shape the whole RN ecosystem!
its a header image with the title "State of React Native 2024"
19432
Reposted by Tomasz Sapeta 𝝠
Expo @expo.dev · 03/12/2024
🆕 We've introduced a new, simple, powerful way to play videos in apps. It's called expo-video. expo-video is replacing the now out-dated Video component of expo-av, and soon expo-audio will replace the Audio component of expo-av, making it fully deprecated. expo.dev/blog/expo-vi...
expo.dev
expo-video: a simple, powerful way to play videos in apps
expo-video is the new way to play videos in Expo apps. It is replacing the now out-dated Video component of expo-av.
510412
Reposted by Tomasz Sapeta 𝝠
Software Mansion @swmansion.com · 02/12/2024
Radon IDE 1.0 is live! Turn VSCode and Cursor into a fully-fledged IDE for React Native and Expo: ✅ Build & run RN and Expo apps in integrated panel w/o extra configuration ✅ Jump to code from inspector, view hierarchy or log console ✅ Use debugger easily in your code www.youtube.com/watch?v=07Un...
youtube.com
Radon IDE Launch video
YouTube video by Software Mansion
36719
Tomasz Sapeta 𝝠 @tsapeta.dev · 02/12/2024
expo/expo repo has just reached 35k stars on GitHub! 🌟📈 Thanks to all stargazers who played a part in this! 🤩
Graph showing a history of stars given to expo/expo repository on GitHub.
0241
Tomasz Sapeta 𝝠 @tsapeta.dev · 01/12/2024
Support for iPads? 👀
040
Tomasz Sapeta 𝝠 @tsapeta.dev · 29/11/2024
Thanks Jamie for this great contribution! And sorry it took so long 🙈
170
Tomasz Sapeta 𝝠 @tsapeta.dev · 28/11/2024
Just use @expo.dev 𝝠
0130
Tomasz Sapeta 𝝠 @tsapeta.dev · 27/11/2024
Nice! I looked at the code on iOS, I think you should make those functions async and run them on the main queue as they use UIKit APIs
140
Tomasz Sapeta 𝝠 @tsapeta.dev · 24/11/2024
ExoPlayer should be put into Google's graveyard
050
Tomasz Sapeta 𝝠 @tsapeta.dev · 22/11/2024
See you there! 👋
030
Tomasz Sapeta 𝝠 @tsapeta.dev · 22/11/2024
Looks like it's Firefox Profiler with a profile imported from Android Studio
010
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
Definitely something that must be fixed if that's still the case. I'd love to test it out once you upgrade Expo SDK to 52!
110
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
Unfortunately we can't do much with SVGs on iOS without calling into the private CoreSVG framework 😐
120
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
There are already many APIs that aren't cross-platform and it's ok. In some cases you would be fine with having the mesh gradient as a background on iOS and just a solid color on Android. Even though you use a cross-platform framework, the app doesn't always look the same and doesn't have to.
030
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
I believe it's just a matter of time when mesh gradient becomes available in Jetpack Compose too, it already has other types of gradients: developer.android.com/develop/ui/c...
developer.android.com
Brush: gradients and shaders  |  Jetpack Compose  |  Android Developers
180
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
It depends. If we really want to, mesh gradient can be implemented on Android using shaders, it's just a bit more work than with SwiftUI. We're also looking into how to support Jetpack Compose, which is quite similar to SwiftUI.
110
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
In the future – yes, we're looking into that currently. Until then you can check out github.com/andrew-levy/... 😉
github.com
GitHub - andrew-levy/jetpack-compose-react-native
Contribute to andrew-levy/jetpack-compose-react-native development by creating an account on GitHub.
010
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
In general CSS properties in SVGs (except ones that can be element's attribute like `fill`) are not working very well. Web browsers support them, but native renderers usually apply them differently or just ignore them.
020
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
SVGs is a tough topic. I wish there is just one standard and one good renderer that is used across all platforms and browsers. I had hopes that SVG Native spec would change something, but nothing is happening in the working group for a while.
120
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
It's the only case when I can say that something works better on Android than on iOS 🤣 It's supported, but I know it's a bit buggy on iOS.
210
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
The difference is that expo-image just treats them as native images, i.e. `UIImage` on iOS, `Picture` on Android. As far as I know react-native-svg draws each JSX component as a separate RN view.
290
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
No no, expo-image on Android also renders them as a vector, on iOS it is rasterized only if you use `tintColor` prop. Rasterization would make it slower.
220
Tomasz Sapeta 𝝠 @tsapeta.dev · 21/11/2024
It does and is way more performant for static SVGs. In theory you can also tint them with the `tintColor` prop, so they can be a bit dynamic 😉 However, some more complex SVGs might be rendered differently between platforms and even the webview on these platforms, but in most cases it works fine.
160
Tomasz Sapeta 𝝠 @tsapeta.dev · 20/11/2024
Opening issues on GitHub is unlikely to increase your followers count
080
Tomasz Sapeta 𝝠 @tsapeta.dev · 20/11/2024
React Native is just catching up 🙈 I think there are a lot more things happening in the mobile world than on web. Also these platforms are capable of much more => more things to implement 😅
170
Tomasz Sapeta 𝝠 @tsapeta.dev · 20/11/2024
Yes, it does. However you may see some differences and some elements/attributes may just not work. Sadly, both iOS and Android render SVGs differently. It's not as good as in webview.
060
Tomasz Sapeta 𝝠 @tsapeta.dev · 20/11/2024
Bringing MeshGradient from SwiftUI to React Native 🌈 Built with @expo.dev Modules and not yet announced feature in SDK 52 that allows to embed any SwiftUI view into RN app 📲 Implemented with the New Architecture in mind 🏛️ Demo built with @swmansion.com Reanimated and Gesture Handler 💜
31259
Tomasz Sapeta 𝝠 @tsapeta.dev · 19/11/2024
Totally forgot about it, I'm sorry! I'll take another look this week 🙂
110
Reposted by Tomasz Sapeta 𝝠
Charlie Cheever @ccheever.com · 18/11/2024
Partiful, built with Expo, was just named the Best App of 2024 by Google. blog.google/products/goo...
blog.google
Google Play’s best apps and games of 2024
We’re announcing Google Play’s Best of 2024 awards, celebrating the best apps, games and books of the year.
0377
Tomasz Sapeta 𝝠 @tsapeta.dev · 18/11/2024
Although it wasn't performance-critical code, I've just fixed how `findNodeHandle` is used in Expo Modules github.com/expo/expo/pu... Thanks for raising this! 🙏
github.com
[core] Use findNodeHandle with a native ref instead of class component instance by tsapeta · Pull Request #33016 · expo/expo
Why Calling findNodeHandle on class component instances is expensive as it calls findCurrentFiberUsingSlowPath. We can avoid it by using a native ref instead. How Call findNodeHandle with a ref to ...
2161