Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is React Native still popular?
76 points by haliskerbas 9 months ago | hide | past | favorite | 99 comments
I've been browsing a few react native repos and I notice a lot of them haven't been touched in a few years. Is it still popular? If not what's the current equivalent, or is native the flavor of the year?



I think React Native is fantastic for getting out basic applications that may need camera, map, browser, and storage, etc capabilities. However, once you need more intricate functionality, I think it's best to write modules in Swift/(Kotlin/Java) and have your React Native UI communicate with your modules via the bridge.

I think React Native solves an organizational bandwidth issue. Building true native applications per platform will always outshine any results you get from React Native, both in performance and capability. However, if you have just a few developers, I think React Native is a practicable compromise.

Companies like Airbnb have the engineering bandwidth to develop bespoke platform specific applications, it's up to you and/or the company you work for to know what compromises can be made.


> I think React Native is fantastic for getting out basic applications that may need camera, map, browser, and storage, etc capabilities

The thing is, though, browser-based APIs let you do all of that now, in a way that is usually a lot simpler to access. In these cases it's often a lot easier to just build a Progressive Web App for Android (Google let's you put PWAs directly in the Play Store), and wrap that with a thin native wrapper for iOS.

One of the big "aha" moments I had was a couple years ago when I was trying out Stripe's Identity product, which lets you take a selfie and a picture of your ID for identity verification purposes. It's pretty amazing how Stripe was able to do the full image analysis (i.e. edge detection when you take a picture of your ID) solely with browser APIs.

With the big exception of games, there are a vanishingly small number of apps that really require native functionality these days, given what you can do in the browser.


It doesn’t really matter what can be done natively versus in a browser. For many folks, apps are the internet. This take is very developer-centric but it doesn’t account for the real world. Many people prefer using apps, especially middle-age to older demographics. That’s what our analytics say at least.


> For many folks, apps are the internet.

It's a shame a duopoly controls one of the most important functions of modern society. Controls it, taxes it, prevents you from having a direct relationship with your customers ...

Egregious anti-trust.


Agree 100%, which is why I wrote "In these cases it's often a lot easier to just build a Progressive Web App for Android (Google let's you put PWAs directly in the Play Store), and wrap that with a thin native wrapper for iOS."

In other words, these browser-tech-based apps show up in the app stores like any other app.


The experience of said apps just doesn’t hold a candle to RN or native apps. People can tell the difference, for all but your sort of back office type apps you’ll want native views.


Completely disagree. For one, there are tons of native apps that are essentially of these "back office-type" styles. Think banking apps, most airline and hotel membership apps, real estate apps, etc. It's not hard (or I guess not harder than native) to make these apps look great using web technologies.

If you really do need the "slickness" of native apps, I wholeheartedly agree, go native, and use the native frameworks to do so.

The reason I don't like React Native much is that it occupies a "weird middle ground" - if you need the benefits of native, it's usually easier with less headaches to just go native (and big companies have announced ditching React Native due to this reason), but if you want to go cross-platform, there are other technologies that work better IMO.


Sounds like you sort of agree, given you agree with my back office caveat. Sure it's some percent, maybe even a third of apps that could get by with that, but it's far from the majority.

I can point to a ton of RN apps that have incredible UX and surprisingly nice animations/interactivity, with what I'd argue is much easier to work with codebases. Maybe I'm biased, but the Uniswap app is really nicely done with all sorts of native views. They shipped the Android version of their app in just a few months, sharing 95% of the code with iOS.


Maybe it's a cultural thing the in parts of the world where iPhones are common?

I Androidland I mostly see websites pushing user to use apps, and users not using the apps because they're functionally identical to the website except they ceaselessly spam you with irrelevant notifications. Like the google app store feels cheap like a bargain bin, I don't think anyone expects to find anything serious in there.


My perspective, from watching local (German) politics, is that business owners and the heads of government offices are who demand apps. They appear to think that to be hip and up-to-date, you need to have an app. (Possibly because that gives them an avenue to later spam people with notifications, though I would be surprised if they think that far.)


