Buyer's Handbook: Discover the leading mobile app development platforms Article 2 of 6

adam121 - Fotolia

Compare the top mobile operating systems for developers

Explore the differences between the leading mobile operating systems as well as the ways that they differ from traditional desktop applications.

The launch of the iPhone redrew the smartphone category and quickly propelled fad devices into standard ones. Today's phone market is primarily a mixture of Android and iOS devices.

Smartphone apps dramatically changed how people engage with their professional and personal lives. Apps are the catalyst for converting a phone into a tool that can transform how a business operates, how consumers engage with a product and how supply chain efficiencies can improve. In order to make the right decision, buyers should compare mobile operating systems.

Mobile vs. desktop development

Since 2010, there has been a dramatic surge in the sales of smartphones and, to a lesser degree, tablets, which got their start with the introduction of Apple's iPad. Mobile devices changed the way developers work on and build for computers. Core functionality, such as email messaging, web surfing and calendar management, is now accessible from these devices, which have upended how people connect to the internet.

A rich assortment of features has made it easier to switch tasks to mobile devices. For instance, users now access email, video and social media more frequently on a phone than on a desktop computer. In addition, mobile devices have many hardware features not available on desktop computers, such as front and rear cameras, accelerometers, GPS and 4G LTE for wireless connectivity.

At the same time, development platforms have matured and grown more robust, helping to simplify app development, while making the process more efficient and better integrated with other IT systems.

The different platforms for mobile development

There are two predominate operating systems in today's mobile market: Google's Android and Apple's iOS. According to an April 2019 IDC industry report, Android continues to dominate the worldwide smartphone market, grabbing 85% of the share. That said, iOS generates more revenue than Android, and Apple devices are more popular in the enterprise.

However, IDC also pointed out that smartphone shipments are in decline. The first quarter of 2019 marked the sixth consecutive quarter of decreasing sales, lending to an air of uncertainty about how mobility will evolve going forward. Even so, mobile development remains an important concern in the enterprise, with the focus clearly on Android and iOS. Let's compare the two mobile operating systems.

Google's Android

Android, modeled after Linux , is the world's most popular mobile OS. Its popularity is largely driven by Google's distribution model: Android is an open source project that gives phone manufacturers and cell phone carriers free license to use Android and modify the core OS for their devices. Although most Android instances stick closely to the core, the freedom to modify Android has led to many challenges, in what is now referred to as Android fragmentation.

Even so, Android continues to grow bigger and more powerful with each new version. In August 2018, Google released Android 9.0 Pie, which incorporates artificial intelligence into the platform, making it possible for a device to adapt to user activity.

The official development tool for Android is the Android Studio integrated development environment (IDE), which Google offers for free. Prior to Android Studio, developers primarily used Eclipse, along with Google's Android Development Tools plugin, but Google no longer supports the plugin. Developers can post their apps to Google Play for no cost, although they must pay a one-time registration fee of $25.

Apple's iOS

Both iPhone and iPad devices are powered by iOS, which has its foundation in Darwin, a Unix open source OS that is also available in Apple's macOS. According to Apple, there are now more than 1.4 billion active iOS devices worldwide.

The second release of iOS introduced the concept of applications, which opened up Apple's secure and controlled environment to accommodate a new way of working with mobile devices. At the same time, Apple updated its iOS as a foundation in Darwin, a Unix open source OS that is also used in Apple Xcode IDE to support iOS app development. Xcode is Apple's official development tool and is available for free. The IDE also supports the Swift programming language, which Apple introduced in June 2014 to simplify development. Developers can use Xcode and Swift to build applications for iOS, macOS, watchOS and tvOS.

The Apple Developer Program costs $99 per year and includes the ability to submit apps to the iTunes App Store.

What about the other platforms?

Although Android and iOS dominate the mobile market, a number of alternatives exist, and developers might find themselves building apps for these platforms.

One emerging technology is KaiOS, a web-based mobile OS that's a successor to the now defunct Firefox OS. KaiOS supports such features as 4G LTE, GPS, Wi-Fi and HTML5-based apps. The OS offers a number of standards-based web technologies, including HTML, CSS and JavaScript, with Gecko providing the application runtime.

