You CAN make highly performant software, even games, with React Native. You just need to take the time to truly understand the platform, and you will reap massive benefits.
1,212 karma · joined May 10, 2013
Previously indie app dev: Slide, Falcross, Jake and Amir. Also co-founder Onerent, Apple intern 2012.
Now working on building decentralized, people-powered networks @ Helium Foundation.
https://rawrmaan.com/
You CAN make highly performant software, even games, with React Native. You just need to take the time to truly understand the platform, and you will reap massive benefits.
No-worries devops experiences are nothing new. See Heroku.
[App Store]: https://itunes.apple.com/in/app/falcross-logic-puzzles/id500...
[Google Play]: https://play.google.com/store/apps/details?id=com.rawrmaan.f...
That's just one example, but I generally spent a ton of time writing complex shouldComponentUpdate functions and therefore making lots of mistakes with Redux. I've found MobX much more suited to building complex UIs with deep hierarchies and tens to hundreds of total elements on the screen at once, where updating only exactly when necessary is critical.
I use MobX for my game Falcross, which I wrote about in the State of React Native 2018 thread from a few days ago: https://news.ycombinator.com/item?id=17316877
I initially used Redux, and I found it actually technically impossible to get the game to perform well using Redux. I tried everything.
Forms: tcomb-form-native Recording: react-native-audio GPS: react-native-background-geolocation Camera: react-native-camera
react-native-navigation appears to me to be the best available option. The main downside is that it kind of “takes over” your app in terms of the native bootstrapping process on either platform, which can make integrating other native modules slightly more challenging.
Your app looks fantastic, by the way!
2) It works very well on low bandwidth connections. The puzzles are represented as strings and there are no remote images loaded.
3) For features that make sense in this game (sharing, IAP, haptics, notifications), it supports native functionality flawlessly. It is very easy to write native modules for RN, and there are may great npm packages that implement commonly needed native functionality.
Everything about the game is highly optimized and performs beautifully (60fps) on all 2013+ iOS devices, but inexplicably performs very poorly on even some very new Android devices. I think it has to do with problems with the Android driver for Native Animated.
Glad you’re enjoying the game :)
It’s not perfect, but it’s very damn good. One of the most impressive pieces of software I’ve encountered in 9+ years of mobile and full stack development.
I do all my projects in RN now, and I believe it gives me a 2-3x iteration speed advantage over my competitors with indistinguishable-from-native interactions (using react-native-navigation) and the ability to be on all platforms. For a solo dev, these advantages are insanely powerful and are the major reasons that my business is viable.
Last year I rewrote my game Falcross in RN and I’m so happy with my choice. Seriously, check it out and see if you can tell it’s a “hybrid” app: [App Store]: https://itunes.apple.com/in/app/falcross-logic-puzzles/id500... [Google Play]: https://play.google.com/store/apps/details?id=com.rawrmaan.f...
At 5k+ DAU I believe it is the largest production game written in RN.
There are more apps but I’m on mobile and it’s too hard to link them.
Major kudos to the RN team for all their hard work. RN makes me feel very dangerous as a solo developer and honestly makes mobile development more fun than I have ever imagined (especially paired with TypeScript). Thank you!