In this review, we will define what a cross-platform mobile application is, which cross-platform frameworks and engines are most popular now, how they differ from the native apps for iOS or Android, and when it is not necessary to spend time on developing a cross-platform.
What is the difference between cross-platform, native and hybrid solutions?
Before we start the argument on the subject of cross-platform development we need to make sure that we clearly understand the difference between cross-platform frameworks and native development. For simplicity, we will project the process of developing cross-platform applications and compare it with the development of native applications for iOS. So, what is the hidden meaning of these terms?
If we talk about the development of mobile applications for Apple iOS, then a native application will be the solution developed using the programming language Objective-C or Swift (Apple programming language for developing applications for iOS and OS X, presented at WWDC 2014), within an integrated development environment Xcode.
From a user perspective, the native application does not differ from the high-quality cross-platform application, but it’s worth noting that native applications developed for a specific mobile operating system, usually have a user-friendly (native) interface. Convenience lies in the fact that during the development of native applications the bunch of UI/UX specialist and a programmer is most effective: the designer knows exactly what UI approaches are usual for users of a particular operating system (e.g., the «Back» button and bottom Tab Bar in iOS) and iOS developer knows exactly how to implement certain UI features for Apple mobile devices. As a result, the user opens a native app and intuitively interacts with the new interface.
Cross-platform Mobile Applications
It is important to understand why the application is called cross-platform. The fact is that self-executable file compiled for one mobile platform cannot be launched in the other operating system. So if we develop a cross-platform solution and compile it for Android, it does not mean that we can take a file with the extension * .apk and run it on iPad. The idea of cross-platform solutions is not in its usability but in the optimization of mobile application development process. Therefore, a cross-platform application is a solution developed to minimize development efforts by compiling the source code for further execution on multiple mobile platforms. But the result of each separate compilation will be an individual executable file. For example, iOS executable file has .ipa extension, and for Android, it is *.apk, etc.
Most often this is an application developed using web technologies, rather than native development environment (ex. a bunch of Xcode and Objective-C in case of developing iOS app). The result is a web application that runs in a “wrapper” and serves not as a web page, but as a standalone application. It requires no installation and has a separate icon. Hybrid solutions are quite popular among developers of cross-platform engines. It is caused by the fact that almost any mobile operating system can equally handle the function of a web browser, which means if the application is already running under any mobile OS, then there won’t be any difficulty to run it on the other OS.
Background to the Rise of Cross-platform Solutions
What tasks can be solved with cross-platform engines? Why did someone decide that it makes sense? If you ask a Java-developer for Android or Objective-C developer for iOS what they think about cross-platform frameworks for mobile platforms, in most cases, you will get a clearly negative response.
The main reason for such reaction is that good developers, like any other professionals, are very sensitive to the concept of development, efficiency, and productivity; each of them has his own vision of “what is good and what is bad?” But usually, it is all about technology set that use, care and cherish. It is important to understand that not every developer can sacrifice programming romance and make an objective assessment of what is actually good for business at a particular moment. In general, it happens that the budget decides everything, so the basic background for the emergence of cross-platform solutions was their benefits to business, namely:
- While developing a mobile application for 2-3 mobile OSs using a cross-platform framework, most of the code can be written by one person. Thus you eliminate a need for full-time developers for every single OS;
- Lack of proficient native iOS, Android, Windows and other popular mobile OS developers;
- The relative ease of control of correspondence between the app versions for different mobile operating systems.
Most Popular Cross-platform Frameworks
We, at Program-Ace professionally use four cross-platform tools to develop mobile applications of the high level of the nativity. These are Unity, Xamarin, HTML5, and PhoneGap.
It is important to understand that there are many reasons why one developer chooses one or another platform. For example, RubyOnRails developer will hardly develop a mobile app using Xamarin, because more likely he would have limited or no development experience in C #. But if Xamarin will be in the hands of an experienced C # developer, the client will definitely receive an application for Android and iOS that is highly competitive with a native app.
On the other hand, despite the fact that the team has at least 2-3 experienced C # developers, Xamarin can be expensive in implementation giving way to cheaper PhoneGap. Because PhoneGap can become a good alternative for projects that do not require any special graphics and hardware handling of devices, and are planned only as MVP prototypes to test the business model and should be implemented within a very limited budget. Another quite important parameter is the price to access the development environment in a specific framework.
Utilizing our years’ experience in mobile development, we know exactly what approach to use for specific customer requirements, budget, and deadlines. Cross-platform mobile development with Program-Ace is always cost-effective and successful.