True, but the nice thing is now PWAs can be in the app store and indistinguishable from apps.


"and wrap that with a thin native wrapper for iOS", how does that work? I hope iOS browser and apple apps store can support PWA but that's unlikely, if a think-native-wrapper can get browser-api working for iOS that will be wonderful.


The two options you have are Cordova and Capacitor. They do exactly that, and let you use native APIs if the browser doesn't serve your needs.

A surprising amount of apps on the app store were built like that.


Agree. If you carefully program something without tons of crap 3rd party libs in something like SolidJS im sure you could get it “native feeling” too


I’ll add I’ve worked on large scale RN apps used by millions per month. And the performance is awful. In fact I don’t think it would be possibly to make an advanced price chart like Tradingview for example, which runs perfectly well on a mobile.


> One of the big "aha" moments I had was a couple years ago when I was trying out Stripe's Identity product, which lets you take a selfie and a picture of your ID for identity verification purposes. It's pretty amazing how Stripe was able to do the full image analysis (i.e. edge detection when you take a picture of your ID) solely with browser APIs.

Do you have any details on that Stripe app? I've found the browser camera handling lacking on mobile if you want to overlay it with a "position the subject here" rectangle, or display instructions alongside, or detect QR codes as well as other subjects. I'd like this to be an out-of-date view. I've been considering React Native for the next version, using https://github.com/mrousavy/react-native-vision-camera as it seems much more feature complete.


I haven't looked under the covers much to see how it works, but you can try it out at https://identity.stripedemos.com/


I don’t think this is so true anymore now that you have such huge investment by the likes of Shopify, with many slick libraries, or for example Reanimated which makes very bespoke and interactive animations performant. Add something like my library which uses an optimizing compiler to make things much faster on native/web when sharing code and I think you can make just about any experience you want. People like Catalin Miron do tweets replicating native UX quite successfully across many examples.

You will still have to invest a lot to make a truly drop dead experience, but you have to do that anyway even in SwiftUI, which I found to be not so easy to just snap your fingers and have nice UX. There are many performance pitfalls there, and having to write your app 2-3 times means you have a lot less to invest into it.


> I think it's best to write modules in Swift/(Kotlin/Java) and have your React Native UI communicate with your modules via the bridge.

Wouldn't it be simpler to just write everything in Flutter? The react + base swift modules looks like a maintainability nightmare, and especially consultants would never touch if the employee who wrote it ever left the company.


It’s difficult to pick flutter because Google has 0 goodwill left.

Even if flutter is good (and I don’t believe it’s all that great), you’re still taking a massive gamble adopting it, and that’s a huge leap that a significant portion of developers are not going to take.

Googles reputation for randomly ending the life of stuff makes flutter an impossible choice.


Isn't React Native a framework that generates GUIs using native frameworks by transpiling whatever React code you have down to the native frameworks you're targeting?

I get the point of reusing front-end expertise to develop other frontend code like desktop and mobile applications, but I struggle to understand the selling point of React Native. If I recall correctly React Native started as a personal project, and that's perfectly fine, but I don't understand who in their right mind would base their product on a convoluted and heterogeneous Jenga stack of technologies when all they need to do is just use the native frameworks.


It’s not transpiling - it’s talking over a bridge and instrumenting native code.


In my experience React Native has definitely "lost its luster", primarily because it occupies a bit of a weird middle ground that nobody wants:

1. If you truly need all the advantages of native performance and integration, just go native. Yes, you'll need to "write it twice", but you'll find that it's actually easier to hire top notch iOS or Android devs in the first place (in my experience they tend to be partisans) with high productivity.

2. I think the biggest thing that has changed since React Native first came on the scene is that the browser-based cross-platform toolkits, things like the Capacitor framework (and starting with Progressive Web Apps in the first place), have gotten much better, and browser tech now gives loads of access to underlying devices and sensors (accelerometer, cameras, biometrics, etc.) React Native really came out with the idea of "I've got all these web devs, can I make them productive on native mobile?" I think things like Capacitor and their ilk are a much better option for this issue now.

