The mods prominent factors in choosing a specific app development platform or approach depends on t he below key factors
- Skill set of individual or development team
- Unique requirements of the app
- Targeted user segment
- Long term strategic vision of the individual or an organization
If you are making apps for one specific platform only, the going native(swift, objective c for iOS and java for android) is the preferred choice. simply because you get the best performance and the latest APIs and features to work with.
Alternatives to native development
Cordova Based Mobile App Development
The biggest advantage you get here is the single code base to develop and maintain, and that too, without learning any new technology, if you are already a web develper.
Application runs in the webview, and not natively on the hardware, which makes it less performance than the native Android or native iOS applications. But then, all apps are not required to be super performance.
Cordova is free and open source under Apache license and is distributed by the Apache Software foundation
Mobile App Development Using React Native
React native is relatively new but an excellent option ofr rapid mobile applications development, and you cant target both iOS and Android. React native is the open source framework from t he house of Facebook and is used for developing native iOS and android apps.
Event though React native is a new entrant in the market but many developers and organizations across the globe have started.
Apart from React framework, you need to understand JSX, JSX is the XML like syntax extension of ECMAScript.
React Native vs Cordova or PhoneGap
Code reuse between Android and iOS apps in react native is not purely 100% but can easily be targeted anything from 85% - 100%, depends on what you are developing.
Mobile App Development Using Xamarin
Xamarin is another animal in the wild of building native mobile apps and it is one of the most used platform for app building. With Xamarin, you can build native android, iOS, windows and Mac apps in C# language.
Xamarin is not the easiest to work with but gives you the performant mobile applications. You develop code in C# and Xamarins compilers compile the code into native packages of respective platforms, may it be iOS, Android or Windows Phone.
from : http://noeticforce.com/mobile-app-development-cordova-vs-react-native-vs-xamarin