60 karma · joined October 3, 2013
I’ve converted, (with lots of help of course), a massive brownfield platform product to RN. It took a lot of work, building the right bridging layers, retraining the team, figuring out best practice, etc. We still have a lot of tech debt, but it works!
Pros: Solid cross platform development, easy to teach, easy to get up and running on Xcode/Android Studio (running and working on both in first week on the job), easy to teach the native languages from there, real time bug fixes, fast iteration times on new features. Cons: No 64b on Android, Android peformance lags behind iOS, RN bugs, build process was tough to nail down, no built in navigation support.
We’ve now solved most of the huge RN exclusive problems we had with RN we had when we started out, so at this point I’m not going to be abandoning it anytime soon. There are still problems, but just your average engineering problems, same as you’d get in native development land or any other platform. It’s been about 3 years now, with a 10+ person team now, so maybe I should write it all up somewhere.
For example, some good ones I use are isLandscape or isIPad, which are both variable depending on the user, but constant for the run of the app. Perfect for a PCH file I think.
Mobile software development isn't about a developer or two building "apps" anymore, it's grown much bigger than that.
Oh yeah, let me increase my compile times, the size of my SDK, add complications for my publishers, see zero performance benefit, build a ton of scaffolding code, add yearly tech debt until Swift is actually a mature stable language. Terrible idea!
It might be the gold standard some day, but for now it's just a kid compared to ObjC, and everything that comes with being a C based language. If you're learning to make apps, by all means, you should learn Swift, but it will be quite a long time before ObjC is dead and gone, so be prepared to learn both young padawan.
Not to mention, the hype train/bandwagon is really muddying the waters. It's probably a bad idea to take advice on how performant/powerful Swift is from a Zealot, or someone that's betting everything on it.
"Private APIs do nothing that a third-party developer couldn't do in their own code, if they knew how to write it."
There are a million things under the sun that private APIs have access to that wouldn't be possible with the use of public APIs alone, good developer or not. Prime example: "UIGetScreenImage()". That function allows you to take a screenshot of the device's entire screen, your app, someone else's app, the home screen of iOS. That's a pretty big security hole, is it not?
There are countless examples just like that one hidden inside the private API bubble. Things the OS needs to function, (although the OS may not need that particular example anymore) but could cause massive security issues.
I've been using React Native cross platform for over a year, and it has a ridiculous number of issues, but they're trade offs. There are benefits that come with it. React Native is just another tool, evaluate it as you would any other framework.
However, there are also some pretty excellent benefits that come with all the Bad of React Native and JS so for the moment, it can be very much worth the trade offs. I've been working with it for over a year, and for now I'll be sticking with it.
I've grown to love it as the best jukebox I've ever owned. The speakers absolutely rock, and once you've enjoyed the sweet bliss of being able to tell your jukebox what to do, "Alexa, this song sucks, NEXT!", "Alex, stop!", "Alexa, play '<insert song, artist or album here>'", you'll never want another music player. <Sorry Jeff, but it really is the best feature by far, and that's nothing to be ashamed of.>
I also use it as a cooking timer, and for news in the morning. I can get a good hour out of "Alexa, tell me the news.", from BBC, to NPR, to just the weather for the day. Oh, and "Alexa, Simon Says <insert random things here>", has entertained us quite a bit.
The downsides, it's voice recognition still has trouble when multiple people are speaking, or it's already playing musc if it's really loud. (ie: outside listening to music on the Echo inside) Also, the apps for it just still aren't all that useful, the beat box was fun for about five minutes, and that's it. Possible I just haven't found the good ones yet.
All in all, it's still mostly a toy for early adopters who like to play with gadgets, but I can definitely see how it will eventually be incredibly useful. We now live in a Duplex, and I want a second one for the second floor.