KaiOS primarily targets lightweight phones and IoT devices that require limited memory. To develop an app for the KaiOS operating system, the company must use a Firefox browser, version 59 or older, with the WebIDE add-in installed. WebIDE users can then connect to the Firefox Developer tools from within the browser. A KaiOS application is essentially a web application available for packaging or hosting. Packaged apps run locally, and hosted apps run on a server.

Another mobile OS that's gaining traction is Tizen, an open source platform based on Linux and supported by the Linux Foundation. Tizen offers developers the power of native customization with the flexibility of HTML5. The OS is available in multiple profiles to support different device types. In this way, companies can customize Tizen to meet the memory, processing and power requirements of specific devices.

Developers can use Tizen Studio for building native and web apps for the Tizen platform. Tizen also provides code snippets, SDKs and a native API reference, along with forums, design guidelines and other documentation.

The challenge when working with platforms such as KaiOS and Tizen is that IT staff often have to learn new technologies, tools and processes, without the benefit of a large developer community to back them up. Even so, these technologies can help fill a niche that Android and iOS might miss. Because of this, companies should compare mobile operating systems when making a buying decision.

Definition of native and hybrid

The rapid adoption of iOS and Android created a problem in the development world: Which operating system do developers build products for? Teams complete typical mobile app development with supported tools such as Xcode for iOS, Android Studio for Android and Visual Studio for both Android and iOS. Developers refer to building mobile platforms for a specific OS, along with using the platform's development tools and languages, as native development.

Mobile development is the hybrid model, which adheres to a different strategy: Build once, run everywhere. Tools such as Apache Cordova (formerly PhoneGap), Xamarin and React Native enable developers to use one language, such as JavaScript for Apache Cordova and React Native or C# for Xamarin, to build a single code base from which an app can deploy to multiple platforms, if necessary.

Pros and cons of native and hybrid

Hybrid apps make extensive use of technologies such as CSS, JavaScript and HTML5, making it easier for developers to quickly build for leading platforms. The learning curve is not too high, and they can have an app running in a matter of hours. Many enterprise, sales and supply chain offerings can finish quickly and effectively with hybrid tools.

The challenge with the hybrid approach comes when the developers need to build complex platforms. Hybrid tools are built to support the lowest common denominator across platforms. If, for instance, they want to build an app that offers the ARKit 2 APIs for iOS, they might be hard pressed to find a hybrid platform that supports this feature, leaving the developers to hack together a workaround.

Enterprise mobile development is often completed with specific tools and frameworks referred to as mobile enterprise application platforms (MEAPs). The goal of a MEAP is to provide cross-platform tools that make it easy to connect with back-office databases and systems. Popular MEAPs include Kony, Mendix and OutSystems. The MEAP is known especially for its drag-and-drop capabilities, which have given rise to the concept of the citizen developer.

Which platform should you develop for?

Determining whether to go with the native or hybrid approach isn't the only consideration when deciding how to build an enterprise mobile app. Other factors to consider when selecting a platform include the following:

  • How do you secure resources and ensure compliance?
  • How do you easily and securely authenticate users?
  • Do you want to use a MEAP product for cross-platform development?
  • Will you be creating tools for tablets and phones?
  • How do you want to connect with your back-office systems?

Mobility has become a foregone conclusion in the enterprise. The challenge for today's IT staff is to determine the most efficient way to develop, deploy and manage their business apps, taking into account the entire application lifecycle. Effective mobile applications can help to increase productivity and improve the user experience while ensuring that security and privacy cannot be compromised.

Robert Sheldon contributed to this report.

Next Steps

Businesses are looking more inward to see what apps to develop next

Learn more about Mobile App Development Platforms (MADPs) for creating in-house mobile apps for the enterprise

Android, iOS development are the focus of this talk with the Skimble CEO

Dig Deeper on Software testing tools and techniques

Cloud Computing
App Architecture