Developers very quickly realized the business problem – the need to deliver services on different mobile platforms, and today there are a huge number of tools on the market for creating cross-platform applications that differ in the range of supported devices and mobile operating systems, as well as in the engineering solutions underlying them. This market is still extremely immature, the standards have not been settled, the leaders have not decided, which, in principle, is logical – the market of mobile applications itself is about five years old.
A potential customer from a business needs to understand the advantages and weaknesses of the proposed implementation of a cross-platform app development company, so that later they do not have to order this work again from another team. By and large, there are few different technical approaches: native applications for each platform, universal web applications, using code generators to create native applications, and hybrid solutions.
We must not forget that mobile diversity does not end at the level of operating systems and development tools (which, by the way, exist in several versions). The market offers devices of various shapes and sizes, with different screen resolutions. Even iPad and iPad mini, iPhone 4 and iPhone 5 are not the same thing. What can we say about Android devices!
There are so many legacy devices, especially in third world countries, that are nevertheless actively used, and service providers do not want to lose their customers even in the most remote corners of Africa or India. By the way, analysts rarely take this factor into account, getting carried away together with vendors in assessing the prospects of the latest models of fashionable gadgets, ignoring the harsh truth of life, where, for example, Symbian OS applications (which have already been buried) are still needed.
Web applications on mobile devices
All smartphones and tablets today are equipped with a web browser, which allows you to view any site and run almost any web application as it is, without modification. However, it cannot be said that users like it – if the site has not been adapted for viewing through the small screen of a smartphone, then the user will turn to this opportunity only in the most critical case. Therefore, developers have to create the best mobile app design and special versions of sites for mobile devices, which differ in design, size of controls and structure.
In principle, this is sufficient for some areas. For example, to read newspapers and news sites on an iPad or Galaxy. Users of such applications do not need advanced functionality and any special services, therefore the limitations inherent in such architecture are acceptable:
- lack of access to sensors and buttons of the gadget,
- inability to use specific functions of the user interface,
- the need for a constant connection to the Internet, etc.
This is compensated for by speed. And ease of development.
In its simplest form, on a mobile device, you only need a browser, all logic and user interface is implemented on the server using the usual Java, PHP or Ruby toolkit. It is possible to connect third-party web services, which allows building cloud applications.
Toolkit: a rich selection
If you are not satisfied with the limited functionality of web applications, and for economic reasons, it makes no sense to invest in the development of native applications for all the necessary platforms (even if there are only two of them – iOS and Android), then you will have to look for some third way that allows and save and provide the market coverage you need.
The use of code generators implies that several native applications are automatically created on the basis of a single model, one might say “one language to build them all”. This approach is used when physical access to hardware is needed and it is important to provide a native user interface. Examples include Applause and Mono. The disadvantage of code generators is the need to rebuild applications for all platforms when making changes. In fact, there are still several native applications on the way out, which must be published separately in vendor stores.