Coming from web development, I'm used to double-check browser support for everything.
I'm slowly starting to get into app development with react native, and there is one thing I'm unable to find on google:
How are phone/OS-requirements handled in react native?
For example flexbox. Checking out the stylesheet-component from react native, I don't find a word about support on older android/ios-versions:
https://facebook.github.io/react-native/docs/stylesheet
Do I need to worry about components not working on older smartphones (while developing with the newest version of react and react native)?
Related
I am currently writing a regular React app for the browser. However, it will mostly be a mobile app rather than a browser one.
I have no plans on re writing the app in React Native.
1.What is the intermediary software that a non-native app needs to run on on Android and iOS?
2. Is the performance difference significant?
I have been doing research about usability scenarios of React and React Native to ultimately decide whether it is a feasible and responsible decision to embed React (or React Native) to an existing mobile app.
So far, what I have learned is that it is possible to render React Native code within a custom view in both Android and iOS. Embedding React is simpler, since a React app is literally a web page that loads the client side framework.
My concerns are many and may also be pointless if I misinterpreted some scenarios. Below are the ones for which my Google skills failed me to get some answers.
Is it possible to use a third party's React component in a React Native rendering view?
What do I lose in terms of backward compatibility and UI performance to fully utilize React Native in mobile? Do low-end devices handle it well?
Is debugging React and React Native a pain? This question may and should be responded subjectively.
When I use React Native, is it possible to push updates to my app's that specific part without publishing an update to Google Play or Apple App Store?
Is React or React Native incompatible with CoffeeScript on the server side? If so, can I avoid that with a custom build flow to ultimately end up with only Javascript files which contain all the server code?
Sorry for the long entry.
Thank you
I worked for react native for several months,and here is my answer:
Is it possible to use a third party's React component in a React Native rendering view?
No,react component for Browser cannot use for mobile.but there are many mobile specific component.You can find here:React.parts
What do I lose in terms of backward compatibility and UI performance to fully utilize React Native in mobile? Do low-end devices handle it well?
You can test these apps on low-end devices to see whether react native can meet your need.
Is debugging React and React Native a pain? This question may and should be responded subjectively.
No,debug React Native code is really easy and efficient.
When I use React Native, is it possible to push updates to my app's that specific part without publishing an update to Google Play or Apple App Store?
Yes,you can do these things easily with Code Push.
Is React or React Native incompatible with CoffeeScript on the server side? If so, can I avoid that with a custom build flow to ultimately end up with only Javascript files which contain all the server code?
There isn't server side code in React Native,all your js code is in a single js file called bundle.js. the compile process is automatic with packager.sh witch provided from React Native,check this link.
I'm exploring using react native for a fairly complex android app. I was wondering what kind of apps are not suitable for react native? Or is the idea that you can do anything in React Native that you could do natively on Android?
To make the decision whether you should use React Native for your app, I would first check whether all the stuff (camera? location? toasts?) is covered by either React Native's own API's or a community created one.
If the answer is no, then you could also create your own, see https://facebook.github.io/react-native/docs/native-modules-android.html#content for isntructions.
Also know that you can build a "combo-app"; where part of the app is ran by React Native while the other part is truly native.
I have the following considerations:
1.I will never use the hackintosh on a regular basis, maybe only for the final steps on xcode and publishing.
2.It could be that some functionalities i would like to realize cannot be done on phonegap/react native. I heard react native allows one to integrate native codes (e.g. android with java and ios with swift), but I'd like to reconfirm this.
3.I read that many people were complaining about errors with react native on linux even for android. Can someone perhaps tell me if they have already successfully built something with react native + linux?
4.I haven't spent much time on learning react native yet, so this last point might be silly, but if one already have build an android app with react native, how much work is there still to build ios? Also, do I HAVE TO use jquery for react native?
OK, I'll try and answer as thoroughly as possible, from the RN side (I've never really used cordova).
I will never use the hackintosh on a regular basis, maybe only for the final steps on xcode and publishing.
OK, RN works with all platforms. Of course, you will need xCode at one point to publish your app but apart from that everything can be done on other platforms. However, to build on iOS, you will need Xcode to launch the simulator or run you app in debug mode so you will need to work on a Mac.
It could be that some functionalities i would like to realize cannot be done on phonegap/react native. I heard react native allows
one to integrate native codes (e.g. android with java and ios with
swift), but I'd like to reconfirm this.
Yes ! RN allows the integration of native code. Check the docs here and here for more information.
I read that many people were complaining about errors with react native on linux even for android. Can someone perhaps tell me if they
have already successfully built something with react native + linux?
Can't help on this one but RN works with linux, especially the latest versions. Check this
I haven't spent much time on learning react native yet, so this last point might be silly, but if one already have build an android
app with react native, how much work is there still to build ios?
Also, do I HAVE TO use jquery for react native?
I have built apps for iOS and Android and have never used jQuery in any of them. Moreover, jQuery does not work with react-native as explained here
Finally, about 80% of the code (depending on apps of course) is the same between android and iOS. This leaves 20% to work on (usually not long modifications).
Hope this helps, but I strongly recommend using RN instead of phone gap.
I've to do a quick development for a prototype app and I've decided to go for a cross-platform HTML5 tool/platform.
I've shortlisted Intel XDK for its developer-friendly IDE, React native for its performance as a native build compared to others and Ionic for the nice UI with Angular and available themes.
I need native like performance and nice UI with some responsive themes, which would be better recommended?
Currently? Cordova + Intel XDK has more support and a larger feature set. There are even examples that come with the XDK of video games that perform at near native speeds. Cordova uses JS APIs to hook into native functionality, but at the end of the day, you're still running web code.
React Native is different in that you're building an application using native components, but expressed using React's JSX. Arguably, because you're building the app using native components, you should see better performance (and get a more native look/feel).
Cordova:
Uses a web view
Taps into native functionality with jsAPIs
Has been around longer, and has more support
Code once, run everywhere
React Native:
Android support appears to be a little shaky? (could be wrong here)
Builds display using native components
Newer, but backed by a powerhouse (and gaining traction)
Learn once, code everywhere
Honestly, using either technology you should be fine. Both have shown that they're up for most challenges.
I would probably push you to Cordova + Intel XDK for increased support, easier for webdevs to pick up, and it's more mature. React may very well eclipse it, but I don't think it's quite there yet.
¯\_(ツ)_/¯
with cordova The biggest advantage you get, is the single code base to develop without learning any new technology, if you are already a web developer But the application runs in the webview, and not natively on the hardware, which makes it less performant than the native iOS applications or native Android.
in React You need to understand the Framework(react), you need to understand JSX (in iOS simulator, You also need to work with Xcode)
With React native, you get ease of development, better performance and great user experience in the end