Sign in

Krzysztof Magiera

@kzzzf.bsky.social
1.5K followers 105 following 92 posts

Software Mansion • React Native • Radon IDE

PostsRepliesMedia
Krzysztof Magiera @kzzzf.bsky.social · 19/09/2025
Would add LG form sheets too that will hopefully land in the next version of react native screens
030
Krzysztof Magiera @kzzzf.bsky.social · 19/09/2025
Yes. Screens have a custom implementation for full screen swipe that can enabled with a prop. With the next version it will however default to the native full screen swipe behavior
110
Krzysztof Magiera @kzzzf.bsky.social · 15/09/2025
Note that simple_push still doesn't modify the default behavior but provides an alternative animation that tries to match the default behavior. This will be different in iOS 26 where push/pop have a rubber-band effect now
020
Krzysztof Magiera @kzzzf.bsky.social · 15/09/2025
yeah, simple_push really seems like the only way to go here. We've spent some time trying to match the default behavior (you can read more about it here: github.com/software-man... ) Open to changing that if you can suggest a better easing curve
120
Krzysztof Magiera @kzzzf.bsky.social · 14/09/2025
Default transitions are hardly customizable on iOS. Especially now with iOS 26 where they made a ton of changes and the default transitions behave differently, I wonder how the x app would feel (given it is indeed custom transition for push). I can see if there’s anything we could do next week
130
Krzysztof Magiera @kzzzf.bsky.social · 03/09/2025
As for that one I’m not so sure, it may just add another handler when you call it for the second time. Would need to check
110
Krzysztof Magiera @kzzzf.bsky.social · 03/09/2025
Can’t you make the reference stable with useMemo though and just reconfigure it when needed?
110
Krzysztof Magiera @kzzzf.bsky.social · 03/09/2025
Another way to do it is to keep the drawer gesture references which may stable too with useMemo and only co figure it once. You can reassign the gesture instance to new components and I think you should be able to event have it used in two different components at the same time
110
Krzysztof Magiera @kzzzf.bsky.social · 03/09/2025
If the drawer changes frequently this could be a problem. The native gesture will be accumulating all the previous drawer gesture references which may become too big. It actually only keeps the id so each one wont contribute a lot but if it grows indefinitely it could be a problem
110
Krzysztof Magiera @kzzzf.bsky.social · 05/05/2025
If you have any feedback from using the tool I'd be super valuable to hear your thoughts. Thanks!
050
Krzysztof Magiera @kzzzf.bsky.social · 05/05/2025
We also contribute changes or work with other tools that we integrate such that we can eventually get rid of these with some future versions of RN.
140
Krzysztof Magiera @kzzzf.bsky.social · 05/05/2025
There are a couple of "hacks" that may be considered fragile but they typically stem from current limitations in RN tooling. A lot of them are mitigated or completely obsolete on newer versions of RN while we keep them around in order to support older versions.
140
Krzysztof Magiera @kzzzf.bsky.social · 05/05/2025
It might seem to be too good to be true, but we’ve worked hard over many months to get it to the point we're at now. There are still some rough edges but works very well for many people already.
140
Krzysztof Magiera @kzzzf.bsky.social · 18/04/2025
🙋‍♂️ will be there
130
Krzysztof Magiera @kzzzf.bsky.social · 14/04/2025
Read more about Radon AI: ide.swmansion.com/docs/feature... And check out the full changelog for the 1.5 release: github.com/software-man...
ide.swmansion.com
Radon AI | Radon IDE – An IDE for React Native
Radon AI is a GitHub Copilot Chat participant enhanced with up-to-date information about the React Native ecosystem.
030
Krzysztof Magiera @kzzzf.bsky.social · 14/04/2025
Introducing Radon AI for GitHub Copilot! 📚It taps into our daily-updated database of docs & code samples from top libraries in RN directory, giving Copilot the best context for your queries 🧐It understands versions of packages you're using for improved quality of suggestions
140
Krzysztof Magiera @kzzzf.bsky.social · 14/04/2025
🚀 Radon IDE 1.5 is out! 🚨🚨 NEW 💬 Radon AI – Chat participant for GitHub Copilot with up-to-date React Native knowledge And more: ⚡ Improved EAS workflows 📱 Home / App Switch buttons support 🪲 Improved error & exception handling with clickable links 🔧 Support for RN 0.79
1165
Krzysztof Magiera @kzzzf.bsky.social · 11/02/2025
Just published Radon IDE 1.3 with: 🛜 built-in Network Inspector 0️⃣ zero config integrated Redux DevTools 💅🏻 the panel now matches editor theme by default (contributed by @kszlezingier.bsky.social ) 👾 number of important fixes to debugger and project workflows Install it here: ide.swmansion.com
0261
Krzysztof Magiera @kzzzf.bsky.social · 22/01/2025
It required small changes to Fabric but thanks to the help from Meta we got that sorted a long time ago. Other than that Fabric is really well designed and we would have to make a ton of compromises if it wasn't in place and we had to work with the old architecture (that's why Rea4 is Fabric only)
050
Krzysztof Magiera @kzzzf.bsky.social · 22/01/2025
As for the compromises, there isn't anything significant that comes to mind. The biggest challenge was to figure out how to handle prop updates that aren't triggered by react re-renders, but we actually come up with the right technique in Reanimated 3 already when integrating with Fabric.
151
Krzysztof Magiera @kzzzf.bsky.social · 22/01/2025
Those are all great questions. We have a good contact with people at meta and been discussing this as well. There are definitely different tradeoffs so difficult to say at this point if this will land upstream in the near future.
130
Krzysztof Magiera @kzzzf.bsky.social · 21/01/2025
This is the most important update to Reanimated since worklets. Really proud of the team 🐎
2359
Krzysztof Magiera @kzzzf.bsky.social · 19/01/2025
There’s a chance this will work without being wrapped. I don’t know to be honest. Of course as long as you don’t nest buttons under components that use gestures too
030
Krzysztof Magiera @kzzzf.bsky.social · 19/01/2025
So you can’t make the Animated wrapper for a component that is already wrapped. BTW: reanimated doesn’t have this restriction but the example is for Animated API not Reanimated
130
Krzysztof Magiera @kzzzf.bsky.social · 19/01/2025
I don’t know if it is needed. Would have to try it. All button components are by default wrapped this way such that they can be referenced in other gesture detectors for orchestration. The “pure” button is not wrapped because Animated requires direct native component for createAnimatedComponent
130
Krzysztof Magiera @kzzzf.bsky.social · 17/01/2025
If you need that animation to run as worklet, this would require diving a bit deeper into mostly undocumented "PureNativeButton" docs.swmansion.com/react-native... – there's example code there for Animated but you can do something similar with Reanimated and then pass worklet to onActiveStateChange
docs.swmansion.com
Buttons | React Native Gesture Handler
Gesture handler library provides native components that can act as buttons. These can be treated as a replacement to TouchableHighlight or TouchableOpacity from RN core. Gesture handler's buttons reco...
230
Krzysztof Magiera @kzzzf.bsky.social · 17/01/2025
this could be some bug in Pressable implementation. By this fragment I can't tell if Pressable is imported from Gesture Handler or from React Native. For this usecase I'd recommend trying BaseButton and use onActiveStateChange to trigger the animation: docs.swmansion.com/react-native...
docs.swmansion.com
Buttons | React Native Gesture Handler
Gesture handler library provides native components that can act as buttons. These can be treated as a replacement to TouchableHighlight or TouchableOpacity from RN core. Gesture handler's buttons reco...
240
Krzysztof Magiera @kzzzf.bsky.social · 15/01/2025
Sorry to hear that. You can use customBuild configuration which allows you to specify build command that then could just print the apk location ide.swmansion.com/docs/guides/... but if you have time I would appreciate if you could file an issue so that we can find a proper fix
ide.swmansion.com
Configuring the IDE | Radon IDE – An IDE for React Native
On this page we only discuss configuration that aims to deal with non-standard React Native project setups.
100
Krzysztof Magiera @kzzzf.bsky.social · 15/01/2025
Full changelog and local download options available from releases page: github.com/software-man...
github.com
Release v1.2.0 · software-mansion/radon-ide
What's Changed Add support for react native 77 by @filip131311 in #864 Improve device settings by @filip131311 in #869 Update disabling of UrlBars buttons by @p-malecki in #871 Add feedback modal...
020
Krzysztof Magiera @kzzzf.bsky.social · 15/01/2025
First Radon IDE update in 2025 with: 🔧 Redux and React Query tools (more tools incoming) 7️⃣ support for RN 0.77 🏗️ local EAS builds support 📱 ui updates making more room for device 🏋️ more stability improvements and bug fixes Radon IDE is also now available in Windsurf 🌊
2341
Krzysztof Magiera @kzzzf.bsky.social · 15/01/2025
Great minds think alike
130
Krzysztof Magiera @kzzzf.bsky.social · 14/01/2025
the difference here is that unsubscribing from queries also prevents the query logic from running (I don't know react query well enough to be able to tell how much of a saving that could be). So in this case it also skips the query logic + the render (unless there's another factor triggering render)
150
Krzysztof Magiera @kzzzf.bsky.social · 14/01/2025
freeze works automatically across all the screens in the app, so there's no need to configure that on individual query level, and it is also agnostic to whoever triggered re-render.
130
Krzysztof Magiera @kzzzf.bsky.social · 03/01/2025
With FlatList you could use renderScrollComponent prop reactnative.dev/docs/virtual... so when you want to achieve something similar, you could pass a render function that renders Reanimated.ScrollView instead of normal one
reactnative.dev
VirtualizedList · React Native
Base implementation for the more convenient ` and components, which are also better documented. In general, this should only really be used if you need more flexibility than FlatList` provides, e.g. ...
110
Krzysztof Magiera @kzzzf.bsky.social · 03/01/2025
depends what you want to do with it. I imagine this is for animating underlying scroll view properties. In that case you could just swap out the ScrollView with one exported by reanimated (Reanimated.ScrollView). This way you wouldn't need that intermediate class component there at all.
100
Krzysztof Magiera @kzzzf.bsky.social · 08/12/2024
Noted 🫡 but I’d expect this time for real this isn’t bug in screens. It just uses freeze on screens that aren’t visible which is the case of preloaded ones. So I’d require this information to be provided by navigation which is perhaps not happening
240
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
The reason is that GH exports already "wrapped" component which apparently doesn't have a way of configuring the behavior you want here. So when you wrap it in a second "wrapper" the things just don't work. Again – the culprit is again a lack of docs / examples
010
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
One thing that you noted in a comment on github.com/software-man... is that it only works with regular ScrollView or Animated.ScrollView, but doesn't work with ScrollView exported from Gesture Handler.
120
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
Thank you for investigating this and sorry you had to go through that. I see this is extra confusing and specifically around Gesture.Native there's a lack of proper documentation and example.
110
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
how does it workarounds the issue with conditional rendering? Or maybe that issue doesn't surface in the app for now?
000
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
By default there’s a race between these two gestures and it makes things unpredictable. This will define clear behavior when scroll needs to wait for pan. The consequence is that recognising scroll will be delayed based on the criteria when pan would fail (i.e. based on positive x offset)
140
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
So what I’d try is to use Native Gesture for the scrollview with requireExternalGestureToFail that pints to the Pan docs.swmansion.com/react-native...
docs.swmansion.com
Native gesture | React Native Gesture Handler
A gesture that allows other touch handling components to participate in RNGH's gesture system. When used, the other component should be the direct child of a GestureDetector.
120
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
Thanks. Afk so can’t try this, but judging be the code it seems like the problem is because there’s no coordination defined. I think for this to work consistently you’ll need to have the Pan to take priority.
120
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
Darn, was really hoping this would work. Is this something that can be reproduced on some small set of components? Like just the paging view + right swipe gesture? Could it be that the horizontal scroll is affecting the behaviour?
110
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
I don’t think there’s a good direct way to debug this at that stage. Typically before it gets reset it’d also get one of the delegate methods called for „shouldRrquireToFail” or similar. You get the other recognizer there that you could save and check later if it activated
010
Krzysztof Magiera @kzzzf.bsky.social · 07/12/2024
Does it have to be pager-view? ScrollView has paging and horizontal props and should work with gesture handle well.
140
Krzysztof Magiera @kzzzf.bsky.social · 05/12/2024
That's interesting. If most devs don't build locally how do you get the up-to-date builds for Android and iOS? Does this rely on EAS or some other way of distributing the binaries?
100
Krzysztof Magiera @kzzzf.bsky.social · 05/12/2024
You should also see more details about the bundle error when you open the extension logs: ide.swmansion.com/docs/guides/...
ide.swmansion.com
Troubleshooting | Radon IDE – An IDE for React Native
Troubleshooting issues with Radon IDE
100
Krzysztof Magiera @kzzzf.bsky.social · 05/12/2024
This could be related to monorepo setup. Perhaps storybook is imported only from some external package? What monorepo tool are you using? We have compatibility table for monorepo tools: ide.swmansion.com/docs/getting... y
ide.swmansion.com
Compatibility | Radon IDE – An IDE for React Native
This page lists different React Native application setups that are officially supported by the most recent version of Radon IDE.
100
Krzysztof Magiera @kzzzf.bsky.social · 05/12/2024
They are the same functionality wise. For business license we offer a way to purchase multiple seats under single account but that’s unrelated to the IDE functionality
110