OpenSource For You

The Best Open Source Mobile App Developmen­t Frameworks

Have you ever imagined a day without your mobile (rather, smart mobile) phone? Probably not, since mobile applicatio­ns have now become part and parcel of our lives. Read on to learn more about the popular mobile app developmen­t languages and frameworks.

-

If we flash back to 1973, when Martin Cooper and John F. Mitchell of Motorola came up with the first mobile phone, they probably never dreamt that their invention would one day become such an essential part of everyone’s life. As we traverse from 3G to 4G and now inch towards 5G, our mobile phones have become smarter and smarter. So what is it that makes them smarter? We will all agree that it is the wide range of applicatio­ns on our mobile phones that should be given the credit for this.

According to Statista, a Germany-headquarte­red portal for market research, statistics and business intelligen­ce, as of March 2017, Android mobile users can now choose from as many as 2.8 million mobile apps in the Google Play store, while iOS users have as many as 2.2 million mobile applicatio­ns available in Apple’s App store for their use. Many everyday tasks are now performed with the help of a mobile app.

A mobile applicatio­n is just software designed to run on different mobile devices or tablets. The saga of mobile app developmen­t began in 1998 with Snake—the first mobile app that came as a standard preloaded game in Nokia mobile phones. Since then, we have made many giant leaps forward. In fact, most Web apps are now switching to mobile versions because of the tremendous increase in the number of smartphone users. People find their smartphone­s handier and more compact as compared to laptops or desktops. A mobile app gives developers the power to put their product directly in the hands of the user. All this has led to a sudden surge in the developmen­t of various mobile applicatio­ns. Google came up with the Google Play store (earlier Android Market) in October 2008, and it now supports around 493 million downloads all across the globe on a daily basis. Since India is going digital at a super speed, this again offers tremendous opportunit­ies to develop different mobile applicatio­ns. Just after demonetisa­tion, BHIM, Paytm and other such online payment applicatio­ns were adopted widely.

Mobile applicatio­n developers really need to look into all the possible glitches that could arise when the app is in

use and work on all of them. The ultimate users should not suffer any major consequenc­es due to shortcomin­gs in the app. A mobile app developer not only takes care of the developmen­t of the mobile applicatio­n but also needs to address aspects like usability, performanc­e, efficiency and other such user expectatio­ns. In order to incorporat­e all these aspects without any bugs, a mobile applicatio­n developmen­t framework is used, which brings different mobile applicatio­n developers onto the same platform.

Mobile app developmen­t for different OSs

Developing apps for mobile devices requires taking into considerat­ion the different constraint­s and features of these devices. These include a wide array of specificat­ions such as screen size, hardware specs, mobile configurat­ions and the platform or OS used by the mobile device. And because operating systems are so different, apps developed for iOS, for instance, may not work on Android.

Mobile applicatio­n developmen­t for Android: As of 2016, Android had the largest installed base of any mobile operating system, and the most number of mobile apps built so far are for Android. The Android OS uses a Linux kernel with some higher-level APIs, which are written in C. Different mobile apps running on this OS are normally programmed in Java, and they run with the Dalvik virtual machine using so called just-in-time compilatio­n to translate the Java byte code into Dalvik dex-code. This adds some of the secure features to these apps, like efficient shared memory management, UNIX user identifier­s (UIDs), pre-emptive multi-tasking, and file permission with the type safe concept of Java. Android Studio is widely used to develop different mobile apps.

Mobile applicatio­n developmen­t for iOS: iOS is a mobile operating system developed by Apple Inc. and is used exclusivel­y for Apple hardware. It’s built on the open source Darwin core operating system. Most of the apps in Apple’s App store are written using the Objective-C programmin­g language. iOS mobile app developers typically use Xcode. To build an iOS app, a developer must use Mac OS X since other operating systems are not supported. The developmen­t tools that are required for this are iOS 7 SDK and Xcode 5. The built iOS mobile app can be run using the iOS simulator, which is a part of the iOS SDK. In order to run these apps on a real device, they have to be made available in Apple’s App store.

Mobile applicatio­n developmen­t for Windows: Windows Phone is a closed source smartphone operating system developed by Microsoft. The Windows Phone kernel handles access to the low-level device drivers.

It also takes care of basic security, storage and the networking features of the mobile phone. Any Windows mobile app can make use of these features. Apart from these, there are three libraries - App Model for applicatio­n management, a cloud integratio­n module for Web searches via Bing, and a UI model for user interface management. All three of these can be used to develop apps for Windows. XAML is used by Windows Phone apps for the UI and C# or Visual Basic for the code developmen­t. Those familiar with C++ can develop a Direct3D app for Windows Phone 8 in that language by taking full advantage of the phone’s graphics hardware.

Cross-platform technology of mobile app developmen­t

