For the past few years, mobile network operators and manufacturers manage and control the mobile application development industry. The arrival of new platforms and mobile phone models changed the application development process. Development of mobile applications has generated more interest on both independent and big players in the industry, freelance developers and start-ups. The constant improvement of hardware related to mobile computing e.g. larger wireless network bandwidth better computing power clearly enhanced an improved the capabilities of mobile devices thus the challenges in the development process is already expected.
According to a Deloitte study (via Time), Americans across all age groups, on average, check their phones 46 times per day. I have three screens of icons, so let’s say I see the side screens every third time I am in the apps. Even for a company whose app got relegated to my side screens, I am viewing their app icon nearly 5,600 times a year! That kind of advertising is priceless, so make sure your creative team comes up with a unique, eye-catching app icon – Forbes.
Major software application development companies, such as Google and Apple, are constantly disturbing the fairly safe and established actors of the mobile application development business. These newcomers, together with the big players in the industry, have caused significant structural and multi-cultural changes in the mobile application development field by enforcing and imposing their own rules in the future of mobile application development industry. The implications of these constant changes do not only concern the mobile phone manufacturers and mobile network operators. The changed in the development structure also brings both additional opportunities and constraints for current and new mobile application developers. Because of this, there’s been a demanding need for developers to assess their options while making sure that they are making the most of the advantages of these current trends.
Software development kit (SDK) is the center of every development platform. It enables third party developers to deliver mobile applications running on a specific platform. Software development kits usually include libraries, handset emulators and debuggers.
Existing popular platforms such as Android and IOS, have taken different approaches when it comes to sharing their SDK with application developers. Some have chosen to restrict access as much as possible, whereas others have chosen to disclose the entire source code of their SDK and OS. SDK approaches can be presented into two main models:
The Cathedral Model.Popular application development players in the industry, mostly representing roughly half of the customers, chose the proprietary path. Good examples are Apple, Microsoft and RIM. Linux, Google and Nokia represents the other half which chose to use open source technology in their development process.
Proprietary platforms all keep the source code of their SDK and OS hidden from any outsider. The only difference is their level of control over what developers can install on the platform. Apple for example, has an almost unlimited control over third party applications since all applications pass through an approval before they can be release in the platform. RIM and Microsoft, on the other hand, are more lenient. Advantages of closed technology for the platform provider include being to sell and control your platform, thus increasing the value in return.
The Bazaar Model. In contrast, open source technology platforms grant developers full access to all or parts of the source code of their OS and SDKs. Among the three open source platforms, Linux seems to offer the most freedom to its developers, followed by Google who, for example, denies access to Bluetooth and Instant Messaging APIs for security reasons in their current SDK release. Benefits of open source technology platforms include being able to reduce both development and maintenance costs by taking advantage of the pool of open source developers. Reduced development costs can lead up to reduced platform price and therefore possibly increased number of consumers, without compromising the quality of the application.
Android appears to be the best selling mobile operating system and it is developed by no other than Google itself. According to Gartner (2016), Android achieved 84% of global share in terms of selling during the first quarter of 2016. At the core of the Android system is Linux other libraries and application frameworks. The first version of the operating system Android 1.0 was release in 2008. Since then, Google regularly releases an upgraded version of the system to keep up with the trends and ever changing mobile platform. According to Statista (2016), Google Play Store has over 2 million applications available to download everyday and is continuously growing.
The Android operating system is made of different layers – Linux Kernel sitting at the lowest layer, and Dalvik Virtual Machine on top together with other system libraries. Higher layers contain application frameworks and the user application layers.
Android applications are develop using Android Software Development Kit (SDK) with Java being its default programming language for application development. C and C++ programmers also can build android applications using a tool called Native Development Kit (NDK1). Programmers write Java source codes for an application, then the source codes are converted or compiled to Java Bytecodes, then the Bytecodes are cross-compiled to a Dex File afterwards. The APK Builder is then use to package the finished Dex file, Resource file and other files into one whole APK file. This APK file is the application file installed in mobile phones.
IOS is develop and solely used by Apple Inc. in its mobile devices. Originally developed in 2007, for a smartphone, Apple then decided to customize its existing Mac Operating System for the company’s flagship mobile phones.
Using the native application development model, it appeared to be convenient for Mac application developers to build mobile-friendly application for Apple devices. Initially the operating system was named as iPhone OS, but Apple renamed it as iOS after the release of version 4. The iOS Kernel is called XNU which was developed by Apple in 2003. XNU is part of Darwin which is an open-source Unix based operating system also developed by Apple last 2000. By June 2016, the number of available applications in the Apple’s App Store has reached to 2 million but its still way lesser than Android applications (Statista 2016).
The underlying IOS architecture can be classified into four different layers. The Core Operating System layer sits at the bottom of the architecture while the core services are defined at the second layer from the bottom. There is also Media Services layer that contains audio and video frameworks with graphics that sits at the third layer next to the Core Services. Cocoa Touch which contains the key technologies for building applications is at the topmost layer of the iOS architecture.
The required programming languages for iOS development are Swift and Objective-c. It is also possible to develop iOS applications with C and C++. Once the mobile application development is completed, the application goes through an approval process for the iOS system. Apple released its initial Software Development Kit (SDK) for iOS in 2008. By the release of Xcode 3.1, it became the default development platform for iOS SDK. Xcode could be used free of charge but test deployment to a device or publishing the application to the Apple App Store requires an annual subscription cost. Once application is published in the App Store, Apple receives thirty percent of the sales revenue.
Windows 10 Mobile architecture is also divided into different layers. The Kernel is obtained from the Windows Operating System and it has been modified to work both for computers and mobile devices.
This layer manages networking, security, storage, application frameworks and core hardware communications. The layer above is the programming and service system framework layer. This layer provides the application developers all the required frameworks and libraries to build the mobile applications. Top most layer contains the system applications that come with operating system and user applications that are downloaded and installed by the user (Windows 2015).
Over the past few years, we have observed that the relatively stable market of mobile application development. It has evolved in three distinct directions. First, there seems to be a strong trend towards portal centralization. Second, there is an increased number of actors providing open source technology. Third, platforms are moving towards a higher level of integration. Whichever it is, the trend for mobile application development is expected to be continuously competitive for years to come.