So in my opinion, if you really need native, use the native frameworks, but if your app doesn't need that and you can do cross-platform, use one of the web-view-based cross-platform frameworks.


What if you can't afford to hire a "top notch" iOS and Android dev? (or any extra devs for that matter)

You don't think there's a lot of companies in that boat?

I was able to make a react-native app, targeting web first. Took a little under a year.

Took 1 month to get it working and deployed on both app stores to replace the apps our iOS and Android team used to work on natively.

I now maintain web, iOS, and Android, solely, with one codebase, 95% code shared.

We used to have at least two devs on each native platform. That saves about $600k/yr.

(browser-based cross-platform toolkits are a joke, they are not flexible, and are hard to extend)


> (browser-based cross-platform toolkits are a joke, they are not flexible, and are hard to extend)

I would have agreed with you say 5 or more years ago, but completely disagree now. I certainly don't think the better web-view-based frameworks have any more issues than React Native, and on the contrary I've seen React Native usually have more.


We'll have to agree to disagree there.

A webview-based framework has way too many limitations even to this day for us.

React Native has been able to provide a native-like experience for us with no issues.


Capacitor framework has an awfully outdated and unmaintained camera library (I was the maintainer for a short while). It's fine if you want to trigger the native camera to open and then get the picture, but embedding the camera in your app is a right pain.

If someone would make reasonably priced modules like this for CapacitorJS it'd be a good ecosystem, but instead we've got dying open source libraries, and extortionately priced addons (4 figure+) from the likes of Ionic.


Time and time again ive tried Ionic (7 years ago, and again 1 year ago) and every time it underwhelmed. I like that you can do react now. But Ionic documentations has and still is really bad (thin) and the forums are full of unanswered questions or with answers for Ionic versions that are very old.

If you try to make something real/production grade in Ionic, it will quickly disappoint.


It’s incredibly popular and imo has been having a bit of a resurgence as Meta has reinvested into it more heavily in the last couple years.

Evan Bacon does some tweets on it, but it’s one of the most popular libraries when you filter for top 100 apps in almost any category in the App Store.

If you want an active community and a bootstrap repo that is very robust, check out Tamagui (my project) which makes building universal native and web apps a breeze.


I'd say so, though after trying Expo (pretty much what most people use, FWIU) the experience can be... trying at times. I had a lot of dependency errors, weird errors which involved digging through issues to find (I believe Expo didn't support .tsx by default... what?)

This isn't coming from the usual "JavaScript is bad" crowd, but from someone who is generally quite favourable to JavaScript in general (while also recognizing its downsides). Overall, the experience is far from perfect, but I imagine you could make wonderful apps when you get the stack to work.

