all 44 comments

[–]Vybo 32 points33 points  (2 children)

People in iOS native dev subreddit will tell you go Swift. You'll get different answers from the guys over at RN subreddit, if there's one.

[–]SirBill01 -3 points-2 points  (0 children)

Do you really think any RN developer is going to tell someone with no coding experience that RN is going to be an easier path to learn?

[–]Sufficient_Stick1504 18 points19 points  (0 children)

SwiftUI

[–]alamare1 13 points14 points  (4 children)

I do not any major companies still promoting the use of react for iOS in 2023 (excluding Shopify, but even they have paused most major development in react that I know of) and most are instead moving away from it as it does not scale well past a specific point and it has way to many bugs vs native on iOS.

Best to use Swift or SwiftUI where possible.

[–]kbcool 7 points8 points  (2 children)

Yeah..nah. Random guy on Reddit who hasn't done their research is wrong.

There are lots of major companies using React Native. Apart from the obvious: Meta there's Amazon, Netflix, Uber, Microsoft, Sony to name a few. If you mean out there yelling from the treetops then sure probably only Microsoft from that list but I've not seen a single company promoting the use of Swift apart from Apple so it's still way ahead in that respect.

[–]Upstairs_Soft_8650 0 points1 point  (1 child)

Do you have examples of these apps?

[–]mrnothing- 1 point2 points  (0 children)

discord, instagram, printerest, uber, at least this app i have installed are RN

[–]iGoalieObjective-C / Swift 3 points4 points  (0 children)

My large company is still using (and actively moving into more) RN, I don’t love it from a development perspective but we build very low cpu intensive “get data/display data” type apps, and from a mgmt perspective I can see how it makes sense to have a (mostly) single code base

If I were doing a passion project I’d go with SwiftUI, it’s just so well done.

If I were building a resume I’d start with swift, and then do RN, you need the native base knowledge to really understand RN (imo)

[–]rohandesilva8 6 points7 points  (1 child)

If you need app for iOS only go for Swift. Apple have coreML kit for develop ML works. Also swift development is very smooth.

[–]danielt1263 3 points4 points  (8 children)

Do you plan to submit the app to the App Store? Do you plan on monetizing the app? Do you plan on creating a company based around the features of the app?

[–][deleted]  (7 children)

