Glad to see the team really embrace the nitty-gritty of keeping the open-source community healthy. React Native is a project with a lot of potential that's taken a few high-profile lumps this past year. Being an OSS maintainer can be difficult and thankless sometimes, but it's good to see teams that recommit to open source instead of withdrawing and focusing solely on internal needs.
I like to think that React — or more generally, component-driven user interface design — is the future of development on all platforms, not just the web. It really seems like we have “peaked” with concepts like state management, composability, and so on. Don’t get me started on how nice hooks will be in the mobile dev ecosystem.
I feel like React Native has taken a hit in the last year or so, with large companies saying they are moving away from it. I really hope that the RN community continues to flourish because I think it will inspire other platforms to move toward better developer experiences.
Well, UI has been component driven forever - although we faltered on Web UIs. For instance, the entire control library in late 90s Visual Basic were components, and people would build re-usable custom components and forms just like you would on React. It went even beyond that - need a Telephony connection or TCP Listener? Drag a TCP component on to your application surface and set some props visually (like port number). It really was that easy.
We haven't peaked. If you leave out the closed-source nature of the Microsoft dominated tech scene, the tech from the 90s is arguably better than what we have now.
I would hardly say we have peaked. I think there’s plenty left to discover. I think the web was vastly behind other user interface systems and just took a decent jump with Angular and React. There’s a lot left to discover though.
We used React Native back then when it first came out. Surprisingly the problems that exists back then, still exists today like red error screen, slow TableView scroll, upgrading RN problems.
It is too late for Facebook because a lot of high profile startups are moving away from it. When you release something like this and then have the OSS deal with it and not responed to PRs for several months and years, it leaves a bad taste.
>because a lot of high profile startups are moving away from it
Lucky for everyone there is a world beyond "high profile startups" whatever that means. You may even argue "high profile startups" is an irrelevant percentage in the job market.
To that extent, I also found that Android is usually treated as a 2nd class citizen. Which is understandable, given the marketshare, but frustrating nonetheless. It often sounds like something is easily do-able (like Accessibility) ... IF you're on iOS. We recently developed an app for a client of ours for Android, replicating their native iOS app in React Native. That was not a good experience.
While I like react Native, in my opinion Flutter from Google is proving to be far more superior as a cross platform app development technology. The apps are incredibly fast, feel far more native, and are actually fairly easy to build.
I went down this path of trying both and ultimately ended up building my side project with flutter. My project is a cross platform App that reads articles to you using some great sounding open source AI/ML models by converting any article to audio so you can maximize that dead time on your commute.
This is a little self promotional but if you want to see what’s possible with Flutter, you can check it out here:
Edit: while I get folks may be upset with my comment and are down voting me, I’ve geniunely worked with both technologies so I’m not just making this up.
My only problem with Flutter is that Dart is a hard sell from an organizational perspective. We'd have to justify teaching our engineers a language they'll only ever need for the purpose of using one mobile app framework.
You're being downvoted because people disagree with you.
I've researched both, and Flutter is far from superior.
They don't have a production way to target desktop platforms, and it's not a native experience, it's an emulated UI. It's noticeable on iOS.
Also noone wants to learn a language from Google just for it to be abandoned in X years.
Even if they don't abandon the language, how can you expect Flutter, which hinges on them updating the renderer for every release of iOS to match the native look and feel (which it fails at right now), to stay alive? Google can barely maintain a chat app let alone emulate a UI that isn't theirs.
And this is all for an experimental OS they haven't even put full faith in yet.
I know your post appears self promotional and is slightly out of context but I'm glad you posted it. I've been looking for an app like yours for years and the audio quality is pretty good. I realize that text to speech of this quality has only been around for a year or two.
The app UI feels native on Android and performs well.
I downloaded this to see if VoiceOver support is still as broken as it used to be and its surprisingly functional. And it really is fast. I can still "feel" that it‘s not native, but it actually might be close enough.
You should put labels on your image buttons though.
While the build chain, documentation, marketing etc is nicer - it definitely has an uncanny valley situation going on in iOS at least. It NEARLY feels native.. but something's not quite right.
Also rendering performance really sucks on the XS Max. Even the most basic of list view examples will drop frames.
I'm really torn here between React Native and just building a PWA.
I'm building a tool for managing your reading across devices. IT basically allows you to suspend and resume your reading easily and supports caching web pages offline and reading them like you would a PDF.
Hey, it depends on what you are building. I have found with React Native + Expo is that you can mostly avoid native code until you need something that isn't supported by React Native (eg. payment integration) - in that case you will need to eject the app. You would have to manage routing on the app, etc.
If your background is in web dev, building a PWA should be much easier.
It used to just mean you would build on standard html features so your app would fallback to it and still work if your crazy new JS driven input type didn't work the way you expected, and for accessibility purposes. I don't see either of those goals mentioned.
Have you considered Cordova/PhoneGap? Do you need native features?
I think if you're a small developer, having something that works across iOS, Android and the web with the least effort is usually worth more than native integration.
React and redux are nice but I'd never use it for native again personally. You update it to fix one bug only to get 2 more in its place, after you spend a day updating and fixing your app. I've spent less time coding entire Android apps than I have hunting bugs down in rn apps.
"Unfortunately, this is not something that we experience ourselves because we run React Native from master."
What does this mean? Does this mean they're always on the very latest RN version? If so, wouldn't this constantly break like many layers of dependencies?
(Nearly) all of Facebook exists in a single repository, so all dependencies are building against other dependencies at ~master. Things do break, but extensive automated testing goes a long way.
I work at google, and we run everything at head. The code is expected to be working state including all the dependencies, and there are precommit/presubmit hooks to help that.
React native is pretty cool, but I do wish they would add support for desktop apps, not just ios and android. Proton native exists and seems stable-ish, but the underlying cross platform UI library (libui) still says it's only at an alpha level.
ReactXP is the most mature mobile/desktop RN project and being used to develop the new Skype.
It provides common components to glue react-windows, react-macos, and react-native together.
The downside is you have to roll most of the components yourself due to a lack of UI lib, but it has all of the core components, and imo that's better.
The really cool thing about react-windows is it builds UWP apps so you can target Xbox, W10, and Windows Mixed Reality natively. MacOS support is experimental but the core is there. Linux support can be achieved with Electron (I know, not native, but maybe someone will make a react-qt project)
[+] [-] shafte|7 years ago|reply
[+] [-] stevepotter|7 years ago|reply
[+] [-] itwy|7 years ago|reply
[+] [-] sjroot|7 years ago|reply
I like to think that React — or more generally, component-driven user interface design — is the future of development on all platforms, not just the web. It really seems like we have “peaked” with concepts like state management, composability, and so on. Don’t get me started on how nice hooks will be in the mobile dev ecosystem.
I feel like React Native has taken a hit in the last year or so, with large companies saying they are moving away from it. I really hope that the RN community continues to flourish because I think it will inspire other platforms to move toward better developer experiences.
[+] [-] jeswin|7 years ago|reply
We haven't peaked. If you leave out the closed-source nature of the Microsoft dominated tech scene, the tech from the 90s is arguably better than what we have now.
[+] [-] amw-zero|7 years ago|reply
[+] [-] dirtylowprofile|7 years ago|reply
It is too late for Facebook because a lot of high profile startups are moving away from it. When you release something like this and then have the OSS deal with it and not responed to PRs for several months and years, it leaves a bad taste.
[+] [-] Mr_Shiba|7 years ago|reply
Lucky for everyone there is a world beyond "high profile startups" whatever that means. You may even argue "high profile startups" is an irrelevant percentage in the job market.
[+] [-] vpontis|7 years ago|reply
And it looks like they are a lot faster about responding to PRs now.
Tt seems to me like they are doing a good job improving React Native!
[+] [-] marcammann|7 years ago|reply
[+] [-] squiggy22|7 years ago|reply
[+] [-] KaoruAoiShiho|7 years ago|reply
[+] [-] hestefisk|7 years ago|reply
[+] [-] fareesh|7 years ago|reply
[+] [-] lbacaj|7 years ago|reply
I went down this path of trying both and ultimately ended up building my side project with flutter. My project is a cross platform App that reads articles to you using some great sounding open source AI/ML models by converting any article to audio so you can maximize that dead time on your commute.
This is a little self promotional but if you want to see what’s possible with Flutter, you can check it out here:
https://articulu.com
Edit: while I get folks may be upset with my comment and are down voting me, I’ve geniunely worked with both technologies so I’m not just making this up.
[+] [-] ipsum2|7 years ago|reply
[+] [-] root_axis|7 years ago|reply
[+] [-] s_y_n_t_a_x|7 years ago|reply
I've researched both, and Flutter is far from superior.
They don't have a production way to target desktop platforms, and it's not a native experience, it's an emulated UI. It's noticeable on iOS.
Also noone wants to learn a language from Google just for it to be abandoned in X years.
Even if they don't abandon the language, how can you expect Flutter, which hinges on them updating the renderer for every release of iOS to match the native look and feel (which it fails at right now), to stay alive? Google can barely maintain a chat app let alone emulate a UI that isn't theirs.
And this is all for an experimental OS they haven't even put full faith in yet.
[+] [-] saagarjha|7 years ago|reply
I don't see how emulated native controls can feel more native than actual native controls.
[+] [-] Impossible|7 years ago|reply
The app UI feels native on Android and performs well.
[+] [-] kall|7 years ago|reply
You should put labels on your image buttons though.
[+] [-] millstone|7 years ago|reply
[+] [-] tomwilson|7 years ago|reply
While the build chain, documentation, marketing etc is nicer - it definitely has an uncanny valley situation going on in iOS at least. It NEARLY feels native.. but something's not quite right.
Also rendering performance really sucks on the XS Max. Even the most basic of list view examples will drop frames.
[+] [-] inapis|7 years ago|reply
[+] [-] KaoruAoiShiho|7 years ago|reply
[+] [-] tim1994|7 years ago|reply
[+] [-] burtonator|7 years ago|reply
I'm building a tool for managing your reading across devices. IT basically allows you to suspend and resume your reading easily and supports caching web pages offline and reading them like you would a PDF.
https://getpolarized.io/
Right now I'm torn between a PWA and React Native.
Our PWA code is React, just not react native.
Being a PWA means I don't have to deal with React Native issues and I can keep the same code across my entire app.
The changes that Microsoft has made to their app store to support PWAs are really nice.
Additionally Google has their new 'custom web view' that allows you to compile a PWA into an Android App.
Part of the whole thing with the app store is being discoverable.
You might be a PWA but people are taught to go to the app store to find new apps to install.
However, with React Native I think you would have to do a bit more work but your app would look better on that platform.
Has anyone had to make this decision lately? Would love to hear your feedback.
[+] [-] christopher8827|7 years ago|reply
If your background is in web dev, building a PWA should be much easier.
[+] [-] kgwxd|7 years ago|reply
It used to just mean you would build on standard html features so your app would fallback to it and still work if your crazy new JS driven input type didn't work the way you expected, and for accessibility purposes. I don't see either of those goals mentioned.
[+] [-] heyoni|7 years ago|reply
[+] [-] seanwilson|7 years ago|reply
I think if you're a small developer, having something that works across iOS, Android and the web with the least effort is usually worth more than native integration.
[+] [-] bfrog|7 years ago|reply
[+] [-] debt|7 years ago|reply
[+] [-] debt|7 years ago|reply
What does this mean? Does this mean they're always on the very latest RN version? If so, wouldn't this constantly break like many layers of dependencies?
I kind of like the idea though.
[+] [-] dymk|7 years ago|reply
[+] [-] tehlike|7 years ago|reply
[+] [-] ericlewis|7 years ago|reply
[+] [-] Octoth0rpe|7 years ago|reply
[+] [-] joshuagross|7 years ago|reply
[+] [-] s_y_n_t_a_x|7 years ago|reply
It provides common components to glue react-windows, react-macos, and react-native together.
The downside is you have to roll most of the components yourself due to a lack of UI lib, but it has all of the core components, and imo that's better.
The really cool thing about react-windows is it builds UWP apps so you can target Xbox, W10, and Windows Mixed Reality natively. MacOS support is experimental but the core is there. Linux support can be achieved with Electron (I know, not native, but maybe someone will make a react-qt project)
https://microsoft.github.io/reactxp/
[+] [-] Jedi72|7 years ago|reply
[+] [-] openloop|7 years ago|reply
[deleted]