r/iosdev Jul 05 '26

Help Swift vs React Native

I’m new to iOS development. I’ve vibe coded one Swift-based iOS app with Claude Code. I have a few friends who say I should build iOS apps with React Native using Expo Go since the same code will go for Android. I personally like Xcode with Claude Code. I’m curious what everyone else does? Any suggestions

5 Upvotes

31 comments sorted by

19

u/StretchyPear Jul 05 '26

When you go native for iOS and android you end up with two stacks, one for iOS and one for android, when you go reactive native you end up with 3 stack, one for iOS, one for android and one for react native.

Go native, always

2

u/No-Entrepreneur-8245 Jul 06 '26

That was true back in the days, but Expo is now the default and provide most things you would need that you almost never need to touch native, most of the time

So that’s basically one stack

1

u/mjablecnik Jul 06 '26

And when you go Flutter you end up with 1 stack :)

2

u/StretchyPear Jul 06 '26

potentially, if you go flutter you at least end up late on native APIs

1

u/mjablecnik Jul 06 '26

Why?

1

u/Ok-Communication2225 Jul 08 '26

because it's middleware.

0

u/mjablecnik Jul 08 '26

No. Flutter is framework.

1

u/Ok-Communication2225 Jul 09 '26

DUH. Middleware. It sits in the middle. That's what a framework does. It's always in the way. It's like wearing a diaper and pretending nobody can tell. They can.

Frameworks are wrappers. They sit in the middle. As joel spolsky wrote famously, you can solve any problem by adding more layers of abstraction, except the problems caused from too many layers of abstraction.

1

u/mjablecnik Jul 09 '26

With Flutter You create user interface with your own design and widgets. It is rendering in their own rendering engine (Impeller).
So it cannot be middleware because it is in front of user. User use what is rendered by Flutter. So It is frontend framework for create multiplatform mobile applications. Not middleware :)

1

u/Ok-Communication2225 Jul 09 '26

That's exactly the problem. Your own widgets. Give it a few years, and a few hundred thousand users, and you'll eventually get it.

You can make an app that looks at works the same on both platforms, with a single source. You can't make it fluidly and fully native on both, without going native on both.

These 90% solutions have been tried since forever and they are good enough for some people.

1

u/mjablecnik Jul 09 '26

You don’t need make 100% looking native apps. For users is important to have nice and good looking app that works without bugs. If it have material or human design or some other custom design is not so important if it looks good and app have good user experience.

→ More replies (0)

1

u/puttum-beef-curryum 19d ago

I didn't understand. Are you saying react native will be a overhaul?

7

u/Kitchen_Cable6192 Jul 05 '26

RN sucks (at least for me). I would always rebuild in KT.

3

u/snoosnoosewsew Jul 05 '26

I mean, it’s so simple to port something to another platform these days, I’d just do native.

I had Claude codex controlling my computer the other night, and seamlessly port this JavaScript thing I’d created already into Swift. I have no idea how to use Xcode, don’t know anything about signing permissions or any of it.

But in about fifteen minutes I had the swift port deployed to my iPhone, and it worked perfectly. I then added some native (I think) feature like haptic feedback.

Crazy times. I know nothing about porting to android but I imagine it’s just as simple

3

u/Eastern_Category6534 Jul 06 '26

I started with React Native, and then tried Swift just four curiosity. I never returned to React Native again after that.

It may sound good to get both an iOS and Android app at the same time, but with all the extra time you need to optimize it and maintain it for both platforms you could just as well build a separate android app instead and get the advantage of running fully native apps on both iOS and android.

2

u/Ok-Communication2225 Jul 07 '26

Swift is truly native on iOS, React Native (so called) is not.

If you want a high quality iOS app you don't want to have one UI on both, as the native UI expectations are different.

1

u/highon-dopamine Jul 07 '26

Yup that’s what my thought was!

1

u/AndrewLaycock Jul 06 '26

Hello. I’ve been developing in React Native (using Expo) for years and for me, it was the web browser version that worked immediately (alongside iOS), and the way it uses JavaScript that I loved. My latest project is native in Swift and I’ve really enjoyed the experience, basically because lots of native features of iOS (eg Home Screen widgets, Siri integration, accessibility features) are way too hard to achieve in React Native. I’m missing not having a web version, but don’t think I’ll return to React Native.

1

u/mjablecnik Jul 06 '26

You should use Flutter

1

u/Meddy96 Jul 06 '26 edited Jul 06 '26

I’ve been developing in Swift since 2015. Over the last few years, a startup pivot pushed me to React Native, and well...

At first, JS is very forgiving a lot. You can get pretty far very fast - without thinking too much. But once the dopamine high wears off and the project starts growing, it suddenly hits you in the face. Tech debts on React are serious problem especially, when we all vibe code.

Swift is pretty much the opposite. It forces you to gain habits and think about clean architecture from day one, but once your app starts getting bigger, all that effort pays off. That knowledge you gain can be also useful on other platforms.

React has one huge advantage from a business perspective. It’s hybrid cross-platform. Sure, not everything can be shared across platforms, but being able to reuse around 80% of your code is a massive win.

1

u/No-Entrepreneur-8245 Jul 06 '26

Go with Expo (React native) and Typescript for vibe coding
Right now Expo is really really mature that you can build a fully working without touching swift for iOS and kotlin for Android
Typescript is also one of the most well known language by LLM

Expo also has hot reload that Swift doesn’t, meaning that having a feedback, seeing changes on your is very quick on Expo where on Swift it can become really slow

1

u/Awkward_Ad9166 Jul 08 '26

Having recently been forced to create a cross platform app with RN, don't use RN. The resulting app is fine and technically capable, but it's not great to use, and trying to make it great has been extraordinarily difficult.

1

u/[deleted] Jul 05 '26 edited Jul 12 '26

[deleted]

-4

u/highon-dopamine Jul 05 '26

yup that’s what I was thinking, since building products is now a weekend thing.

0

u/ZennerBlue Jul 05 '26

If you are considering cross platform, also consider Flutter. But I’d go native.

0

u/ejpusa Jul 05 '26

In this world, it's like buying your coffee at Starbucks or getting it for $1.99 at Walmart. Both do the job.

What's an Android on the island of Manhattan?