1. Introduction to Mobile Application Development Ecosystems
Objectives of this chapter:
The evolution of mobile application development
Different ecosystems: Apple, Google, Microsoft
Problems with ecosystem-based applications
Hybrid mobile applications
Front-end and back-end development
Testing of mobile applications
Today mobile device users prefer to use applications installed on their smartphones. They use installed applications (apps) for carrying out routine activities like booking cabs, buying movie tickets, and watching videos on YouTube.
This trend is confirmed by Gartner, which has this to say: Enterprises are finding that they need to support multiple platforms, especially as the BYOD [bring your own device] trend gains momentum. (See www.gartner.com/newsroom/id/2324917 .)
In addition, the app-only trend, set by e-commerce companies like Flipkart and Myntra indirectly supports this BYOD trend. App-only means that an application, which used to be available through a desktop web browser as well as a mobile device, stops operation of the web application, forcing the customer to access the application through a mobile app only.
The market share of mobile devices is divided mainly into Android, iOS, and Windows Phone. Because of the differences in platforms/operating systems, creating an installable mobile application that targets multiple device platforms requires too much of effort and expertise. For example, you have to write code in Java for Android, in Objective C for iOS, and in .NET for the Windows Phone. Shortcomings of this development approach are as follows:
This can be overcome by using hybrid mobile applications, a solution based on HTML 5, JQuery, and CSS 3. These hybrid applications are created once, but after packaging can be deployed on multiple mobile devices such as Android, iOS, and Windows Phone.
This kind of application development has an edge over native application development. A Gartner survey has predicted that by 2016, more than 50 percent of mobile apps deployed will be hybrid.
Key benefits of this development approach are as follows:
Development of mobile-based applications depends on many factors, including the features available on the mobile device itself. One of the key parameters to consider in development is the OS platform and available screen sizes on devices.
History of Mobile Application Development
How did mobile application development (ecosystems) evolve? Lets briefly review the timeline. Figure shows how a mobile application development process evolved over time.
Figure 1-1.
The evolution of mobile application development
In 1983 came the Motorola DynaTAC 8000X cell phonethe first commercial cell phone. People called it a brick because of its 2.5 pound weight! It was sold at the price of $3,995! This phone could do little more than calling.
The first innovations came from Nokia and other manufacturers who took this technology to another level by adding more functionality, including games such as Snake and Ping Pong. In the 1980s and 90s, mobile users had few offerings to choose from device vendors. Mobile applications were limited to those preinstalled by vendors. However, some vendors did offer applications using the Wireless Application Protocol (WAP). These applications were available from the phone manufacturers.
In November 1993, IBM launched Simon It had preinstalled applications such as a calendar, a clock, a calculator, a notepad, and email. It also had a stylus!
In 2002, Research In Motion Limited (RIM), now BlackBerry Limited, released its first device with integrated phone functionality. The product line eventually evolved into the first mass-market smartphone optimized for wireless e-mail. Mobile device users still had to wait until 2007 for a revolutionary change!
In 2007, Apple released the first iPhone, followed by the App Store launch. Users now had lot of choices for installing applications easily. A few months later, this was followed by the launch of the Android Market by Google, and the first Android-based smartphone from HTC called HTC Dream.
Apple offered its first iPad in 2010, giving users the option to use apps from their App Store. In the same year, Samsung launched a tablet named Galaxy based on the Android OS.
Understanding Ecosystems
Before proceeding, lets try to understand the ecosystems of mobile application development. To make things simple, this section introduces the three giant vendors/manufacturers in this space: Apple, Google, and Microsoft.
When a client targets a particular audience for a mobile application, how do you decide which vendor or platform to go with? This depends on multiple factors, ranging from region, location, language, domain, features required, delivery time, development team, and many more.
The Apple Ecosystem
Imagine that a client chooses a range of Apple devices for deploying an application. The Apple platform is a big ecosystem. As you may know, the iPhone, iPad, and MacBook all fall under the Apple ecosystem. These devices benefit from being in the same ecosystem, as a single store distributes iOS-based applications. Apple verifies applications and grants permission for sale based on its guidelines for acceptance.
Apple also promotes development of applications targeting the Apple ecosystem, by offering many common APIs and a common approval process. Development is made easy by Objective C and the Xcode IDE, along with many APIs to natively access (meaning at the device level) features in the app such as a camera and location.
If the application is a paid one, the revenue-sharing equation is commonly at a 30:70 ratio; Apple takes 30% of the revenue, and the application owner takes 70%. Even if the application cost includes charges paid to a service vendor such as SMS gateways, Apple still charges 30% of the total. But in any case, the Apple platform is one way for application developers to earn good revenue.
The Google Ecosystem
Lets say the same client needs to target the Google ecosystem. Do we need changes in the application? Can we port the application as it is? Are certification guidelines for Google the same as for Apple? Is the revenue-sharing equation the same?
The short answer is no. The key thing to understand is that the Google ecosystem is different. You will have to consider Android-based devices. The Android OS is an open platform to manufacturers, so the market has many device manufactures compared to Apple. Because Android is allowed to customize, this only boosts the variety of available Android devices.
Because of the multiple device manufacturers, ultimately many devices vary in size, resolution, and available features, so this ecosystem has many challenges compared to Apple. For example, if you develop an application for a Samsung Galaxy Android-based phone, changes may be required if the application is ported to a Google Nexus device, because of resolution differences.