Top 6 Frameworks for the Development of Mobile Applications
Web application development for mobile platforms is one of the main areas of activity for most IT companies. As practice shows, in order to create a really qualitative and useful application, mere skill in the programming team is not enough. It is equally important to use good tools. After all, in order for a mobile application to work effectively, it is necessary to use libraries, development environments, and such tools as a mobile development framework with quite specific capabilities — touch recognition, screen orientation, resolution adaptability, cross-platform and cross-browser operation, capabilities for integration with third-party services, etc.
In this article, we are going to review our company’s list of the top frameworks.
The Creation of Web Applications
Let us study the specifics of web application development. A typical web application has two sides — the front end and the back end. Although they are interrelated, their development processes still involve different tools and specialists with different skills. The back end includes such elements as the application’s business logic, centralized server storage, and data processing. In turn, the frontend is the application’s interface in its essence. Its development involves working on all the details of the web application that will be displayed on the end user’s screen on browsers and mobile clients on the most popular platforms (Android and iOS).
Frontend: Native VS Cross-Platform
Our programmers create “thick” mobile clients as frontends. The client exchanges data and directions for what needs to be processed with the server, and also is responsible for drawing layouts and page rendering (JS, HTML, and CSS).
A frontend can be either cross-platform or native. Native development involves the creation of a specific custom app for each platform using specifically tailored tools. In turn, cross-platform development involves creating a unified code base that will create the correct layout and executables for each any platform.
In general, the idea of cross-platform development is as follows: developers use a browser wrapper that is launched on a mobile device and through special interfaces provides access to the platform capabilities. We, in particular, use the PhoneGap wrapper, which is efficient, has many plugins for different platforms/hardware and allows us to perform many of the routine tasks quickly and easily.
Pricing for Native and Cross-Platform Development
Customers often believe that developing a native app for each platform will cost several times more than for a single cross-platform project. However, practice shows that this is far from the truth. For serious applications involving extensive functionality, complex logical constructs, interaction with hardware and/or internal data (gallery, contacts), as well as special capabilities (image processing, geo-positioning), the final difference between cross-platform and native costs may be just 10%. The main reason for this insignificant difference in price lies in the fragmentation of mobile hardware and software capabilities. Cross-platform development frameworks do not always take these into features into account and keep up with all the changes.
Cross-Platform VS Native Development: Which to Choose?
Cross-platform development is best used for simple applications that «inherit» website features — news feeds, weather forecasts, and so on. They have a moderate set of functions and few different pages. If the application requires sophisticated business logic and advanced interface elements, native development would have its advantages. A native application can guarantee fewer elusive and difficult-to-correct problems in the code, as well as qualitatively better results. We also have to mention the difference in performance. Native applications have clearly proven themselves in terms of efficiency and have a more «native» appearance.
Mobile Application Development Frameworks
Either way, some customers choose either a hybrid or cross-platform solution to lower costs. To do this, developers require a special environment. The mobile development frameworks featured in this article can be divided into:
— Universal frameworks. Such frameworks are designed to complete any development task, including the device access provisioning and layout management. The most notable among these frameworks are Appcelerator Titanium and Xamarin;
Let us consider each of these frameworks in more detail.
— Efficient and lightweight applications. A distinctive feature of mobile applications created by this framework is their compact size and high performance (and, hence, increased responsiveness to user input). With the addition of Cocoafish infrastructure designed to create cloud services, Appcelerator Titanium is the ideal choice for building high-performance mobile applications oriented at working in difficult conditions (for example, on low spec user devices or through a slow Internet connection);
— A vast developer community. One cannot overlook the extremely large and active community of Appcelerator developers. This means that the solution to your problem can certainly be found on the Internet in the least time possible.
— Steep learning curve. Since its first release, Titanium Studio which is based on the Eclipse IDE, has become more and more complicated with each version. Moreover, since Appcelerator Titanium was originally designed to develop intricate applications, it requires the use of very complex code structures, tools, and architectures (MVC, for instance).
— Lack of flexibility. Things that could be implemented in native development languages (for example, Objective-C for iOS) simply, require the use of workarounds in Appcelerator Titanium.
Xamarin has been one of the most advanced and popular tools for cross-platform development for Android, iOS and Windows platforms for 6 years to the day. This mobile development framework connects applications to platform APIs, as well as supports full interaction with complex mobile device sensors (cameras, GPS, gyroscopes etc.)
— Support for the complete development process. Just like Appcelerator Titanium, Xamarin allows developers to create every level of the business logic and user interface, as well as provide communication with a server without sacrificing application performance (their efficiency is comparable to native Java on Android and Objective-C/Swift on iOS).
— Platform-independent API. The Xamarin Forms API, provides optimal conditions for the creation of colorful user interfaces, regardless of the intended platform.
— Strong corporate support. Xamarin includes its own IDE, Xamarin Studio, and a set of tools including Hockeyapp, Xamarin Insights and the test cloud, which minimizes the need to use third-party solutions. Moreover, as Xamarin is a Microsoft subsidiary, the number of Microsoft programs and services that are easily integrated into Xamarin rises every day.
— Difficult to master. To develop under Xamarin, you need advanced knowledge of the object-oriented C# language and the .NET open source software platform.
— Large applications. The major disadvantage of this framework for mobile app development is the relatively large size of applications that it creates, which can complicate the process of uploading them to online stores.
As an open-source, HTML5 framework for mobile apps, Ionic is designed for developing hybrid applications based on popular web technologies, such as CSS, HTML5, and SASS.
— Convenient toolkit. This framework is characterized by the large number of really convenient and well-designed templates, which allow the creation of intuitive UIs with zero knowledge of programming languages quickly.
— Wide selection of plugins. Ionic Market offers a huge choice of plugins, themes and UI creation starters at budget costs (their prices vary from $10-20).
— Relatively low performance for intensive applications. Compared to native development, applications created with Ionic suffer from reduced performance.
— Lack of advanced tools for complex apps and games. It should be noted that many developers do not consider Ionic to be the best environment for developing mobile gaming applications with intense graphics (in particular, 3D) or complex software solutions.
— Coordinated rendering. The rendering procedure takes place only after confirming all the changes when comparing the two DOM trees. This increases the responsiveness of applications with intensive graphics and high-speed animations.
— Easy to learn. Characterized by the presence of specially designed mobile components, ExtJS is extremely simple to study (in comparison with Angular 2 and Angular 4, which require knowledge of TypeScript and ECMAScript 6 syntaxes).
— Rather high license cost. The current cost of a commercial license is $895 per developer annually with a 5-seat minimum.
— Limited capabilities for UI personalization. Like any other tool that bypasses native development, this framework does not allow developers to personalize the UI properly in some cases. In addition, to create a mobile user interface, developers have to use Sencha Touch as well.
Open source, mobile app development framework AngularJS is used by large-scale IT organizations more often than other similar environments. This is thanks to well-written, detailed documentation, and the precisely predefined syntax of a strongly typed TypeScript language. AngularJS is characterized by its unsurpassed stability, and is therefore ideal for working with teams, since it makes it easier to read the code and reduces the likelihood of careless errors.
— Simplification of development tasks. The two-way data binding inherent to AngularJS does not require direct developer intervention to the description of DOM updates.
— Highly efficient apps. Application caching in AngularJS reduces server loads, thereby minimizing server response times.
— Compact code. AngularJS is characterized by the compactness of the created structures: literally, a couple of lines can contain a fairly complex functional logic.
— Difficult to study. The major disadvantage of this framework, as noted already, are difficulties for beginners, in particular, using the problematic directives.
— «Inefficient» compilation. Syntax errors in AngularJS are detected only after the full project is compiled, which can waste a lot of timebe very time-consuming.
The minimalistic philosophy of the jQuery Mobile framework for building cross-platform mobile apps includes an extensive set of plugins for UI creation and thorough technical support from GitHub. This framework is indispensable for developers who want to create HTML5-based multiplatform software for iOS and Android.
— Simple UI creation. With ThemeRoller, jQuery Mobile users can create new UI themes with zero knowledge of programming languages.
— Rapid deployment of updates to AppStore apps. One of the essential benefits of this framework is the special application architecture that allows deploying updates, bypassing the standard AppStore procedure, which can take several days or even weeks.
— Low app performance. Applications created with jQuery Mobile are notably slower than native ones. Thus, this development environment is not very suitable for resource-intensive software solutions.
— Problematic UI customization. If you want to create a special UI, that is completely different from any other, JQuery Mobile would not be the best choice.
— Relatively outdated.
Why Do We Use These Frameworks?
Our team has used all the above frameworks to create mobile applications over the years. The final choice is made separately for each project, taking into account the features of the application its functionality and the specific requirements of the customer.
What is so good about these development environments? Experience has shown that they each allow us to build small, high-performance applications with responsive user interfaces that let the user get the most out of the advanced capabilities of modern mobile devices.