5 ms·
Lots of negative or neutral posts in here, so let me chime in: I love React Native. It’s not perfect, but it’s very damn good. One of the most impressive piece
by rawrmaan 8y ago
Lots of negative or neutral posts in here, so let me chime in: I love React Native.
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/id500195713?mt=8 https://itunes.apple.com/in/app/falcross-logic-puzzles/id500...
[Google Play]: https://play.google.com/store/apps/details?id=com.rawrmaan.falcross&hl=en_US 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!
- chris1993 8y agoI'm guessing that DAU in this context means 'daily active users'?
- rawrmaan 8y agoYup.
- ncallaway 8y agoI want to second this post. I've really enjoyed react native, and I dread doing application development work outside of it now. Many of the complaints in this thread are totally justified and reasonable complaints, but even with those issues I find RN to be the best platform to develop cross platform applications.
- MaxLeiter 8y agoHm, I can’t find the app on the App Store when I search “Picross Logic”, however it appears with “Falcross” Consider your DAU +1
- rawrmaan 8y agoHmm interesting find. The app title is mostly for ASO to target the keyword “picross” but I’d never tried that keyword before. Very strange! Glad you’re enjoying the game :)
- on_and_off 8y agoI have just tried it and I can't really tell that it is non native since I don't expect games to be native anyway. I do see that the buttons don't align with what the OS displays but that's ok for a game. What I do see however is that it performs VERY poorly on my Pixel 2. Which is pretty surprising considering there is not much going on on the screen. Not a major hindrance for this kind of game, but still very noticeable.
- rawrmaan 8y agoI will say that Android performance, especially in recent RN releases, has been one of my biggest issues with RN. 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.
- on_and_off 8y ago>inexplicably performs very poorly on even some very new Android devices That's the unfortunate toll you have to pay when you add another layer of abstraction like this. It is sad .. a crosplatform solution that performs horribly on one of its two targets is not a great one :/
- Jonovono 8y agoGonna try it out! Looks fun :) I'm curious, you use react-native-navigation. Did you ever try react-navigation? That's what we are currently using. Don't have any strong complaints, but know it does everything in JS. Was wondering if maybe you tried both and have any comments. BTW, here is our RN app. https://itunes.apple.com/us/app/bunch-group-video-chat-games/id1294869021?mt=8 https://itunes.apple.com/us/app/bunch-group-video-chat-games... I (we) also love RN (most of the time :P ).
- rawrmaan 8y agoI haven’t tried a recent enough version of react-navigation to comment, but the older version was so bad in terms of complexity, missing basic features and inconsistent paradigms that I am permanently taste averted to ever installing the npm package again. 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!
- amake 8y agoI tried your game on my Pixel 2, and aside from the performance issues already mentioned by other posters, there are very clear 1px misalignments (buttons borders, screen edges) that make it fairly clear (imo) the app is not native.
- rawrmaan 8y agoI don't have a lot of Android devices to test with, though it looks perfect on the ones I have. I would love to see screenshots of the imperfections you're talking about, it would be a huge help! If you see this, please send them to rawrmaan [at] gmail [dot] com. Thank you!
- inapis 8y agoOn iPhone X, the placement of the tutorial button in the notch gives a non-native feeling. But a lot of existing native apps are also guilty of this. Otherwise, kudos, it is indistinguishable
- rawrmaan 8y agoThank you! This is actually my fault and is fixed in my upcoming release. All of the other views are iPhone X optimized, which is quite easy to do in RN.
- kristianp 8y agoI haven't installed it, but I note that there's no explanation of what a "Picross / Nonogram" is on the google play page. So if I stumbled across this game I wouldn't have any incentive to try it out.
- rawrmaan 8y agoI was A/B testing a much better description and forgot to apply the winner. Thanks for the reminder!
- valuearb 8y agoHow well does it run without a network connection? How well does it run on an intermittent network connection with poor bandwidth? How well does it support key native features of both operating systems?
- rawrmaan 8y ago1) It runs very well without a network connection, you just can't access the online features. I've written my own syncing logic to make sure a user can experience the game for days or even months without having a network connection, and then have all their progress saved when they connect. 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.
- valuearb 8y agoI write native modules for a React app, and it's not easy at all. React on iOS is an unprofessional abomination, a mass of compiler and console warnings that make it almost impossible to determine what your own code is doing.
- rawrmaan 8y agoI’ll just have to disagree. There’s a bit of a learning curve, and yes the React project is full of warnings, but Xcode has filters for that, and breakpoints work brilliantly. I guess I have a big advantage in having 6+ years of native iOS dev experience.
- valuearb 8y agoYea, I only have 7 years native experience, which tells me Xcode filters don’t work worth a crap at separating out our warnings from RNs warnings, and that warnings are still a clear sign of amateurish coding practices, and burying the console in gibberish is, like the warnings, a recipe for obfuscating serious issues.
- tovkal 8y agoThere sure are some things to fix (Tutorial label placement on iPhone X, some buttons look blurry) and some behaviour that is not native (like the transition between screens), could be implemented but gives a clue that it might not be a native app. Anyhow, the game is pretty fun!
- rawrmaan 8y agoThanks for the kind words! Yup, fixed the tutorial button for the next release, and I should add @3x assets--I have poor vision so I forget about stuff like that.
- indy 8y agoYou've developed a fun little game but on Android it really feels 'out of place'. The UI elements seem to be from iOS and performance is surprisingly poor for such a graphically undemanding game
- rawrmaan 8y agoI addressed the performance in another reply, but I would agree that it is surprising. And yeah, the UI is mostly iOS-inspired. Looking to bring it to more of a happy medium over time.
- indy 8y agoThat's good to hear, although I assumed that one of the benefits of React Native was that the UI remains appropriate to the host platform
- xtracto 8y agoGiven your background, maybe you or someone else here could help me. I am about to start a new mobile project, and I have yet to decide whether to use RN or Ionic. My project will be nothing very fancy: mainly "forms" and use the camera and audio recording. But at some point in the future I would like to use hardware features more heavily (real time audio processing, GPS among others). Would you think RN would be a good fit for this? Have you had experience with Ionic? If yes, how do you think both of this compare? I know that Ionic is not native, but I am more looking to understand how many headeches will I get to use the phone hardware on each of these two platforms.
- rawrmaan 8y agoI can’t comment on Ionic, but for the features you’re talking about, RN is definitely suitable. The RN ecosystem of native modules is certainly massive. Off the top of my head: Forms: tcomb-form-native Recording: react-native-audio GPS: react-native-background-geolocation Camera: react-native-camera