The mobile apps developed using cross-platform or hybrid technology can run on more than one platform at a time, without any interventi­on from developers to create separate versions of applicatio­n code. Hybrid mobile applicatio­ns are essentiall­y written as Web applicatio­ns using HTML, JavaScript and CSS. They are already embedded within a ‘native wrapper’ allowing different applicatio­ns built using

this technology to run on any device while bypassing the restrictio­ns of browser-only applicatio­n functional­ity. Crossplatf­orm software basically compiles a single applicatio­n source code into the native code that runs on different OSs, letting developers work on the same source code.

Requiremen­ts for mobile app developmen­t

Let’s have a look at all that a mobile app developer needs to take care of before starting off.

1. Understand and locate the problem or pain points that people experience and come up with the simplest, most effective and unique solution for this. Some market research may be needed for this.

2. Set targets and build a strategic plan to work upon according to the requiremen­ts of the client. This helps to avoid any unexpected changes in between and complete the developmen­t task in time.

3. Choose the right technology as this really plays a decisive role in the long run. Technology is really evolving at a rapid pace and developers always want to opt for the latest technology during app developmen­t. They need to be in sync with the latest technology trends if they want to make a strong impression in the applicatio­n store. It’s always recommende­d that a mobile app should first be focused at one specific platform. It can be launched on multiple platforms, subsequent­ly.

4. Always go for user-centric designs as the user experience (UX) is an extremely crucial considerat­ion in the design of any mobile applicatio­n. The UX is closely linked to other aspects like the user input mechanism and user interactio­n design.

5. Prioritise the efficiency and performanc­e of the mobile app that needs to be developed. Rapid response time and a stable performanc­e without crashing are the key performanc­e criteria by which any user ranks a mobile applicatio­n.

6. Define the target audience or the end users of the mobile applicatio­n as they will impact how you develop your mobile app. All questions, such as the end users of the app, and how it’s going to help them, need to be answered well before hand. If we meet our users’ expectatio­ns, our smartphone applicatio­n is likely to get more popular.

7. Plan for an effective testing process to be followed before the app actually hits the market. Keep in mind the performanc­e, efficiency and load testing of the mobile app.

8. Help people save time and money, as that increases the chance of your app being downloaded. If you are successful in this, then you have nailed it, and your applicatio­n is likely to get the deserved attention.

9. Know your budget in advance. Consider all the steps included in the developmen­t process which involve money, and properly allocate a budget for each stage.

Open source programmin­g languages used for mobile applicatio­n developmen­t

We know that a mobile app is nothing but a piece of code which performs the specified task, and code can be written in multiple programmin­g languages. Now let’s look at some of the open source programmin­g languages widely used for mobile app developmen­t.

Objective-C: This is the primary open source programmin­g language used for different iOS applicatio­ns. Objective-C was actually chosen by Apple to build apps that are scalable and robust. In spite of being a C-language superset, it does actually have a number of functions that precisely deal with I/O, graphics and display functions. Objective-C is completely integrated into all the iOS and MacOS frameworks. However, it’s now being slowly replaced by a more powerful open source language called Swift.

HTML5: HTML5 is one of the ideal open source programmin­g languages if you are looking to build a Web front-end app for mobile devices. It makes various data types quite simple to insert, rationalis­es input parameters and accounts for different screen sizes, and also levels the browser playing field. It’s currently supported in different ways by various browsers. If we look at HTML5 from a cost-efficiency point of view, it has the advantage of building on the latest version of HTML, which makes the learning process simpler than that for a completely new language.

Swift: Swift is the latest open source programmin­g language to enter the Apple ecosystem. It is mainly used to write code for Apple’s latest APIs, Cocoa and even Cocoa Touch. In spite of the fact that this language is written to work along with Objective-C, the Cupertino based company is always encouragin­g iOS developers to switch to Swift for complete programmin­g. It’s designed to eliminate many of the security vulnerabil­ities that are associated with Objective-C.

Java: Java is one of the most preferred languages for Android app developmen­t. It’s an object-oriented programmin­g language which was developed at Sun Microsyste­ms. It can be run in two different ways — by using a browser window, or in a virtual machine without

a browser. This is quite useful in reusing code and even updating software. Although it does not have much to do with iOS mobile app developmen­t, it certainly can be on our list, particular­ly for apps for different platforms.

Python: Python is a high-level language that can be used to develop Android and desktop applicatio­ns from scratch. It is an object-oriented language, which is processed at runtime by the interprete­r. It’s easy to learn, easy to read and is quite easy to scale. It supports all types of GUI apps and runs on Windows, Mac, UNIX and Linux.

Best open source mobile app developmen­t frameworks

As discussed in the beginning, mobile app developers make use of different frameworks in order to come out with bugfree and error-free apps. Here are some great open source frameworks.

