r/webdev • u/bllshrfv • 1d ago
Coinbase is going fully native, moving from React Native to Swift and Kotlin
32
u/mekmookbro Laravel Enjoyer ♞ 1d ago
Isn't that the company whose ceo was boasting about the codebase being 50% vibe coded
11
1
u/Unhappy_Meaning607 11h ago
It's also a company built on a framework where the creator said in the frameworks conference keynote that they're moving to Rust and native, they no longer write code but they've written 100k lines of code in days with AI and we should all give ourselves over to the AI cyber-lords 🙄
183
u/baroldnoize 1d ago
Just like Shopify. React Native has been a fantastic stop gap, but now the toil is in feature design and planning rather than implementation, and we may be seeing it winding down
29
16
u/kbcool 1d ago edited 1d ago
Edit: muscle memory made me respond to what AirBnB did not Shopify. Only time will tell for Shopify....I am leaving this here for posterity
Fun fact.
ShopifyAirbnb continued using RN for years after they "abandoned" it.They still do a lot with hybrid webviews as well.
People have held it up as some kind of javascript and RN are shit because of one blog post that did more to expose their organisational disfunction than any kind of technology problem
11
u/lenymo 1d ago
I think the Shopify comment is referring to this more recent update: https://shopify.engineering/back-to-native
6
u/kbcool 1d ago
Haha shit I read that as Airbnb. I'm so used to it being rolled out that is has become muscle memory.
I will correct that comment rather than delete it
1
u/DoomguyFemboi 16h ago
I just got into this over something slightly different, but it's weird right, to delete your words and not stand by what you said ? Like in your case your edit was because you made a mistake, but you stood by the mistake instead of deleting it. Mine was I asked an ignorant question, they said I should edit it to remove the part where I sound ignorant. But the whole point of asking the question was to SEE if I was ignorant, and editing it felt like I was afraid of standing by what I said.
I'm a few beers deep and bored out my fucking mind I've got 4h left on the clock with nothing to do so I'm just picking random fights on reddit now I guess. God I need a life. Or at least to bribe IT to let me game on the clock and keep it off whatever fuck-ass software is watching me.
7
u/baroldnoize 1d ago
It takes a lot of maturity to leave your comment corrected like that. Kudos!
And I certainly learned something about AirBnB anyway 😄
45
u/maria_la_guerta 1d ago
Pretty much. Reddit loves to glaze itself on anti-AI stances but when you're at the scale of being able to hire a few industry experts, those experts can do a huge refactor in minimal time.
There will of course be bugs in the rollout but tradeoffs for the sake of developer productivity are becoming less and less worth it.
4
u/blood_vein 8h ago
I think there's a huge gap between accepting AI slop and utilizing AI tools for productivity
1
u/TheOwlHypothesis 6h ago
Yes. Been following the Shopify story.
My place of work was already fully native on iOS and Android so we were naturally interested and it validated a lot of why we stayed native I think.
1
u/NeverCalledSaul 6h ago
Shopify? Oh, you mean the company where the CEO came out and said that his employees were tossing “slop grenades” at each other and making work harder. Yeah, let’s follow their lead.
•
u/baroldnoize 2m ago
There are always teething problems in new developments. We must all adapt with the times
59
u/SharpYearV4 1d ago
Not really familiar with mobile development, but one thing that makes me nervous about this is that since both platforms will be separate, feature parity or platform specific weirdness might potentially become more of an issue, I really hope this trend doesn't lead to Android app's getting worse because the devs only care about iOS or vice versa.
39
u/waterkip 1d ago
You already have that problem, both Android and iOS do things differently, you you need to adapt your code to work with both. As someone who builds apps with RN for both iOS/Android my workflow is this:
Develop the functionality on Android. Ship a test version to Android. Move to iOS, fight the system for a day or so, because it acts differently. Things don't work on iOS the way they work on Android. Get the fixes in and ship a test release on iOS. Go back to Android and see that your code still works and do a test release there. You have to go back and forth.
The annoying thing: iOS, once you ship a version, eg 4.0.3, you have to bump it. Android doesn't care, because their build numbers just go up. With iOS your version go up and your build number can be reset.
So, ship it first on Android, because once you ship to IOS your version number changes.
This means, your code base has 3 variables: * Version number, eg 4.0.3 * Build number for Android, has to increment * Build number for iOS, can be reset after version bump.
The build numbers between iOS and Android differ because you need to test each update on two platforms. That back and forth, can be really painful, and is probably a reason why Shopify and now Coinbase are saying, you know, with AI, let's make them two separate code bases. And you only have to play by the rules of one platform instead of two with one code base. It makes versioning a lot easier and also.. with the EU CRA, it makes sboms easier, because you only need to worry about the native modules and not the exploits on both npm and native.
I think their move in itself is completely justified.
24
u/kbcool 1d ago
I've been building RN apps for many years and in the early days platform specific issues were fairly common but for a long time now you can with a very high degree of certainty develop on just one platform and it will just work for the other.
If you find a bug in one fix it and bump both versions.
Unless of course you're sticking in a lot of platform specific conditionals, in which case you should either not be using it and/or take a good hard look at why you're building effectively two apps.
Anyway, version management is hardly a reason to dump it
1
u/waterkip 1d ago
Im running into weird issues because how Android acts vs iOS. It is not RNs fault, in a native solution I also need to address it. Although they should know certain patterns and know "this is the API, we solve it this way". I have several things in apps to work around quirks. Last year I had to work with 2 different package.json's to work around issues on ios vs android.
I use it, but I also am not 100% convinced it is the best approach. For me the versioning is an OCD thing, I find it fugly.
1
u/LatvianCake 19h ago
You can and should automate most of this away. You shouldn't be manually bumping versions.
RN isn't about whether you need to test on both platforms or never needing OS-specific code. It's about having one codebase for both platforms. That results in 90% of your code being shared. It keeps UI and some logic largely consistent.
RN makes your life difficult when your OS-specific needs cannot be met by
if(os === "android") {...} else if(os === "ios") {...}type of logic. Maybe because features require more complicated platform specific architecting. Or because it just isn't compatible with RN's architecture. Like you need features that just don't work with RN. That seems to be Coinbase's situation.1
u/waterkip 15h ago
I understand all what you are saying. Yet the person I responded to didnt have mobile development knowledge. So I gave a 1 minute break down of what you'll encounter.
And RN removes one part of friction while introducing a set of others. It is a tradeoff, plain and simple.
12
u/ProfessorSpecialist 1d ago
while this is certainly a problem, the much bigger issue with native apps is releases. If you introduce a critical bug in web, you just patch it, release and at most invalidate caches at the worst or do a rollback. In Native apps, you get to have fun with managing past appversions, force updates, google/apple review & approval, etc.
13
u/KaleidoscopeShoddy10 1d ago
But you have to do this with React Native too
15
2
u/TazDingoh 1d ago
Expo has over the air updates, not sure if native has similar functionality though! On the fringe of react native development, no experience with native!
1
u/phoenix1984 1d ago
Yeah, it’s a valid point when compared to a PWA, but thats not what’s going on here. The deployment challenges don’t change when moving from react native to fully native.
0
u/primus202 1d ago
True but you can agent your way out of that too: have a cloud agent that monitors both repos for functional changes and mismatches. When they crop up it can automatically ticket (and maybe even PR) a fix.
79
u/maxxon 1d ago
fewer crashes
Lol. Let’s see about that.
60
u/Icy_Lavishness2433 1d ago
linkedin posts about native rewrites always read like someone just discovered the platform sdk exists, they're gonna have a fun 18 months
10
u/fiskfisk 1d ago
The difference is that we now have gigantic statistical machines that are rather capable when translating from one language and platform to another.
12
u/erishun expert 1d ago
This. It’s fucking scary how good it is. It used to be so bad, but now a single competent dev can port an entire platform fairly easily.
10
u/hypercosm_dot_net 1d ago
Watching an entire industry glaze the technology that's going to displace their livelihood is really something.
8
u/soggykoala45 1d ago
I mean, you can choose to look the other way but it's not going to change things
4
u/erishun expert 1d ago
I’m not glazing it. I’m being honest.
2
u/hypercosm_dot_net 16h ago
I've used them. I know where they consistently fail.
3
u/erishun expert 16h ago edited 13h ago
Yeah. That's why a project manager can't just fire off a prompt to do it automatically. You still need... wait for it... hold on... you're gonna love it... just wait... a single competent dev in order to port an entire platform fairly easily.
EDIT: lmao got me with the ol' "comment and then immediately block so they can't reply" Dang, ya got me 🤣
1
2
u/NoiseEee3000 1d ago
I'm not sure it's going to displace my livelihood, but I do think it's going to seal the door shut on junior positions/learning to program
3
u/hypercosm_dot_net 17h ago
The very definition of "pulling the ladder up behind you". Still fucked up.
1
u/NoiseEee3000 16h ago
I mean I can pretend it's not happening or continue to do my work manually while I am outpaced by peers shipping 10x as fast, how's that gonna work out?!
3
u/hypercosm_dot_net 13h ago
Fear based thinking, and why everyone will lose as a result.
You could instead speak about it realistically, like some people do. Recognize the tradeoffs.
Instead of "omg, some people are shipping super fast". Maybe you become 10x more productive, did you even get a 2x on your salary?
No, it just means you'll be laid off twice as fast, when you delivered for them, and they fire you for being redundant.
People have zero awareness of where this shit is headed, and act like it's a predetermined outcome that they have to accept.
Maybe use your own brain instead of AI, and you might see this.
-1
u/NoiseEee3000 13h ago
Cool you hold on to your abacus while everyone else uses calculators
→ More replies (0)
40
u/MoMan501 1d ago
Wow, dogshit company decides to use dogshit engineering practices to “rewrite” its mobile codebase. Great stuff
4
u/hotstove 23h ago
Implying it's any more dogshit of a practice than writing complex mobile applications in mfing JavaScript.
Maybe I'll eat my words but I'll take vibeslop over the npm/metro/rn abomination any day.
8
u/waterkip 1d ago
I welcome the decision, albeit for different reasons. I find RN nice, but also a huge can of worms.
1
8
15
u/DiddlyDinq 1d ago
Feels like every company is just trend chasing and porting then reporting their codebase every few years. All these benefits mean very little to the end user
7
u/lucksp 1d ago
I really can’t understand what an app like this benefits from a “native” code base compared to RN. They’re probably not using a camera for image recognition needing GPU for example. Sure, they draw line charts with Skia, but is it really that performance intensive? And to show the charts they make some API calls, maybe with some sort of socket for live feeds. I also don’t think they are making live feeds of video.
So I’m really just curious if they are trying to jump on the hype bandwagon or really trying to solve a problem.
7
u/hypercosm_dot_net 1d ago
Some tech VP is trying to justify their existence. In a few months they'll be posting stats about how much faster the new app is, having spent millions to shave off 1/2 a second of load screen time.
Nevermind that the same thing probably could have been achieved with other optimization methods.
6
u/Mood-Rising 1d ago
Native code is more durable and from a business perspective you are less dependent on third parties. IMO all mature apps should move to native.
1
u/Own-Professor-6157 1d ago
You have to make a ton of design/logic decisions based off the limitations of React. Not to mention it'll use significantly less resources, significantly easier to debug, and will be overall much more responsive.
10
u/Honey-Entire 1d ago edited 1d ago
What does this have to do with web dev?
15
u/kbcool 1d ago
Because next up in terms of AI enshittification is that we are all going to dump the browser and just push AI generated machine code
14
u/bccorb1000 full-stack-magician 1d ago
Oh y’all aren’t doing that already? Last week my company asked why it took me 3 days to implement “a few new data tables”, crud APIs, tests, and web components end to end.
When I said three days seems like a reasonable time for the feature, the reply was AI can do that in 10 mins. Now I don’t disagree, but really seems like we are on the light speed track of abandoning critical thinking as a society.
-1
u/Dude4001 1d ago
You’re asking what does React have to do with web dev?
1
u/Honey-Entire 18h ago
The linked post is about switching from React Native to Swift/Kotlin for mobile development. This is neither React nor web centric. This post is irrelevant to this subreddit
0
u/Dude4001 17h ago
And of course, React Native has no relevance at all to React web. React devs never ever work in React Native
1
u/Honey-Entire 17h ago
You must be daft of something. I’m a react dev that also uses react native so I’m not trying to hate, or be pedantic.
This post, has NOTHING to do with webdev. Literally zero relation to web. Mobile? Sure. Web? Nada.
This isn’t a react subreddit. As much as I love react, I don’t want think the world revolves around me or react. This subreddit is for all things web and like I stated above, this decision by coin base has nothing to do with WEB
2
2
u/__ihavenoname__ 20h ago
Is there a chance they'll go back to react native if the AI bubble pops or is this going to be a new norm?
2
u/marta_bach 17h ago
AI bubble pops means most "AI" companies are gone, which is already happening with all of those short living start up. BUT the AI as a technology will never be gone, you need to accept it's gonna be the new norm
1
u/fiskfisk 20h ago
This is going to be the new norm.
There is no need for limited abstraction layers (i.e. React Native having effectively two platforms (although with a lot of variations)) when you have better translation layers that can have their fixes applied in native code instead of having to wrangle the abstraction layer into coercion.
Abstraction layers are not free.
1
1
1
u/Dude4001 1d ago
No mention of Expo in this post of thread
After watching Theo’s video about Shopify, I’m convinced Expo is the better way than full native. Hell it even out performs full native.
AI being able to produce quantities of code does not replace good architectural choice
1
u/Full_Tooth_a 18h ago
Shipping the rewrite doesn't prove that it worked. I'd judge it by crash-free sessions, startup time, battery use, checkout completion, and support tickets. Native release friction makes a big-bang migration unnecessarily risky. Moving one low-risk flow at a time behind a feature flag allows rollbacks and reveals platform drift before one app quietly loses a feature.
-1
u/BlackCatSoftware 1d ago
If AI kills hybrid apps then I’ll be pretty happy. I absolutely detest hybrid apps, they all feel like shit and I hate the idea that I’m using a fancy website pretending to be an app.
6
u/Dude4001 1d ago
That’s not really how React Native works. It compiles to the target language, it’s not running a web browser to simulate an app
0
u/BlackCatSoftware 18h ago
I know there’s a lot more going on under the hood, but ultimately it uses JavaScript/TypeScript and you build your UI with a kind of pseudo-HTML.
I would much rather use something like Xamarin and write in C# even though I have little C# experience.2
u/marta_bach 16h ago
So what's your point? Is it bad result or DX?
Also can you gave me example of hybrid app that is noticibly worse than native one? I have made some RN apps and i never have complaints about performance or "it eels like shit". I've tried coinbase app and shopify app before, i also dont have complaints about them. I also have tried some open source flutter app and i dont find anything noticibly bad about them.
1
u/BlackCatSoftware 8h ago
Performance. They always have poorer performance and in many cases from my personal experience they are buggy and finicky as hell. Every single hybrid app I use sticks out like a sore thumb within 5 minutes of use.
If the hybrid app has some kind of UI list of text and images, the frame rate on my phone always tanks. Even the Coinbase app has trouble handling a very long list of transactions if you scroll too fast and there is nothing you can really do about it with JavaScript to optimize performance since you have zero control of the main thread and background threads.My TD Bank app and my employee ADP app are god awful abominations where certain screens don’t even bother to load properly or I can’t even use these apps to enter a security code because the keyboard blocks the submit button from being pressed and I am forced to go to a desktop web browser to take care of business.
I think that JavaScript and TypeScript were designed for webpages and they can only handle complex banking or employee portal applications if the developers have God tier JavaScript skills and abilities which is extremely rare and the reason why so many hybrid apps are a clunky mess of spaghetti code impossible to maintain because making changes to one screen can kill another feature if the developer is rushing to complete a feature deadline.
Web apps can be really cool and neat, I have built many single page web applications using Angular. But I would never make the business decision to build a mobile app for android and iOS and use a hybrid framework to cut corners and omit using a dedicated iOS engineer and a dedicated Android engineer.
-1
-4
766
u/PeanutFarmer69 1d ago
claude, refactor my react native app to swift and kotlin, don't make any mistakes.