(In general, if there's one thing I can't stand, it's debugging toolchains and build systems. Extremely boring, frustrating and tedious.)


It's been a while, but this was my experience. Lots of dev hours burned fighting with expo.


100% my experience as well. Expo dependencies and build troubles never seem to end.


Yes it is still popular. Take a look at the showcase who is using it - Amazon was just added

Libraries have always been a unique problem to React Native. A lot of the time not maintained, and can be low quality too - like half baked re-implementations of existing native components, skipping the whole ‘native’ part

There’s not really another cross platform mobile framework in the same league. Flutter exists, and has its positives, but will never be an amazing experience on iOS. They don’t use native components, and the native components can access OS stuff not accessible by people other than Apple


- Update code in iOS, Android, React

- Most of that work is just maintaining fidelity between the platforms

- Forever

- Likely unpaid

- The primary beneficiaries of your work are two of the biggest companies in the world

- Not be appreciated anyways

Takes a very specific kind of person to do it.


Every tech has abandoned repos, especially popular ones.

As React Native matured in the past few years, the community developed improved solutions to common problems, and many older stop-gaps were rendered obsolete. Perhaps that's what you're seeing.

The only major competitor to React Native that I'm aware of is Flutter, but it has several drawbacks that make me hesitate to recommend it.


What disadvantages do you see with flutter though?

The jank issue has been fairly minimized with Impeller, so performance-wide, it's fairly on par with RN. The only 2 issues I seem to find are the core Flutter team leaving Google, and Flutter web being unstable (and honestly I just wish they stopped developing for web and focusing on mobile). Another issue is learning a new language, but Dart being strongly typed makes it much easier to work with than Javascript.

In either case, RN and Flutter should be used only for the MVP stage, and once you can, you have to immediately switch to building on native at the right time.


You named all of them - jank, a new language, and crucially, long-term support from Google, who are so untrustworthy in that regard that it's turned into a meme.


Flutter is still open source with a stronger community than any of its competitors. I think it will be around for a long while. For some reason, it's especially popular in Asia, particularly India and China. There are already entire modules being developed just for Flutter in China, so I wouldn't put it too soon in killedbygoogle.

The iOS issue is a minimal issue with the new Impeller API (not sure if you're updated on that). There is still a bit of jank, but between putting out an MVP vs another month for a native app, I'd say go with Flutter for the MVP. Then switch to native if your app takes off.


The talent pool is non-existent. You’d be crazy to use tech in your stack that you can’t find people for.

At least with RN, there are thousands of React devs out there.


You don't hire for the tech stack though. Flutter has a much faster learning curve than RN, evidenced by its growing popularity among beginners. In my experience, it's not going to be hard for a React developer to pick up Dart or Flutter than it is the other way round - in fact, there are blog articles by eBay and BMW, where their tech teams easily learnt flutter and deployed production apps within a week.

Of course, most companies hiring mobile devs do it wrong. Flutter hasn't been around long enough the same way React has, so years of experience is a meaningless metric here.


Have to disagree. Yes, every experienced dev can probably pick up any other language/framework and be able to work with it within 6 months - things aren’t fundamentally that different.

But these people can easily switch jobs and it’s doubtful most are ok to hitch their wagon to Flutter - a nascent framework with basically no crossover to web development and a big company behind it, known for killing its toys on a whim.

Much easier to just go do RN elsewhere.


The learning curve is very low though, especially for JS/React developers.

Flutter did not come from nowhere, Dart is heavily inspired by Javascript and the rendering model is close to React.

The issue will rather be that they won't want to work on it due to their career than the pure tech capabilities.


I've been working with three flutter apps for the past two years (Android and ios), and the improvements in the platform performance have been consistently trending up. One of our apps has 6 video players running at one point, and that doesn't seem to tank performance, there is an integrated Unity game and several other 'heavy' features. It's resliant and performant for the basic task of getting content on the screen. Then dropping down to the individual OS for certain features (video etc) is a breeze. My only gripe is it's not opinionated enough as framework, and tries to be all things to all devs which makes Architectural changes contentious against competing opinions. (See trying to implement a the latest Router from scratch) The downside is the mess of flutter web. As an engineering team everyone can be Flutter dev, but only a few have to be a Kotlin/Swift dev to implement features.

nb: RN, or Flutter are still more competitive than Maui however.


the flutter tech leader just left Google(Hixie), which cast some doubts on flutter itself to me.


Here's a post from that person on it: https://ln.hixie.ch/?start=1700627532&count=1


Hixie is still working on Flutter as he mentions in the post (just check the Flutter Discord)


Discord's iOS and Android apps are built using React Native [1]. This enables business logic to be shared with the desktop and web clients, as well as shared UI components between both mobile apps.

Part of the reason you see abandoned repos is because the community has adopted libraries like Reanimated, React Native Gesture Handler, and React Navigation, which offer a lot of leverage to implement ambitious animations and native experiences in JS/TS.

React Native is mature enough to build big apps, and the community is active. It's still necessary to reach into Swift/Kotlin to implement some things, but for large apps that's not an unexpected lift. For cross platform JS/TS apps, no alternative offers the code sharing and delivery flexibility advantages of RN. I expect it'll remain relevant due to it's unique advantages and the community library stack will continue to mature.

[1] https://discord.com/blog/android-react-native-framework-upda...


The Discord app is a bit janky though, it’s not too bad but text entry is weird on iOS in ways that I can’t quite recall but are definitely non-standard. I did work with RN for several years though and I do still think it can be a great choice.


I uninstalled Discord when they transitioned the Android version to the React Native version. It was such a drop in performance and stability, it was unbearable. Less distractions on my phone at least!


Disclaimer: I wrote a book about creating apps, end-to-end, and I use Flutter https://news.ycombinator.com/item?id=38433668

It's the same thing with the Flutter ecosystem. Half of the libraries I use in my existing projects haven't been updated in a year (they were active when I picked them). They still work, but considering Flutter (and Dart) move so fast, it gives me the heebie-jeebies.

If you're comfortable with JS, go for it (React Native). But before you commit, think ahead of the must-have UIUX features for your app and build a PoC. Don't be surprised when you can use built-in/stock camera access in less than an hour, but you need hundreds of hours to make a custom camera screen.


I look online for Android programmer jobs, I see React Native often enough when someone is looking for an Android or mobile programmer.

It's a large skillset people want - you need to know Javascript, then probably some HTML and CSS, then the React framework. Enough to get you a job as a React JS programmer - but then you should know React Native as well. Plus, RN does not cover every case, so know the Android ecosystem (Kotlin and Android SDK, plus maybe some Java) and the iOS ecosystem (Swift and iOS SDK, plus maybe some Objective C). Most large companies tend to have a separate Android and iOS app, although not all (Discord is React Native IIRC).

It makes some sense in a startup possibly - have a few RN programmers and have one or two dive into RN and do Android and iOS apps for your product, some of it using your existing codebase. From all I have heard, it does not scale, although maybe companies like Discord make it work for their use case. Once a Series A or series B kicks in, engineering has to stop and look whether they want to continue adding on to this rickety future, or get a small Android and iOS team together and do native apps.


I’ve built a a couple apps in React Native over the past few years.

My reasoning for wanting to use React Native is primarily because I think the iOS ecosystem is a real mess right now. SwiftUI is not mature, and UIKit is antiquated compared to the needs of today. If you’re just starting out, the force multiplier you get from RN is almost too difficult to ignore.

1) Even in the last couple years, React Native has gotten much better. The performance gap is not noticeable anymore. In fact, in some cases I think it has been easier get better performance in RN than using native.

2) It does feel like there was a wave where tons of libraries were created and then abandoned. But overall there are lots of libraries which are good and well maintained.

