2025: Coinbase successful transition from React Native to Native apps. Seriously haven't we seen how this play-out way too many times already? There is absolutely no incentive for Apple and Google to make sure ReactNative controlled by Facebook is the way to develop apps for their platforms. Till that is true, its absolutely nuts for any company other than facebook to develop their apps in ReactNative. Edit: Example:…
Transition to React Native
211–220 of 221 posts
Re: Transition to React Native
#212Earlier quoted context omitted.
What were the issues with Expo and why haven't you ejected to vanilla RN?
They ejected toward the end but that just makes development more difficult, particularly the deployment process. Expo is nice but the whole DX is just painful. The iOS Simulator will crash often. You need to do a hard 'expo start' relaunch often. What looks great in iOS will often be broken on Android. Trying to get pixel perfect UI and the desired UX is painful. Expo is full of bugs and limitations. RN is old and un…
Can explain the last commit being 2 days ago and the steady progress they've made on all fronts in the last year?
Re: Transition to React Native
#213Earlier quoted context omitted.
To explain further why I think iOS is harder - Where will you learn it? Apple documentation is bad. remember this? "On Apple's Piss-Poor Documentation", 1180 points to date https://news.ycombinator.com/item?id=25046691 Android documentation is great . Yes there are at least 5 ways to do something e.g. schedule background work, load files, but its very clearly deprecated in their docs/ in the code. You can, read the c…
This is helpful overall but perhaps your Xcode experience is out of date, or at least several of your comments don’t match my experience of Xcode 12.5. > The actual code editing part is just a text editor, e.g. searching for function calls involves using the search function, as opposed to a keyboard shortcut that uses static code analysis. Xcode has indexed static analysis, symbol navigation, jump to definition, quic…
Re: Transition to React Native
#214Earlier quoted context omitted.
To explain further why I think iOS is harder - Where will you learn it? Apple documentation is bad. remember this? "On Apple's Piss-Poor Documentation", 1180 points to date https://news.ycombinator.com/item?id=25046691 Android documentation is great . Yes there are at least 5 ways to do something e.g. schedule background work, load files, but its very clearly deprecated in their docs/ in the code. You can, read the c…
I’m in the US. iOS is wayyyyy more important or else I’d have 50 users of my app instead of over 2000. Android has a lot of documentation but there are so many more layers to Android development than iOS. On top of that, the best practices on iOS are very consistent while on android they change like twice a year, it’s exhausting. Finally, I personally dislike working in the Java ecosystem, so android is way less fun…
In terms of market, do your research on jobs and skill demand in the area.
Re: Transition to React Native
#215Earlier quoted context omitted.
In no particular order: - The type system was essentially like java but perhaps even worse -- in a world with Rust, Haskell, Julia, Kotlin, Scala, and even Golang this seemed egregious. - No algebraic data types (sum/union), - class-based inheritance - nullable values - using exceptions instead of errors-as-values approach. I know they worked hard on the language (rewrites are hard, there are some good talks on there…
Thanks for the elaborate answer! You probably have a higher standard on programming languages than I do. I understand that Dart is a very basic language, and comparing it to something almost academic like Haskell will probably make it seem real primitive and stupid. Coming from mostly frontend/UI product dev in C#/Java/JS I've had a blast with it though. I do agree that some common patterns are contrived (BLoC, json…
Well I spend a lot of my time yak shaving so :). Most of the time in the real world, Dart is good-enough (and is definitely better than JS without TS, from a safety/maintainability perspective).
You're absolutely right, Haskell is academic, but what impresses me about other languages was that they took little bits -- Rust took a lot, Golang took a tiny bit (protocols look more like type classes than class-based inheritance).
I'm somewhat surprised that you prefer it to C# though -- C# was supposed to be better Java, and I didn't think that Dart was better than C# outright. Maybe I'm wrong on that, if it feels more fun to use (i.e. easier so much so that it's enjoyable, but you're not frustrated).
> I do agree that some common patterns are contrived (BLoC, json serialization via codegen, etc), but I'm not sure it's fair to criticize the language itself for this.
BLoC isn't fair to criticize (it's more about Flutter), but JSON serialization is fair in my mind because it's the direct result of a too-weak type system. But yeah overall I'm making the typical HN ado about nothing. In the real world people would just pick flutter (for it's good parts) and commit.
> Also FWIW sound null safety is now the preferred way to write Dart (given your deps have adapted to it), so that part is hopefully solved.
First I've heard of this addition, and it's commendable that they're undertaking this herculean effort, but this is so meh. Typescript arguably has this problem (since it has to interop with JS), but the way you solve it is so simple there. Turn on strict mode, and you're done -- because they considered it from very early on (if not the beginning). Language designers should know what the state of the art is and make good decisions around it up front, this is like 10x worse than writing a bad framework, because you can't drop out (of the framework) -- there is nowhere to drop out to (I mean... yeah you could FFI or something ridiculous but...).
But anyway I'm just tilting at windmills -- people that have to get shit done will just get it done with Dart like they have with every other tool that is less-than-perfect. I'll just stay in my ivory molehill.
Re: Transition to React Native
#216Hi all - I support all Retail engineering at Coinbase and was one of the folks who helped shepherd this change through from inception to rollout. I'm happy to answer any questions that folks have - just thread here, and I'll either answer or pull in our team to give more detail.
What does your CI/CD look like? It took me a long time to fully flesh out a RN pipeline that was (mostly) completely automated. Are you leveraging Fastlane? Are you buliding both Android and iOS on OSX VMs? How do you deal with shipping canary versions and is that process also automated? Thanks!
Re: Transition to React Native
#217Hi all - I support all Retail engineering at Coinbase and was one of the folks who helped shepherd this change through from inception to rollout. I'm happy to answer any questions that folks have - just thread here, and I'll either answer or pull in our team to give more detail.
So what is your native mobile engineering team doing now?
Re: Transition to React Native
#218Hi all - I support all Retail engineering at Coinbase and was one of the folks who helped shepherd this change through from inception to rollout. I'm happy to answer any questions that folks have - just thread here, and I'll either answer or pull in our team to give more detail.
Sup Jesse!
Re: Transition to React Native
#219Earlier quoted context omitted.
Thanks for the elaborate answer! You probably have a higher standard on programming languages than I do. I understand that Dart is a very basic language, and comparing it to something almost academic like Haskell will probably make it seem real primitive and stupid. Coming from mostly frontend/UI product dev in C#/Java/JS I've had a blast with it though. I do agree that some common patterns are contrived (BLoC, json…
> Thanks for the elaborate answer! You probably have a higher standard on programming languages than I do. I understand that Dart is a very basic language, and comparing it to something almost academic like Haskell will probably make it seem real primitive and stupid. Coming from mostly frontend/UI product dev in C#/Java/JS I've had a blast with it though. Well I spend a lot of my time yak shaving so :). Most of the…
A lot of it probably comes from the excellent devex, but it strikes a nice balance between dynamic get-shit-done-ness that you find in JS/Python, and the more verbose, safe, structured nature of C#/Java.
Global imports, method cascading, extensive list comprehensions, named arguments, inference being heavily encouraged, flexible constructors. It's been a while since I did any serious large scale coding in C#, but I just remember it being more of a verbose slog.
Re: Transition to React Native
#220Earlier quoted context omitted.
We did consider Flutter, but (1) we already had a very strong javascript talent base that we wanted to leverage; (2) at the time when we made the decision, Flutter was still relatively early in its lifecycle. That said, we've spent a lot of time talking with teams using Flutter and we think it's awesome!
Could you say which teams you were talking to? Curious about companies adopting Flutter and why over other solutions.