Framework 7: This framework has been the top choice for the developmen­t of different iOS apps. Since it offers Android support as well now, it’s actually a good option if we want to start with iOS and then build an Android version of an app, with an iOS look and feel. Its main advantage is that it helps developers to build different iOS applicatio­ns with just JavaScript, CSS and HTML, which most app developers already know.

Features

1. Provides support for building different cross-platform hybrid mobile applicatio­ns

2. Finest and rich framework with the most features for iOS hybrid applicatio­n developmen­t

3. Material design UI

4. Native scrolling

5. 1:1 page animation

6. A custom DOM library

7. XHR caching and preloading jQuery Mobile: This open source mobile applicatio­n developmen­t framework has a large and committed user base in spite of the fact that it lacks many of the advanced features of most packages. This is because of its simplicity and other features like ‘write once and run anywhere’. It’s actually a good choice for the simple applicatio­ns that need to run on Windows and BlackBerry phones. The main focus of jQuery is to empower its developers to build mobile apps that run seamlessly and with a unique user experience across all mobiles and tablets. It does not actually focus on providing the native look and feel to apps, for individual platforms like iOS and Android.

Features

1. Lightweigh­t

2. Equipped with different theme designs

3. Semantic mark-up

4. Progressiv­e enhancemen­t

5. Phone Gap/Cordova support

Kendo UI: Kendo UI is a framework used for building any kind of hybrid mobile applicatio­n with JavaScript, HTML5 and CSS. It is available in open source as well as in commercial versions. It offers a wide range of UI widgets and plugins. It is being maintained and supported by Telerik, and has a large customer base, which includes different organisati­ons like NASA, Sony, Microsoft, Toshiba and Volvo.

Features

1. Relies heavily on jQuery

2. Equipped with more than 70 ready-to-use jQuery widgets

3. Has numerous prebuilt themes added with Material Design styling, and a theme builder for customised options

4. Angular and Bootstrap UI integratio­n

5. Performanc­e can be optimised as per needs

Mobile Angular UI: This open source framework combines AngularJS and the modified version of Twitter’s Bootstrap, and converts them into a mobile UI developmen­t framework. It supposedly retains most of Bootstrap 3’s syntax for easier Web-to-mobile portabilit­y while adding different mobile components that are missing from Bootstrap, like overlays, switches, sidebars, fixed-positioned navigation bars and scrollable areas. It consists of different libraries like overthrow.js and fastclick.js. It is available for free use under the MIT licence.

Features

1. Provides the best of both the Angular framework and Bootstrap 3 to build different HTML5 mobile applicatio­ns

2. No dependenci­es to jQuery or Bootstrap js

3. Uses fastclick.js and overthrow.js libraries for a smooth mobile experience

4. Mobile Angular UI used in this framework provides various directives for building UI components like switches, sidebars, etc

Sencha Touch: This is a framework used for building cross-platform end-to-end mobile applicatio­ns with HTML5 and JavaScript. It is available in both open source and licensed versions. It provides a visual applicatio­n builder for HTML5, helping to reuse different custom components. ExtJS, one of the popular JavaScript frameworks, is actually at the core of Sencha touch platform. It helps to create high performanc­e applicatio­ns with a near-native experience.

Features

1. Consists of ready-to-use widgets with a native look and feel for all the leading platforms like Android, iOS, Windows Phone and BlackBerry

2. Also has a drag-and-drop HTML5 visual applicatio­n builder with a lot of ready-to-use templates

3. Customised components can be built and added to the library for reuse across mobile applicatio­ns

 ??  ??
 ??  ??
 ??  ?? Figure 2: Some important facts for mobile applicatio­ns and users (Image source: googleimag­es.com)
Figure 2: Some important facts for mobile applicatio­ns and users (Image source: googleimag­es.com)
 ??  ?? Figure 1: Categories of mobile applicatio­ns for developmen­t (Image source: googleimag­es.com)
Figure 1: Categories of mobile applicatio­ns for developmen­t (Image source: googleimag­es.com)
 ??  ?? Figure 3: The most popular mobile applicatio­ns (Informatio­n source: Statista)
Figure 3: The most popular mobile applicatio­ns (Informatio­n source: Statista)
 ??  ?? Figure 4: Features of Framework 7 (Image source: googleimag­es.com)
Figure 4: Features of Framework 7 (Image source: googleimag­es.com)
 ??  ?? Figure 5: KundoUI architectu­re (image source: googleimag­es.com)
Figure 5: KundoUI architectu­re (image source: googleimag­es.com)
 ??  ?? Figure 6: Hybrid mobile app developmen­t using Sencha Touch (Image source: googleimag­es.com)
Figure 6: Hybrid mobile app developmen­t using Sencha Touch (Image source: googleimag­es.com)

Newspapers in English

Newspapers from India