5 ms·
TLDR - it's too hard to find senior C++ mobile devs. I'm more intrigued by AirBNB moving away from React Native - the linked article says "RN was too small a c
by avinium 7y ago
TLDR - it's too hard to find senior C++ mobile devs.
I'm more intrigued by AirBNB moving away from React Native - the linked article says "RN was too small a component to bother supporting, and the developer experience wasn't up to par", but I'd like more detail than that.
I've been working with Flutter for the past 6 months, and it would definitely be my "go-to" for any mobile application.
To be fair, I did spend 2 weeks going down a rabbit-hole to get Flutter talking to a .NET assembly by embedding Mono and invoking via JNI/Obj C, so I know the pain of native interop. If you're mostly doing work at the native platform level, then I can imagine why you'd stay away from a cross-platform VM.
In my case, I ended up with a brittle project that was clearly going to be a PITA to maintain & automate builds for, so I just rewrote the component in question in Dart.
- bobthepanda 7y agoAirBnB has a series of in depth blog posts about their decision to abandon RN. In particular this quote seemed extremely worrying to me: > While debugging, React Native attaches to a Chrome Developer Tools instance. This is great because it is a powerful debugger. However, once the debugger is attached, all JavaScript runs within Chrome’s V8 engine. This is fine 99.9% of the time. However, in one instance, we got bit when toLocaleString worked on iOS but only worked on Android while debugging. It turns out that the Android JSC doesn’t include it and it was silently failing unless you were debugging in which case it was using V8 which does. Without knowing technical details like this, it can lead to days of painful debugging for product engineers. https://medium.com/airbnb-engineering/react-native-at-airbnb-the-technology-dafd0b43838 https://medium.com/airbnb-engineering/react-native-at-airbnb...
- abacadaba 7y agoHaving been bitten by this exact issue one or two times, meh. Par for the course in the life of a Javascript dev, really. RN would definitely still be my go to tool for the majority of green-field mobile apps. If I'd already invested in learning flutter/Dart I'd probably feel the same about that, but certainly feel no urgent need to go out and learn it. As in, I don't think there's a significant difference in what I'd be able to accomplish, and my time is probably better invested elsewhere.
- bobthepanda 7y agoThat's great from a dev perspective. Not so much from a product perspective, particularly if you operate at AirBNB scale and your issue could be costing lots of money for every second of failed debugging.
- abacadaba 7y agoi don't remember exactly how long this cost me, but it sure as fsck wasn't days. ymmv.
- saagarjha 7y ago> Android JSC Wait, React Native uses JavaScriptCore on Android?
- ec109685 7y agoYes. However Facebook now has their own JavaScript engine.
- bfrog 7y agoThe best is when the app runs faster while debugging than it does on the phone because of this exact issue. I found it nearly impossible to profile sanely
- kart23 7y agoIs flutter actually a good choice for a production app right now? I've heard really bad things about its bugs, but I admit it does look great to use and develop with.
- krzat 7y agoIt depends. If you want to write nice looking material design app, then yes, it works really well. As iOS developer I can say that flutter is much more pleasant than storyboards & UIKit (which is probably why Apple is working on SwiftUI). It's a different story if you want to use native features. Plugins provided by community offer only basic functionality, and are often very buggy: you will encounter iOS bugs, Android bugs, Flutter bugs and plugin bugs, all in one package. Anyway, it sort of works if you plugins provide stuff that you need. If they don't, you are forced to fork the plugin and add ad those features, learning Android or iOS during the process, and writing a lot of boilerplate for communication.