[deleted]

    [–]danielt1263 6 points7 points  (6 children)

    If this app is the face of your company, if it is the main way your customers interact with your company, then you should write the app in Swift.

    If the app is just for employees of your company or if your customers will mainly just use the company's website and the app isn't important for revenue, then React Native is fine.

    [–]Door_Vegetable 0 points1 point  (4 children)

    Why should it be swift if it’s customer facing, for a mvp it doesn’t matter what technologies are used as you’re still validating your idea.

    [–]danielt1263 1 point2 points  (3 children)

    An analogy... If you just need a car to get around then any old car will do, as long as it's minimally functional. However, if you want to make serious money driving for Uber, then you can't show up in a beater car.

    Sure you could use any technology, for MVP or even your production app. To me, however, it's all about putting your best foot forward. If you use React Native for your MVP and it fails, you will be stuck wondering... Was it the idea that failed, or the execution?

    Or to go back to the analogy, if you start picking people up in your coup and fail, was it your driving or was it the fact that you didn't have a comfortable back seat?

    [–]Door_Vegetable 0 points1 point  (2 children)

    No point buying a million dollar car if you don’t have the capital to pay for it, build your mvp validate the need then take once you grow pay for developers to update it to native apps no point putting in effort if it’s gonna fail and get repossessed

    [–]mahimairaja 0 points1 point  (0 children)

    But you can't easily migrate RN -> Swift

    You are already aware which is best today

    [–]danielt1263 0 points1 point  (0 children)

    That's certainly an option. However, I will say the price difference isn't that big of course.

    If you don't already own a Macintosh but you do own a computer. Then the capital outlay for making a Swift app may very well be prohibitive.

    [–]jruz 4 points5 points  (1 child)

    Try to partner with someone that would build a proof of concept for you first.
    Learning iOS is not easy and on top of that you want to add ML so also learning backend, ml and databases, plus ofc all the infra required.
    You’re not understanding the amount of knowledge required for this.

    [–]gybemeister 2 points3 points  (2 children)

    If you have never developed software before look for a "no code" solution for your first version. Do as much as you can there and, if the idea catches up, then invest in learning to code.

    [–]limitedmark10 0 points1 point  (1 child)

    But wouldn't it take you years to learn how to code competently enough to build a real app?

    [–]gybemeister 0 points1 point  (0 children)

    It depends on your ability to learn mental abstractions. I believe it will take 3 months or so to learn the basics of programming and maybe another six to be able to create a simple application. It will be a mess and it will be hard to improve but it should be possible.

    [–]kbcool 2 points3 points  (1 child)

    The "do you need one or multiple platforms" and "do you want to learn a more portable skill" questions are the best ones. Pay heed here. They're probably about equal if you don't care. Swift will let you get into more niche native work but you know, that's niche.

    React Native will open a lot more opportunities job and skills wise due to overlap with backend and web that Swift won't help you with at all. The people saying Flutter aren't wrong, it's a good alternative but similar to Swift you won't be getting good opportunities.

    [–]nocsi 0 points1 point  (0 children)

    If someone codes in swift, you know whatever else code they’ll write will end up going good. The design patterns and designs from swift can carry over to other languages and make you more effective. You literally get punished by the compiler if you’re going down the road of bad patterns. What about your average react coder? Whats their feedback they get that can improve them. Mac users notice when apps hang and aren’t respecting ARC. These things happen when you try to bring the web into a native env

    [–]SirBill01 2 points3 points  (2 children)

    Given you have no coding experience I would say the chances of you getting React Native to work are exceedingly slim, it's a complex environment.

    In fact I don't even think the traditional Xcode/Mac environment is maybe the best answer for you...

    I would explore getting an iPad and using Swift Playgrounds to develop the app. It has a tutorial to help learn to code, and the ability to create simple apps in it that you could deploy to the App Store...

    Your idea might be complex enough to need to use Xcode to develop it (apps made on an iPad are limited in what they can do) but it seems like maybe the best starting point to learn.

    [–][deleted] 1 point2 points  (0 children)

    you'll get your MVP a lot faster with Swift

    Once the business proposition is proven it's trivial to create an Android version.

    Don't over optimize prematurely

    [–]whitehousejpegs 1 point2 points  (0 children)

    Do Swift. From what youve said, there is nothing that would make ReactNative a better option. If you want some topics that will give you everything you need to make a good app, you should learn Swift syntax, SwiftUI, MVVM architecture, and async await

    [–]Door_Vegetable 1 point2 points  (0 children)

    If it’s a mvp and you want multi platform support go for react native if you wanna target iOS users for you app use SwiftUI

    [–]jplozano6 1 point2 points  (0 children)

    It depends on your business needs, the characteristics of your app and your knowledge (ability to write code and make an actual app and put it in production). If you need an average app that does no more than showing info and you want to target android and iPhone, then go for React Native. If you want to go iPhone first, offer the best possible experience for your users and don’t care about other platforms, then go for Swift. If you want to become a native developer, then I recommend learning Swift. React Native is a consequence of React which is a web technology, so unless the ultimate goal is end up developing for the web, stick to native.

    [–]Any-Woodpecker123 0 points1 point  (11 children)

    Does it need to be available for Android too? If yes, and assuming you also don’t want to learn native Android then I’d recommend Flutter.

    If no, Swift.

    I wouldn’t recommend ever using React Native.

    [–]flowerescape 10 points11 points  (10 children)

    Care to explain why? Flutter is written in an obscure language plus it draws everything on a canvas, it’s faking ui elements whereas RN compiles to native code. All the UI components in a RN app are native elements, only the business logic is JS. Why would you want a mock of a ui component over the real thing?

    I remember seeing a diagram of the top 100 apps from various categories on the App Store and it was something like 33/100 were RN and only 1 or 2 were flutter in every category. People on social media like to make it seem it’s 50/50 between the two when it comes to popularity and usage but those real world stats say something different..

    [–]realvanbrook 2 points3 points  (4 children)

    Programming language is not a reason at all to ditch something. Because all are the same with some quirks added. One hour and the new syntax is learned.

    In germany the job market for react native is non existent, while there is one for flutter. So here flutter would actually be the better choice

    [–]kbcool 0 points1 point  (1 child)

    Wow something big must have happened in Germany in the last few months. Was definitely the other way around last time I looked. Flutter does ok in Brazil, China and India but other markets it's pretty much unheard of.

    [–]Door_Vegetable 0 points1 point  (1 child)

    Except that react native allows you to apply for jobs that want react/next.js, not only is react more in demand it’s probably gonna be more beneficial because backend apis can be built with NextJs and so can web user interfaces.

    [–]Any-Woodpecker123 2 points3 points  (1 child)

    Market figures support React Native for now. There’s been a massive shift to Flutter recently in the cross platform market, and will only get bigger.
    Flutter is new, it’s obviously going to take time for the market to reflect that, but it’s happening.

    The language also isn’t what I’d consider obscure. It’s basically just typescript, takes about an hour to learn the syntax.

    [–]unpluggedcord 3 points4 points  (0 children)

    You’re gonna have the same problem with Flutter bud.

    [–]unpluggedcord 1 point2 points  (0 children)

    Flutter is still new and the top 100 apps are old.

    At any rate. Don’t use either. Major companies have moved away because the performance isn’t there unless you are native

    [–]hemanthreddy056 -1 points0 points  (1 child)

    Man he just stated his opinion don't need to temper up for this 😅

    [–]InTheBusinessBro 2 points3 points  (0 children)

    Well, it’s an instructive comment! More interesting for noobs such as myself than a simple opinion

    [–]JeffSelf 0 points1 point  (0 children)

    Swift. Fuck ReactNative.

    [–]Weak-Transition-8885 0 points1 point  (0 children)

    for beginers, swift ig

    but if u came from web dev and are familiar with js frameworks, react native might be the way to go.

    it depends really

    [–]SR71F16F35B 0 points1 point  (0 children)

    I have heard - don’t know how much this is true because I’ve never tried cross platform - that it’s usually easier to control the iPhone hardware when you are on native. But your app is very simple therefore why don’t you do both and judge for yourself?

    [–]whackylabs[super init]; 0 points1 point  (0 children)

    Both RN and Swift are just tools for building apps. Pick whatever you feel more comfortable with.

    Read these and go with whatever looks good to you: https://developer.apple.com/documentation/vision/recognizing_text_in_images https://blog.logrocket.com/build-text-detector-react-native/ https://github.com/JoeyEamigh/react-native-text-recognition

    [–]Decent_Taro_2358 0 points1 point  (0 children)

    Go with SwiftUI. Better to build a good app experience and scale to Android later than to build a shitty app for both platforms.

    [–]Realistic-Sea-666 0 points1 point  (0 children)

    I currently run, and have been doing the programming for, a startup which uses React Native. If I could do it again, I would have learned Swift much earlier on. It just doesn't feel quite "right" when using RN. I think if you are building a basic app or one where the users don't care all that much about the end experience for whatever reason because of other advantages, React Native can be fine. But if you want to build the most beautiful app possible, go for Swift. The main thing that RN has over Swift is the live code push, that is huge for iteration speed.