6 ms·
Ask HN: Please provide your opinion on the state of React Native in 2023
The last time I used React Native, I didn't have a great experience maintaining the app. But it was 3 years back. Could you please provide your opinion if you have recently worked on developing or maintaining a React Native project. Suggest other alternatives if you had better experience.
- wyclif 3y agoWhat would be a good current React Native book to read in order to get up to speed right now?
- technbrains 3y ago[dead]
- slorber 3y agoFYI Software Mansion ran a React-Native survey last year with almost 2000 answers. Here are the results: https://results.stateofreactnative.com/ https://results.stateofreactnative.com/ My personal biased opinion: React-Native is awesome and keeps improving.
- joshxyz 3y agoimo it depends on what you are building. if simple crud, react native, flutter, and expo can let you build things quickly for multiple platforms. sometimes you have to go native if you need it. personally i despise mobile stuff. i find it hard to catch up on yearly changes compared to building web apps. but there are people who got rich in buildig mobile apps. there is money there. i just dont love the developer experience.
- sentientmachin3 3y agoWe use it without many issues, but you need to implement native modules if you have to use device peripherals for some scenarios, e.g. IoT pairing via wifi or some bluetooth stuff. Sure sometimes it can be frustrating, but to me is ok if your company is small and can't hire too many people in order to maintain two fully native projects.
- KomoD 3y agoI use it with Expo, no real complaints from me.
- QuadmasterXLII 3y agoIf you are writing a gui to a REST endpoint, it’s fine. If you are writing a B2B app where the customer wants to forcibly install it on people’s personal phones, the cross platform is important. In most other cases, just write it in swift, 95% of profitable customers have iphones.
- JulesRosser 3y ago> 95% of profitable customers have iPhones Maybe in the US... This works for hobbyists or single devs, but clearly isn't realistic for most companies.
- hot_gril 3y agoThis isn't even true in the US unless you're only counting profits from selling the app itself or IAPs. Android users are most likely less profitable but not by that much, otherwise I'd expect an empty Play Store.
- mejutoco 3y agoYou can start with one platform, and if successful, expand to Android (like Whatssap did). What is not realistic about that?
- deleted 3y ago[deleted]
- deliriumchn 3y agoIts day and night difference compared to 3 years ago (internally), but situation with libraries is still pretty much same: they die off randomly and you have to search a new solution, spending your time. Expo's stuff is mostly good and well maintained, thats something. I use it, mostly with expo. Everything works out of the box and performance is actually surprising (because of Hermes engine), I'd say its a lot better than all other alternatives when it comes to cross platform development solution, simply because flutter is the only real competitor and flutter has few problems that makes it unbearable for me: 1) lots of copy-paste boilerplate code 2) ios apps behave weirdly in flutter (maybe they still havent fixed 1 frame lag with touch/swipe/scroll events? idk) 3) they're not using native components but implementing them on canvas. This sounds extremely prone to issues and bugs and requires them to catch up to update stuff once platform holders change something in their UI kits. If I had to pick a tech right now, I'd go React Native -> Jetpack Compose/Swift UI -> Flutter -> Anything else
- zigzag312 3y ago> 3) they're not using native components but implementing them on canvas. This sounds extremely prone to issues and bugs and requires them to catch up to update stuff once platform holders change something in their UI kits. Every native UI draws on canvas. So, drawing on canvas is technically as bug prone as a native UI. Also, nothing breaks when platform holders change something in their UI kits, because Flutter is not using their UI kit (except of few fundamental things). Components continue to behave and look exactly as they did before. If you want to mimic new design/behavior of platform's native components after an OS update, Flutter widgets need to be updated independently.
- lockhouse 3y agoYes, but not using native controls, while still trying to look and feel just like them creates an uncanny valley where things are just inexplicably off. iOS in particular uses a lot of animations for context clues, and it is very hard to get right when you try to copy it. There’s also a lot of functionality that is baked into native controls, such as accessibility and localization that are often missing from canvas drawn controls.
- rjh29 3y agoI hate mobile app dev, but Flutter makes it fun. It's very quick to iterate with real-time hot rebuiling of widgets, and the built-in widget set is flexible and robust. I'd be wary of using it for a really large project though, because of a) Dart and b) Google so it might die in the future. It also changes a lot, so be prepared for dev time if you're only updating the app every year or so.
- davidmigloz 3y agowhat's wrong with Dart?
- brokenbyclouds 3y agoUse Expo. Ignore anything that ever mentions having to "eject" because that's the giveaway that the information is hopelessly, uselessly out of date. It's fine.
- hot_gril 3y agoCan you create custom native modules without ejecting now? I see something about using Expo development builds, but that sounds worse.
- thomasmiller_ 3y agoThere is no need to eject when creating custom modules and the API for writing modules is fairly decent. Not entirely painless but miles better than a vanilla RN approach. We make extensive use of development builds and it's the feature I value the most - no need for Firebase or TestFlight for testing a branch.
- skydhash 3y agoExpo always if you want something akin to web apps in features, with a few extra. Go native (swift, kotlin) if you want something that should be a mobile app.
- mcsniff 3y agoAnother vote from an Expo user. Having no previous experience with RN, I wrote and released an iOS and Android app using Expo and their free hosted build system. Yes it has some quirks and you should ensure plugins/modules can provide the functionality you need, but for me, from 0 to 100 (app idea to app store) it was easy.
- hot_gril 3y agoMy experience with RN 2 years ago was that despite the usual headaches, it's a lot easier than dealing with native apps for most use cases. This was after years of doing native iOS apps.
- hot_gril 3y agoForgot to add, the cross-platform aspect wasn't even the biggest concern, I just wanted an iPhone app and RN was the easiest way. Also, RN doesn't handle cross-platform automatic text or image sizing well, which was the biggest hurdle to making things look ok on Android.
- ricardobeat 3y agoIt’s still worth the trade-offs vs developing for multiple platforms, but the experience continues to be incredibly painful. Libraries that handle basic features like geolocation or the clipboard have been spun out of the main org, and the result is even worse reliability. Core features are also often superseded by libraries that are in a constant state of refactoring like Reanimated or React Router. On the bright side, performance, memory usage and startup times have steadily improved so it’s possible to build apps that perform almost indistinguishably from native ones (at great human cost!).
- JulesRosser 3y agoAgree with this. Coming from native Android there's a lot I miss, but being able to compile to Android, iOS, Desktop, Web & mWeb saves us an insane amount of time. Thankfully we have the budget to work with expert maintainers and sponsor external libraries which allows us to reduce some of the pain.