top | item 41938191

(no title)

mhammerc | 1 year ago

I have been working for the past four years exclusively on react-native apps and their backend API, from bootstrap to publishing, adding new features every few months and maintaining the apps.

It was a mixed experience. When I migrated to expo two years ago, many problems were solved but not all.

But I still encounters bugs and problems with many common dependencies. It is not uncommon to have bugs on certain Android brands, with the community on github reporting the bug but waiting months for it to be fixed.

iOS is by far better and more stable than Android.

Performance is great on iOS, but less great on Android.

Our apps are animation heavy using react-native-reanimated and react-native-skia. Everything went perfect on iOS but we had to remove some animations or simplify them on Android.

Upgrading your dependencies every four months will probably break something somewhere : deep links stop working, some animations stop working, or maybe it's another dependency from the JS world. Sometime the fix is easy, other time an issue with the regression can be found on Github, other time we have no data.

Overall I'd say react-native is perfectly servicable and is easy to learn for anyone, which is a big plus. I'd recommend react-native because it is easy, have a big JS ecosystem, but I am now on the Flutter side.

discuss

order

swatcoder|1 year ago

Congratulations! You've described the universal experience of using cross-platform frameworks.

They can be great as long as you and your customers stay on their most well-trodden path. But as these frameworks grow and become more byzantine, and as your project requirements start reaching for more rarified features and your customers start using new and differing runtime platforms, maintenance overhead starts to dominate and you find yourself running into invisible walls that make it hard for you to deliver on your project roadmap or satisfy the support standards you want for your customers.

This has always been the case for these frameworks, going back many decades, but especially since the explosion of efforts to build them around web stacks, which are easier for developers to use but harder for framework designers to keep sufficiently robust and capable as they age.

tcoff91|1 year ago

There's no free lunch when it comes to targeting multiple platforms. It sucks to have to maintain separate iOS, android, and web apps, and it also sucks to use a cross platform framework.

But I still feel in the end that for many CRUD style apps it's worth it to deal with react native's problems, especially if you can also have significant code sharing with your web app.

If you're trying to build the next snapchat or tiktok you'd better go full native though.

cageface|1 year ago

Having used both RN and Flutter quite a bit I also much prefer Flutter, despite being a big fan of Typescript and React for the web.

Flutter just feels like a much more polished and stable platform built explicitly for purpose and I've never had any performance issues.

tcoff91|1 year ago

Flutter on the web is an absolute JOKE though. React native web & react-strict-dom seem far superior. The moment you want to support web as well, react-native blows flutter away.

Also how's the accessibility on Flutter? I'm pretty skeptical that it's going to have decent accessibility given the game-engine style rendering.

heroprotagonist|1 year ago

Soooo.. more react-native contributors have bought in to the Apple ecosystem, so frameworks and components are better designed and tested there?

Which similar frameworks' developers have subscribed to the Android ecosystem and do much better work there?