3) Native is still better if you need really tight experiences, but this gap is also closing. Since you can easily drop down to native, this issue shouldn’t be a big deal.


Yes. Check out Expo. It's recommended by the React Native docs and it's very actively maintained/growing. Some big names are switching though. AirBnb has a few blog posts about switching to true native.


At Stream we used to hire for react native quite easily. Nowadays it's impossible to find experienced people who want to work with RN. Don't see that issue on Go, or any of our other SDKs. In case anyone is looking for a lead RN role remote EU or amsterdam: https://getstream.io/careers/job/5714344003/


Impossible to find? You don’t have salary info on that listing and a quick google shows that your salaries are something like half what I’m making as a remote RN engineer. Very unlikely that it’s because of RN.


could be that's the problem, we went up though, not down in rates. think its around 120k base + 120k in equity. how much do you make?


When I googled your company the only results listed total comp under $100k for software engineers. 120k is slightly better than that. Equity is worth zero at private companies unless there is a system in place to sell it, so don't try to claim that is worth anything to most people.

I make around $200k + equity as a Staff Engineer, fully remote, though as my company is also private, equity === 0. I would say I am moderately underpaid in the current market but I'm happy with that tradeoff since my company is fully remote, great work life balance, and I work with great people.


That’s a US salary though, right? So you would expect it to be higher. Granted some companies might pay the same salary regardless of country but in my experience it’s usually adjusted


My company operates globally but is based in the US. We don't adjust salary based on location.


That’s really good!


I’d say it’s definitely got its merits. If you have a React web app built for desktop browsers, and you’ve cleanly separated your code so that the data layer of API calls, types, utilities, etc… is separate from the desktop UX layer, you suddenly have an awesome way to save time and money. You write the data layer, and then your desktop and mobile apps can all save a ton of duplicated work and maintenance and stay in sync with each other.


