There are two approaches in the world of mobile app development - native and hybrid.
Native applications are those you see the very first time you use a device. Examples of native applications include a browser, an email client, an address book, an alarm clock, a calendar and other standard programs that are built in by default.
When a developer writes a mobile application using a programming language that is specific to a certain platform, e.g. Objective-C and Swift for iOS or Java for Android, that application is considered native. Native apps can access the operating system features of a phone such as the camera, microphone, geolocator, accelerometer, calendar, media files, notifications, etc. In a word, they grow roots and feel at home.
Imagine a mobile website that does not always need an internet connection, but which from a design standpoint is closer to mobile apps than to webpages! That is a rough description of cross-platform applications.
Most professionals who create hybrid applications use Ionic, PhoneGap and Cordova frameworks, which allow the application to access hardware and software platform features. In addition, cross-platform development is available for Xamarin, Unity and other technologies, but they are not that popular for the development of web-based applications.
The first thing a user expects from an application is responsiveness. This means instant feedback and smooth- flowing, uninterrupted page scrolling and animation. In this regard, cross-platform applications compare poorly to native ones and, quite honestly, they are slow. That is their main problem.
In addition, each control element and icon will have a standard form and a standard position on the app screen. However, these standards will be different for different platforms. Thus, if a cross- platform application has been built according to iOS guidelines, it will be uncomfortable for Android users and vice versa.
The “back” button may be one of the best examples of this situation. It is a typical feature for Android, but there is no analogue for iOS. Therefore, when you create a cross-platform application, there are only two options – either the design is the same for both platforms and users of one are forced to adapt to it, or you create two different designs and take into account the peculiarities of each platform. In fact, in the latter case, two applications are created in the same cross-platform language and React Native is ideal for this.
React Native is a hybrid mobile app development tool from Facebook for iOS and Android, based on the ReactJS library and designed to interact with native API platforms.
Of course, there are very specific reasons for the popularity of native applications:
Despite the popularity of native applications, there are reasons why it is hard to create them:
Igor, Developer at Visual Craft