Introduction
The variety of digital devices has grown considerably in recent years. Thanks to the new devices, completely new platforms have appeared on the market. A look into the near future using the example of smart watches or Google Glass shows that more will be added.
Each individual target platform is usually developed in a separate development environment with different programming languages and frameworks. This leads to additional effort by multiple writing of the same program lines, and increases the error rate when porting the program to the individual platforms.
Web
Webapps are applications that are implemented on the client side using pure web technologies such as HTML, CSS and JavaScript. The mobile browser installed on the device is used for the display.
The transition from web apps to simple websites is fluid. The web app is always dependent on an internet connection, although a limited form of an offline app would be possible with HTML5 cache technologies. Webapps cannot be installed on the device, their access is saved as a bookmark on the home screen.
Advantages:
Since web apps are websites, they can be updated quickly and easily. Every time the website is started or refreshed, the app runs in the latest version.
Another advantage is that the app does not have to be distributed via an “app store” or the like, with corresponding approval processes.
Disadvantage:
The main disadvantage is the limited offline usability. Despite existing caching technologies, web apps are mostly dependent on an internet connection.
Another disadvantage is the restricted, available access to hardware and operating system-related functions of the device, such as the Notification Center.
The performance is not suitable for computing-intensive applications.
Hybrid
In the hybrid approach, the web technologies HTML, CSS and JavaScript are combined with the platform-specific programming languages.
Phone Gap is probably the most popular framework on the market. It serves as a kind of browser, which is integrated into the app as a container and provides extended access to the platform-specific functionalities via interfaces. This means that these can be supplemented independently using a plug-in mechanism. The web technology source files are packed directly into the app. This means that the app can be run as a package and, unlike a normal web app, does not require an internet connection when it starts up.
Various web frameworks can be used to develop a hybrid app, for example Mobile Angular, Kendo UI from Telluric, Query Mobile, Sancho Touch and countless others. The decision to choose the right web framework depends on various requirements. This article will not go into further detail.
Advantages:
One advantage of the hybrid approach is flexible web technology, which enables rapid development.
Another advantage is the access to platform-specific functions via the corresponding interfaces, as well as the reusability of the source code in different operating systems and browsers.
Disadvantage:
The disadvantages mainly concern the display and the associated user experience.
The performance is also noticeably slower and cannot make animations appear smooth. The overhead generated by the browser container leads to long loading times when starting an app.
Advantages:
Modern and dynamic programming languages such as Ruby or Python can be used for mobile development.
If JavaScript is used, there is also greater platform independence, since the source code can also be reused in part in web browsers.
Disadvantage:
Since the program is only interpreted at runtime, this leads to performance losses.
The overhead, which is inevitable due to the integration of the interpreter, also increases the loading time when the app is started.
Cross-platform native
This approach uses a programming language that is available on all target platforms. This means that the app can be run on different platforms. Only platform-specific components are developed on a platform-specific basis. A framework such as Amari or RemObjects can be very helpful because it offers the developer comfort during development, such as support for connecting native program parts to platform-neutral program parts.
Advantages:
Support and selection of cross-platform libraries for common components.
The approach offers the best possible performance among the cross-platform solutions.
Disadvantage:
The disadvantage is the dependency on the framework and its continued existence.
In addition, the overhead connected by the framework can lead to noticeably longer loading times when the app is started.
User experience
Cross-platform development has not really prevailed in desktop applications. A look at the past shows that the reason for this was mostly due to their implementation. Most attempts have been made to achieve 100% cross-platform compatibility. For this purpose, cross-platform frameworks for the graphical user interface were developed and used, and platform-specific functions were generalized.
Cross-device development
Smartphones and tablets are increasing the variety of computer-based devices used in everyday life. With a new development, the requirement of cross-device availability is therefore increasingly placed on the application. Ideally, an attempt is made to continue using most of the programs across devices.
New developments should be designed and developed using the “digital marketing agency Auckland” approach. The small space on a small smartphone screen automatically leads to a more elegant concept. The application is thus reduced to the essentials. Ideally, this procedure leads to a clear, easy-to-use design concept. This concept can usually be easily ported to devices with larger screens.
Architecture
In order to meet the cross-platform requirements, an architecture is required that offers a neat division between cross-platform and platform-specific program parts. The Amari architecture is exemplary as a general, cross-platform architecture.
All other levels are to be developed independently of the platform. It is important to realize as many parts as possible across platforms. Ideally, bindings are written for the device-specific components, which can then be addressed via a uniform interface in the cross-platform program section. This reduces redundancies in the source code and simplifies the maintainability of the application.
Conclusion
Cross-platform development is nothing new, just a recurring need that is blossoming again due to the growing number of different new operating systems in the mobile industry. The central problem has not really shifted, and, as before, is still at the user interface level.
There is no magic formula for developing cross-platform applications. The ideal approach for a project must be decided individually for each individual project. The decision depends on the requirements of the functionality of the application, the previous knowledge of the developer, the budget and time for the project and many other factors.
It is important to know the target group of the business case. In general, more value is placed on a good, platform-related user experience in the consumer area. In contrast, good performance is crucial for games, and the scope of functionality is of much greater importance in the enterprise environment. The following recommendations are useful guidelines for new developments requiring a cross-platform solution.
This article is written by Jack mark who is a marketer and consultant Folio3 Dairy Farm Management Software Company. He also writes for different tech media.