The Four Methods
1. Native App Development
In Native application development, the SDK is given by the provider and applications are built for use on a particular platform or device. Native is a good approach if you have the needed manpower, resources and knowledge. You basically need three different teams to work on a single app. Native is also the best approach if your app is complex – if it is a high performance app, focuses on usability, or if it needs to cater to different devices.
When you cross-compile, you develop the app in a single language which is then cross-compiled across different vendors. Xamarine (acquired by Windows) is a good platform for cross compilation – the app is written in C# and is then cross-compiled to Java for Android, iOS and Windows. Xamarine allows you to write once, and then deploy across multiple platforms.
4. JS Runtime
Why Choose Native?
When you have a single code base that needs to be deployed across multiple platforms and if there is a chance bug, you only need to fix it once. The complexity is also considerably reduced with a single code-base, plus you do not need to have an in-depth knowledge regarding the individual platforms to start developing applications. These characteristics are common to both the JS Runtime and the web based approaches as well, but with the JS Runtime approach, users will not notice the difference.
The feedback loop is the time taken between applying a change and seeing it on your app. Because Native has a low feedback loop, you are able to iterate faster.
What is React Native?
With React Native, standard platform components such as UITabBar on iOS and Drawer on Android can be used. This gives the app a consistent look and feel with the rest of the platform ecosystem, and keeps the quality high.
About the Virtual DOM
At CAKE, we have two apps which are based on React native. They are very similar in terms of visual elements and UIs, and the actual components of the platform. The user would not realize that the app is written in JS, which shows the perfect native app experience for a fully fledged application. This app is available in the app store as well for both Android and iOS.