Most of the discussion I hear about React Native is that it's fine for the basics but very quickly ends up needing special code to handle all the platforms' various eccentricities. And then you have web-like latency that is kindof a turnoff compared to native apps.

I have heard people recommend Flutter recently, but I have even less knowledge about that than the anecdata I have about React Native.


Not true if you use Tamagui, which has a very smart optimizing compiler and emits near optimal web code utilizing all the platform features.

Flutter is sort of dying, it works for games or Android only apps, but anything with web or iOS will feel incredibly strange, slow and non native.


Have you tried Flutter in recent times? And in general, why would it be dying?

We deploy a Flutter app to Android and iOS with a lot of native parts and it works flawlessly, fast and with native-feeling UI on both platforms. Even porting to Windows and Mac OS was relatively easy and provides a very fluent, albeit mobile-y application.


Flutter always feels uncanny valley to me on iOS because its re-creations of the native controls and not the real deal. Not always a big deal depending on your app design but if you want an app that looks like one Apple would make it feels off.


> Flutter is sort of dying

Do you have a citation or data to back that up? We've recently launched several cross-platform app rewrites in Flutter and from our perspective it seems like Flutter is really hitting its stride.


Maybe this:

- https://news.ycombinator.com/item?id=38401242

- https://ln.hixie.ch/?start=1700627532&count=1 (this is one of the main Flutter contributors which has left google, which might be indicative that the project might lose funding)


same concerns here, I will use RN


I recently built a couple of apps in it and I found it to be great—I would recommend it, assuming that your app has similar functionality to a web app—text, images, data fields, fairly standard navigation (some of the more sophisticated interactive/canvas-based apps look a little trickier). The only issue I've stumbled across is that React Native added a new rendering engine recently, and some of the animation libraries need updating to work with it (but, that work seems under way). In general, it was straightforward to work with, I found working libraries for pretty much everything I wanted, and I had a nice little iOS app with swiping, infinite scrolling with lazy loading, pull-to-refresh, streaming audio, native icons, popup sheets, and supabase integration, working in under a week.


Github open source projects are not at all an indicator of "popularity". There are vast amount RN apps on the appstores and closed source.

As someone who has tried most of the options for streaming realtime mobile app, I landed on RN/EXPO for the sole reason of community size and ease of use. Basically everything is possible!

Typical recommendation has been to build MVPs in RN and then switch to native after your raise funds, but strongly advise against it unless the nature of your app demands native implementation. You can stick with RN all the way to FB/Instagram scale!


Anecdote here:

Recently I started working on an mobile application as a personal project. It involves scraping web pages and generating ebooks from them with an inbuilt reader with visual controls.

I’d never worked with Swift or UIKit previously and I’ve worked professionally with React for a few years so I considered using React Native.

100s of abandoned repos, janky build tooling, a and a weird split with something called expo caused me to avoid React Native altogether and I’ve been happily learning SwiftUI and UIKit.


Heh, I did the opposite migration due to SwiftUI :) we ran into some completely blocking bugs where we couldn’t work around them. Plus managing data with their observables are so hard to work with.


All these react haters here are just scared of losing their jobs. I love it I can build what I want easily with RN. I know that I sound stupid but that's the reality


From what I’ve seen in the corporate world, it’s the overwhelming default. The business simply will not pay for separate native iOS & Android apps, even if you present convincing evidence that it’s better, faster and cheaper.

It’s not the worst thing in the world, but React Native makes your entire app feel kind of janky and clunky. It’s frustrating when something as simple as a push transition looks and works 1000X better with a few lines of SwiftUI.


> better, faster and cheaper

Better is subjective, faster - in my opinion - is no longer as much of a factor with even cheap modern phones unless you're doing something like AR. Not sure how you can build two native apps for cheaper though.

Jank... I agree there a little. I would say most of it can easily be avoided though if you've got developers who have native experience and know what they're looking at.


Why not Flutter or any other cross-platform framework?


In my experience, apps rewritten in Flutter are janky, to the point where I can spot them a mile off - especially in animations/transitions and fake native widgets (based on a sample of 2 apps which I use often and have been rewritten in Flutter recently: Philips Hue and EE mobile network).

