Should You Still Learn React Native in 2027?
Beto, November 2026
Two months ago, Shopify announced that it's moving all of its mobile apps from React Native back to Swift and Kotlin. Now Discord, one of the most popular apps ever built with React Native, is moving away too.
Since then, I keep getting the same question: should I still learn React Native in 2027?
Some people go even further and ask if they should learn to code at all. That one is a bit concerning.
This question is personal for me. React Native changed my life. I was learning it in 2022 while I was unemployed, and sharing what I learned played a big role in getting me hired at Walmart, and later at Expo. So I'm going to do my best to give you an honest answer, even if it's not the one you'd expect from me.
But first, let's look at what actually happened. The reasons matter more than the headlines.
What actually happened
Shopify went back to native. On September 10, Shopify announced it's moving its mobile apps from React Native to Swift and Kotlin. The Shop app already made the switch, going from proof of concept to native apps in the stores in 12 weeks. Shopify was clear this wasn't about performance. They said their React Native apps are fast. What changed is AI. Agents made building the same feature in Swift and Kotlin a lot cheaper, and staying close to the platform started to matter more. I broke down their posts in my Shopify article.
Shopify isn't the only one. Coinbase moved to React Native in 2021, and a recent Coinbase job post describes a rewrite of its app in Swift and Kotlin.
Discord is replacing React Native with Rust. On November 4, Discord's CTO, Stanislav Vishnevskiy, shared that Discord is rebuilding its apps around a shared Rust codebase. Electron goes away on desktop, and React Native goes away on mobile. The mobile UI stays native, but the app code is shared with desktop through Rust. Nothing has shipped yet.
Part of the reason is sharing one codebase between desktop and mobile. The rest is all about how the app feels: boot time, memory, and everything feeling instant when you click around. In one of his demos, he said the new Android app might be the most responsive app on his phone. And Discord has been open about this for a while. Back in 2025, it wrote that React Native came with costs, especially startup times on lower-end phones.
Even Expo is trying something new. On November 9, Charlie Cheever, Expo's co-founder, shared a preview of Exact, a new app framework written in Rust and built for AI agents. There's no React in it, and it's still pre-alpha. Charlie did a great job explaining the thinking behind it in his thread. He said the two things people care about most with native performance are smoothness and startup time. Sound familiar? It's the same thing Discord is chasing.
People have been asking Charlie great questions about it, and he's been honest that it's early. When someone asked about porting their Expo apps to Exact, he said agents usually do a pretty good job porting existing Swift or Expo apps, and that right now each port also tends to uncover something Exact is missing or needs to fix.
Someone even joked that Expo is basically ejecting from React Native, which is funny if you remember the old days, when ejecting from Expo was the tradeoff you made to get full native access.
So should you panic? No. James Ide, Expo's other co-founder, made it clear that the Expo framework for React Native is actively supported. And React Native itself now lives under the React Foundation, an independent foundation backed by companies like Meta, Microsoft, Amazon and Expo.
With everyone talking about going native, I know some indie developers and companies are getting nervous. You don't need to be. React Native is in really good shape right now, and I'd say it will be for at least the next year. If you already have a React Native app, don't rewrite it because of the news. Rewrite only if you have a real problem you can measure, like performance or a feature you can't build. There's no need to rush into a decision you might regret later.
After that, with AI improving this fast, I honestly don't feel confident saying what happens next.
React Native isn't the new kid anymore
Let's be real. React Native has been around for more than 10 years. It came out in 2015. SwiftUI came out in 2019, and Jetpack Compose hit 1.0 in 2021. When React Native came out, the native tools we use today didn't even exist.
And it has proven that it works. Shopify, Coinbase and Discord built big apps with it, and even Instagram used it for parts of its app. For years, React Native was the hot thing in mobile, and it earned it. It's a robust tool that just works.
That's also what makes it hard to change. A lot of companies depend on React Native, so every big change has to keep thousands of production apps working. The New Architecture is a good example. It was announced in 2018 and only became the default in 2024.
That's part of why teams are exploring completely new paths, like Discord building its own Rust core, and Expo trying a completely different mindset with Exact.
Why is everyone exploring now? Because you can build almost anything, in almost any language. The agent writes the code.
The framework doesn't really matter anymore
Which brings me to my point. The framework matters a lot less than it used to.
You could arguably build your own framework if you wanted to, and your AI would handle most of the work. In a way, that's what Discord is doing.
One of my takes lately is that picking a framework is going to come down to developer preference. You don't have to master a framework to use it anymore. You prompt your agent to use it. What still matters is that you understand how apps work underneath.
I know that's a big claim, so let me show you.
Let me show you
Duo is one of my newest apps. It lets you control your Mac from your iPhone. Oyelo, my app that turns articles into audio, has an achievements system I really like, and I want something similar in Duo.
Both apps are native SwiftUI, but they're completely separate projects. So I open Duo in Claude Code and ask for this:
Use the Code with Beto MCP to read how achievements work in Oyelo. Build a similar achievements system for Duo that follows this project's structure and SwiftUI style.
The agent uses the Code with Beto MCP to look through Oyelo's code, find how achievements work, and read the real implementation. Then it builds the same idea in Duo, following Duo's own structure instead of guessing what an achievements system should look like.
This works across frameworks too. My production apps are in React Native and SwiftUI, and the MCP doesn't care which one you're using. Ask your agent for the paywall from Platano, which is React Native, and build it in SwiftUI. Or bring Oyelo's Live Activities into an Expo app. Your agent works from real production code instead of guessing.
That's what I mean when I say the framework is becoming a preference. The MCP comes with Pro, along with the source code for Oyelo, Duo and the rest of my premium projects. If you're already on Pro, copy the prompt above, swap Duo for your own app, and try it.
So what's left?
If the framework doesn't matter and the agent writes the code, you could say the technical part is solved.
I'm not the only one who thinks so. In his Rails World keynote, DHH, the creator of Ruby on Rails, said HEY, his company's email app, won't be a web app anymore. It's going native. He explained that a small team maintaining six native apps used to sound crazy, which is exactly why tools like React Native, and his own Hotwire Native, existed. Not anymore:
“…the price of developing those things has gone to damn near zero.”
So what's left?
Crafting an amazing experience that feels great on the platform. That's the part I care about most, and it's still on you.
And a great experience means different things to different teams. For Discord, a big part of it is speed: a fast startup and screens that show up instantly. I get it. But if you think about it, their app is mostly a list of chats with tons of custom UI.
When I opened Discord on my iPhone Duo, it felt pretty bad. I even posted about it on X. It doesn't seem to use native components, so it didn't feel at home on the device. Even if an app is insanely fast, if it doesn't feel like a first-class citizen of the platform, that's not a great experience to me. I'm forced to learn your UI and your layout instead of the ones I already know.
To be fair, that might work for a chat app, and having its own look is clearly important to Discord.
Now compare it with Slack, which is pretty similar to Discord if you think about it. Slack's iPhone app is built with Swift and Apple's native components. Their team even wrote about considering React Native and Flutter and going native instead, partly because of the native look and feel. And it shows. The app feels really nice, and it's fast too. I've never noticed myself waiting on a screen, and I don't think the average user would notice half a second here or there either.
I think part of this comes down to ego. As engineers, we love making things instant, and if a team takes that seriously, fine. But let's be realistic. In most apps, squeezing out another 0.1 seconds won't make a difference. Feeling like the app belongs on the phone will.
That's also what excites me most about mobile. Phones have a camera, haptics, sensors, widgets and Live Activities, and using them well is what makes an app feel special. Oyelo uses both widgets and Live Activities, and Deargrain, my camera app, shows live film previews while you shoot. Features like these land in Apple's and Google's own tools first. React Native usually has to catch up, and that takes some time.
So, should you still learn React Native?
Alright, here's my answer.
Let's start with the bigger question. Should you learn to code at all? Yes. Of course you should. But learn the programming language that lets you build the things you enjoy.
If you only care about iPhone apps, learn Swift. If you care about Android, learn Kotlin. If you want to build for every platform and the web, learn JavaScript and TypeScript. That's what lets you use these frameworks to have fun, build cool stuff, and stay interested long enough to get really good.
Honestly, learning to code is becoming kind of optional if you just want to build something. But if you're building something serious, you want to spend time learning it and crafting it.
Think about it from an employer's side. Two people can build the same app. One of them actually knows how to code. The other one started with AI and learned to build pretty cool apps that way. Even if the apps are the same, I'd still hire the one who knows how to code, just in case.
I think that's why a lot of big companies still run coding interviews with algorithms, data structures, linked lists, trees and all that. Everyone says it's dumb because AI can solve those problems right away. But that's actually the moat. You stand out because you understand what the AI is doing.
It depends on your goals
Past that, it really depends on what you want. If your goal is to work for a company, check out their stack. If I wanted to work at Slack, I'd learn native iOS development. If I wanted to work at Discord, I'd learn Rust. And if I wanted to work at Expo, I'd learn React Native, JavaScript and TypeScript.
So it's not really about what's best anymore. It's about you and your choices. And I think that's the promise of AI. In Machines of Loving Grace, Dario Amodei writes about a future where AI takes on more and more of the work, and he argues that meaning comes mostly from our relationships with other people, not from economic labor. With code, we're starting to see early signs of that. The agent handles more of the coding, so you get to focus on the part you actually enjoy.
And once you master one language or framework, the next one comes easily. If you truly master the basics, everything else starts to make sense. I've seen this with the best engineers I've worked with. They pick up new things fast because they already know the patterns, the low-level abstractions and how programming works overall. That carries over to frameworks too.
I've lived it myself. I mastered React Native, and when I learned Xcode and SwiftUI, or had to deal with Jetpack Compose and Android apps, it came to me naturally. I didn't struggle at all. I'm not saying I'm an expert in those frameworks, but I understood how the pieces fit together right away. And building a simple app in each one actually closed the loop for me on how React Native works underneath.
That's also why I'd stop calling yourself a React Native developer. Call yourself a mobile developer, or better yet, a software engineer. I'm pretty sure you'll end up writing some backend logic, or even a few CLIs. You're a software engineer. That's it.
Learn the basics of everything
My take is changing a little bit here. Right now, I'd recommend learning the basics of everything: SwiftUI and Xcode, Jetpack Compose and React Native. Build a to-do app in each one, and ask the agent when you have a question. It only takes a couple of hours each, because you don't need to build anything crazy. Do that, and I think you'll instantly be in the top 10%, at least.
I've done it, and it really raised my confidence. It opened my eyes to what's possible, and to what I'd need to do if I decided to go further down one of those paths.
Then start capturing the things you reuse. Turn them into skills, so your agent does them the same way every time. My skills are free on GitHub if you want a starting point.
Master React Native if you get paid for it
If your employer or your client has a React Native app, master React Native. That's how you don't get replaced easily.
Anyone can come in and prompt an AI. An employer might still hire that person, but they won't pay them more, and they'll replace them easily if they leave. An expert is different. They know how everything works, so they can use AI to squeeze everything out of the framework and build a beautiful experience, even when the framework makes it more work. Someone who only prompts ends up with a crappy to-do app, because they don't know how to ask the agent for a specific API, or how to spot the mistake that's killing performance.
So yes, if you're going to work on a React Native app, or you want to build your app for iOS and Android, React Native is still a great option. At least today. If that's you, my React Native course will help you go deep.
Portfolios and indie apps
If you're building a portfolio to get hired, build it around the stack of the company you want to work for, or show them you can build what they're building.
If you're an indie dev proving an idea, build it for one platform first. Prove the concept, and only bring it to another platform or framework once the idea works and makes money. Plenty of companies started this way. Instagram launched on iPhone only in 2010 and didn't come to Android until 2012. Building natively for one platform gives you direct access to its APIs and the best experience from day one. And since you're starting from zero, there are a lot fewer decisions to make, especially around architecture.
What I'm doing
I still love React Native. In June I wrote that I'm still betting on React Native, and I still think it'll be around for years. But a lot has changed since then, and I think new adoption is going to slow down fast from here. Back then I also wrote that two codebases is a tax you pay forever. I still think it's a tax, but when an agent can write both apps, it gets a lot smaller. None of that means the skill doesn't matter, though.
Right now I'm starting my new apps on iOS with SwiftUI and Xcode, to prove the concept and see if people like them. Oyelo and Duo, my newest apps (my recent babies, honestly), are both SwiftUI, and building them felt like a breeze. I describe what I want, and the agent writes SwiftUI that feels native from the first build. My SwiftUI apps are around 5 MB, too.
As they grow, I want to explore bringing them to other platforms. That could mean moving them to React Native or Exact, or building a separate Android app with Jetpack Compose and keeping the two in sync, kind of like Shopify is doing.
Code with Beto is going the same way. With Pro, we're becoming more framework agnostic, and other companies are doing the same. Expo, for example, says its infrastructure has to work with any way you choose to build your app. So whatever you build with, you can use the Code with Beto MCP.
My team and I are focusing on what makes an app great: the best UI patterns, the psychology behind a good onboarding screen, and native APIs you might not know you could use. We've been adding examples to our projects, and some of them are free. For Pro members, the MCP is the big one. Instead of your agent burning tokens while you iterate and massage its output, it copies an exact example that already works, with the best practices built in. You ship faster and tweak it from there.
I've also been seeing a lot of Rust lately. Discord's new core is Rust, and so is Exact. Maybe Rust is the language to learn in 2027. Only time will tell.
And here's what I always tell people. The best way to be successful in this era is to embrace AI. Use it, and don't be afraid to see what's possible. Don't be afraid to start many apps in a day, because now you can. It's easier than ever. So feel empowered to do more and be more aggressive. Adopt a new framework. Challenge yourself to migrate an app to a different one, or start a new app in Rust. Do it, because it shows you can build, and it gets you out of your comfort zone.
If you're stuck on this decision, tell me what you're building on X, and I'll tell you what I'd pick.
Resources

Included with ProCode with Beto MCP
Give your agent my lessons and real code from my React Native and SwiftUI apps, so it copies what already works instead of guessing.
Thanks for reading. See you next week.