Live data from Hacker News

Transition to React Native

blog.coinbase.com

41–50 of 221 posts

Re: Transition to React Native

#41
post #12

Two years from now, it will be 'why did we decide to move on from React as it was not working out' blog post It is like the circle of life with native vs semi-native (which react is), and just html apps. Teams build a fast new version, looks great as it is new code, without much baggage, and over time it gets bloated and people complain that it takes too much to debug/develop on it. Some people in a internal team wri…

I think it's possible to go native -> RN -> native without the whole being a failure. You may have a product that hasn't gained the traction that it should have because you have to build everything twice and just don't have the engineering resources to support that adequately. You move to RN, build out a whole new suite of features, gain momentum (and lots of revenue), and are then able to switch back to native now that you can afford to hire enough engineers to fully support each team.

Might Coinbase be rich enough to support native iOS and Android teams? Probably. I'm not trying to litigate Coinbase's decision.

Re: Transition to React Native

#43

Many comments here are comparing this transition to the one Airbnb did a few years back. These two transitions could not be more different. Coinbase decided to greenfield their new apps, Airbnb (attempted) to brownfield it. I've worked with a number of clients that have gone down the same path that Airbnb did, from a business perspective it makes perfect sense, keep what you have and slowly move over, but the technic…

Right on point. I have done a lot of React Native but never tried to mix native + React Native (with the exception of the occasional native feature in a mostly RN project).

Mixing an old native project with RN, doing a so called "slow transition" sounds like a really bad idea. Data communication between the native part and React Native will become an issue, you're effectively going to be running a mini distributed system within your device. There's probably 100 other problems that I can't even start to imagine. Perhaps a super experienced, world class expert in both JS and mobile development + runtimes can pull it off but I wouldn't be comfortable trying to do it (been doing mobile development directly since 2016 and have been close to mobile dev since ~2011). Re-write is a better option.

Re: Transition to React Native

#44
post #35

With regards to UI elements and layouts nothing beats React and Flexbox CSS on mobile. Also, when it works correctly Expo is a pure bliss. C'mon iOS devs you can't tell you enjoy the byzantine layout model of the native iOS apps and working in xCode. Some parts of React Native are problematic but creating screens is simple and intuitive.

SwiftUI is higher level again for layout and I would pick it over flexbox CSS on mobile any day.

Re: Transition to React Native

#46

Many comments here are comparing this transition to the one Airbnb did a few years back. These two transitions could not be more different. Coinbase decided to greenfield their new apps, Airbnb (attempted) to brownfield it. I've worked with a number of clients that have gone down the same path that Airbnb did, from a business perspective it makes perfect sense, keep what you have and slowly move over, but the technic…

if i remember correctly, Airbnb had many issues with RN that were not related to their incremental migration, such as the issues they had with things like debugging, where it was almost impossible to fix certain bugs due to RN using different JS engines depending on platform and context (for ex running with a debugger causes RN to use V8 whereas running locally on iOS / Android it uses JavaScriptCore or Hermes, respectively). RN is awesome but imo has some pretty serious pain points.

Re: Transition to React Native

#47

Many comments here are comparing this transition to the one Airbnb did a few years back. These two transitions could not be more different. Coinbase decided to greenfield their new apps, Airbnb (attempted) to brownfield it. I've worked with a number of clients that have gone down the same path that Airbnb did, from a business perspective it makes perfect sense, keep what you have and slowly move over, but the technic…

What a trope that AirBnB story has become. They mixed their gigantic native codebase with React Native code.

Mixing native and React Native = bad.

Doing pure React Native (for everything but ultra high-performance and apps that interact tightly with hardware) = good.

Re: Transition to React Native

#48

Anyone got experience with both RN and Flutter willing to chime in on how they compare? So far I've been fairly satisfied with Flutter, however there are some glaring performance issues (though it sounds like these will be addressed in due course).

My team's anecdotal experience: In February of last year we moved from RN to Flutter. We are super happy with the switch. Our app in Flutter is used by around 1.3M users in 3 different countries. Our Flutter app is more stable (less crashlytics bugs), faster (performance wise) and keeps our mobile team happy (better developer experience). We also use Flutter Web for one app used by around 25k users, even though it is cool reusing some things from the mobiles apps, it still needs to improve in performance and stability.

Re: Transition to React Native

#49
post #34

I've been doing a RN app lately after not using it for almost two years. It's still a very fast way to iterate on both Android & iOS but it also still feels extremely brittle. I've tried and failed to upgrade to the latest version of RN several times now but every time gotten tangled up in dependency hell. I also haven't been able to get it to build on my M1 Mac at all. RN is good for fast prototyping and market valu…

If at all possible, I can't recommend Expo enough. I hated building RN apps prior to it, and now I hate building apps without it.

Isn't the apk size much larger if you use Expo? Or is that not the case anymore?

Re: Transition to React Native

#50

Having just finished an 8 month Expo RN contract I'm excited to never touch it again. For personal projects keen to see how far I can go with Svelte PWA + Capacitor. Google + Microsoft should really double-down on PWA apps. I think at one point Microsoft was crawling the web and automatically listing any PWA in their app store. If that became the norm then maybe Apple will make their PWA install UX less deliberately…

Are there any disadvantages of using PWA + Capacitor instead of RN? Did you use Ionic for it?
Post reply on HN