Same can also be true of RN (or native!) of course, and I’m sure with enough work the apps in question could be made slicker and it probably wasn’t a priority; but they’re both developed by large companies and to me as an iOS user, feel pretty bad compared to their previous native implementation, so Flutter is definitely not a magic bullet.


Flutter is React Native jank times two because it tries to render the entire UI itself.

MAUI has just gone through a rough migration from Xamarin and has some maturing to do, and developers are feeling neglected by Microsoft.

Cordova is Electron for phones - just do a PWA.

Kotlin multiplatform is good, but the Compose multiplatform has only Alpha support for iOS.


Flutter jank is almost non-existent with Impeller, the new rendering engine that Flutter uses in iOS (and in preview in Android).

Compose multiplatform uses Skia, so it suffers from the same shader compilation issues in iOS that Flutter has been suffering from all these years.


I keep hearing that Flutter is bad because it “tries to render the entire UI itself”. This argument sounds good — at least on paper — because all the previous attempts at doing that failed miserably.

But — to my disbelief — I must admit that Flutter didn't just try, it actually nailed it. I can't tell the difference between a Flutter app and a native app in terms of look and feel.


You might be interested in Jebtrains' Kotlin Compose Multiplatform, which lets you cross-compile to native UI in iOS, android, and others - and pretty smoothly interop with native iOS code (especially UI code).

https://www.jetbrains.com/lp/compose-multiplatform/

I think it's new, and I haven't tried it myself.


I'd say yes, I'm seeing big consumer companies switch to it from native these days.

If you're just getting started I highly recommend expo. I wrote an article on building a game using it over say unity not too long ago https://parrisneeds.coffee/posts/making-a-game-in-react-nati...


I've really enjoyed using Hyperview (https://hyperview.org/) recently, which uses React Native as a base. I used to think PWA/Ionic/Capacitor apps were better, but have really fallen in love with the simplicity of Hyperview and tools like HTMX.


I just found out hyperview yesterday and am learning it, seems interesting to me.


I don't see how anything can be easier than a PWA if you already have a Web app that works ok on mobile. You can do it in a day and only needs updating once every year or two. I know because I had to fill out a few questionaires last Saturday to upgrade for Android 14 support but that was about it. (And those some questions apply to all mobile apps on Play store)


PWA's issues are with iOS and MacOS? last time I read, Apple are not really into supporting PWA, if at all.


There's experimental support with pwabuilder.com but yeah, Apple still isn't really supporting it IIUC, and you still need a MacBook to publish which it ridiculous.


React Native has been great. Until recently, updating old versions of React Native had been a real challenge though. The complexity all comes from the native layer bits though.

A lot of SaaS providers offer React Native components that are ready to go, even newish startups. The ecosystem feels strong and it's way more economical than writing two separate apps.


I picked up React Native and Expo last year for a medium-sized hobby project and found it a better experience than when I developed a Flutter app three years ago. I have always heard the React Native dependencies were a mess, but I did not have that experience. Things were stable and Expo has pretty good documentation.


My thinking on this: Avoid React Native if at all possible.

You want a primarily information-oriented software, without lots of manipulation/interaction, then go with Webview based solutions (capacitor + react).

You want performant manipulation/interactive software, go native.


AFAIK Microsoft built the latest Office on top of it.

https://devblogs.microsoft.com/react-native/2023-09-08-rneu-...


Expo has taken over the react-native scene - look at the libraries they use and you will find them pretty active.

The expo approach to generating the native projects is just better than the OOB react-native stuff which makes upgrades extremely tedious.


Not much anymore, React Native isn't really a better way to develop apps. It is as complex as developing native apps and as you mentioned, the libraries aren't good enough/well maintained.


I tried RN and Flutter and I liked Flutter more.


Very. But a lot of packages I think have been abandoned in favour of those built by Expo.


Check out Expo, that's probably the most active React Native project.


I'd say yes, although somewhat through Expo nowadays


What about Flutter?


Good, that means its slowly getting stable!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: