A review on mobile operating systems and application development platforms

The previous existing mobile technologies were only limited to voice and short messages, organized between several network operators and service providers. However, recent advancements in technologies, introduction and development of the smartphones added many features such: high speed processors, huge memory, multitasking, screens with large-resolution, utile communication hardware, and so on. Mobile devices were evolving into general – purpose computers, which resulted into development of various technological platforms, operating systems and platforms for development of the applications. All these result in occurrence of various competitive offers on the market. The above mentioned features, processing speed and applications available on the mobile devices are affected by underlying operating systems. In this paper, there will be discussed the mobile operating systems and the application development platforms.


Introduction
The operating systems for mobile devices, which are among the most common consumer devices, provide the different interfaces of communication between the software components at the application layer and hardware devices, while their application development platforms provide building, test and deploying mobile applications. Today, these devices provide us with huge number of services, such: voice calls, messaging, camera, internet browsers, music and video players, games and many others [1] [2]. However, each mobile phone needs to include some kind of mobile operating system in order to execute these services. Actually, they are based on various platforms and operating systems to satisfy different user segments. It resulted in growing number of mobile operating systems and application development platforms. Mobile operating systems manage the mobile devices' hardware and software, similar to computer operating systems [3]. Some operating systems cover all software programs and others include only kernel and middleware layers and rely on the additional software platforms. The previous mobile operating systems were simple since the mobile phone features which they supported were limited. However, as already mentioned, smart phones included more features and they are running a huge range of software. Therefore, together with the mobile phone evolution, mobile operating systems also need to evolve in order to support all mobile phone functions [4]. Even more, some smart phones allow external developers to develop programs for these devices. The software, which is running on mobile devices, accesses platform resources through a set of application programming interfaces -APIs. The market offers a huge variety of both, mobile operating systems and application development platforms [5]. In this paper, we will summarize and compare Android and iOS. Also, Windows Phone, BlackBerry OS, webOS and Symbian OS will be discussed. Furthermore, we will discuss about the three user toolkits for application development: Qt, Java Platform Micro Edition and Sliverlight. they are discussing different technologies used with different mobiles existing on the market. Their conclusion is that with advancement in mobile technology, different operating systems were designed to support these technologies. Bala et al [7] discuss the different mobile operating systems in details. The review of the most used mobile operating systems is represented in their article 'A Study on Smartphone based Operating System'. Sapuppo et al [3], according to them, social networking is supported by the introduction and development of smart phones. The market is dominated by various technological platforms, including many OS and platforms for application development. The idea shown in their article 'Mobile Platforms' is to give an analysis of those technologies and platforms and show their advantages and disadvantages.

Mobile operating systems
Mobile OS is the software which provides an environment in which the mobile device user executed application programs in convenient and efficient manner [8]. During the time, mobile operating system design was evolving from the PC-based operating systems toward an embedded OS and to the nowadays smartphone OS. Also, the mobile operating system architecture varied form more complex to the less complex. The changes were affected by the advancements in technology, development of new services, Internet and so on. In the Fig. 1 is shown that the usage model of previous mobile phones were limited. From the hardware technology advancement view, the microprocessors have been reducing over the time and features such as sensors -touch screens were introduced. The software advancements resulted in more user friendly environments, options, applications. Simultaneously with the Internet development, people were more and more involved in information searching, social communication, application using. All these advancements, consequently, leaded forward to various competing mobile operating systems on the market [9]. Customers are very often confused during mobile device purchase, which mobile operating system is best suitable for them. In this paper, the six mentioned mobile operating systems are discussed, so it can help endusers during purchase too. The technologies like Nokia, Google, Symbian, Microsoft, Apple, Black Berry are playing the major role on the market [10]. The operating systems differ on the many parameters: user interfaces, processors, memory utilization, security, power management, software and hardware components and application development platform. Among the users, the main focus is given to the operating system features. Some mobile operating systems are popular because of their uniqueness, while the others are wanted because they are freely available or the best at features and quality.

iOS
iOS is operating system which is launched in 2017 by company Apple Inc and it is written in C and Swift [4]. It is famous because of the user and developer friendly processes and also among other features the personal assistant Siri which is integrated into the devices is the unique intelligent assistent since 2010 [12]. The main hardware platform used is ARM architecture and kernel is the XNU kernel of Darwin. Every application of iOS is actually made of one/more threads. Each application's start is with one thread and that thread has an obligation of running the app's main function but the app's might have a additional threads for executing very specific functions. At the moment when the app create new thread, that new thread becomes an entity which is independent in process. Every thread has its stack for execution and its kernel schedules which separate its execution time. Threads in the same process space might cooperate with each other and with other processes. The threads, which are in the same application are sharing one virtual memory space. Every thread needs memory space in both the kernel and the program memory space. Therefore, the scheduling is the key structure for managing threads. Every thread has its stack space and also per-thread data which are allocated in program's memory. One thread could be made using various options as NSThread, POSIX Threads, NSObjec to spawn a thread [13]. When the thread is formed, various thread environments should be configured, so these are stack space, setting the detached thread state, thread priority and thread-local storage. iOS operating system does not have garbage collection and developer has also a task to clean all the variables after usage if he don't want to initiate memory leak. The programmer should be careful about the number of ownership methods on an object to be the same as the number of loss-of ownership methods untill the program has finished running. iOS devices don't have security software [9], well it is because third-party applications are not allowed to be downloaded on the iOS devices in general, but Apple has special agreement and special security checks which are however giving the chance to some owners of third-party apps to join the procedure and to be involved into the Apple application store. Also iOS devices, iPhone, iPad etc. have special locking system which is requiring a password every time a user want to using the devices after its standby mode. Security applications are placed in the Core Services layer and are based on services in the Core OS (kernel) layer [14].

Android
One of the most widely used mobile OS these days is ANDROID. It is such an operating system for low powered devices that run on battery and are full of hardware like Global Positioning System (GPS) receivers, cameras, light and orientation sensors, Wi-Fi and UMTS (3G telephony) connectivity and a touch screen. Like all operating systems, Android enables applications to make use of the hardware features through abstraction and provide a defined environment for applications.

Windows phone
Windows Telephone is an exclusive cell phone working framework created by Microsoft. It is the inheritor to Windows Versatile, despite the fact that it is contrary with the prior stage [16]. It was propelled in 2010 under the name Windows Telephone 7 [9]. Different equipment makers including HTC, Samsung, LG, and Nokia are creating Windows Telephone gadgets. In February 2011, Nokia and Microsoft reported that Windows Telephone 7 would be the essential OS for all future Nokia cell phones. The second era Windows Telephone 8 was discharged in October 2012 [3]. When it comes to security, Windows OS supports Security features such as sandboxing, buffer overflow prevention and not having a file system [17]. It is important to mention that 18% of total connected devices have Windows OS. The Windows Telephone piece handles low-level gadget driver access and in addition essential security, systems administration, and capacity. Three libraries [18]: an Application Demonstrate for application the board, a UI display for user interface the executives, and a Cloud Joining module for web look by means of Bing, area administrations, push warnings, etc sit over the bit. The bit itself is a restrictive Windows OS plan for implanted gadgets that joins Windows Inserted CE 6.0 R3 and Windows Installed Minimized 77. Windows Telephone 8 supplanted the Windows CE portion with one dependent on Windows NT. This is implied partially to imitate the Windows 8 work area OS, considering less demanding porting of uses between the two working frameworks. Windows is an effectively settled OS in work areas and PCs. With the advancement of cell phones, Microsoft discharged its Windows OS for cell phones to contend with the counterparts Android and IOS however fairly neglected to draw in clients in the market [19]. There exist a few issues where windows need and couldn't make up for lost time the prerequisites of the clients. Following issues are recorded beneath: The chicken and egg problem where limited key apps attract less number of users and developers are hardly interested in developing with limited or no users.
• Restricted number of leads prior it was Nokia and now HTC and Microsoft however needed in delivering conspicuous leads.
• Android and IOS have set up their very own specialty in the market though Windows still battles to have a differentiator in the market.
• Although windows telephones are doing great at low end in the market yet it has progressively turned out to be low end stage, which will additionally restrain its designer request.
• The Metro UI of windows is very exhausting a direct result of its tiles like home screen and text styles are not eye infectious. This point is made in examination with android as indicated by inputs of innovation nerds and dynamic versatile clients.
Windows 8.1 thought of further headways and advancements that didn't convey much piece of the overall industry to Microsoft however with their new form of Windows 10, it is accepted to be the most incredible variant of Windows telephone till date, will take this OS to another dimension. There is a plausibility of Windows 10 to occupy the consideration of clients and engineers for applications in future with its development and inventive advancements. Yet at the same time, Android leads in this rodent race dominatingly until further notice in light of its current client base and absolutely better choice for a normal client [19].

BlackBerry OS history and policies
Blackberry operating systems are developed for Blackberry line of mobile devices by Canadian company Research in Motion. First idea of Blackberry mobile devices is to be used in business purposes. Also, Blackberry OS support multitasking, as well as handhelds, such as trackwheels, trackball, after for a while, trackpad and touchscreen. Recent version of Blackberry OS is v10 [22]. When we talk about third parties that takes it's role in Blackberry software development, they must have certificate approved and given by RIM [3].
Otherwise, third parties are not allowed to take a part in Blackberry Operating system. Blackberry OS is one of the safest operating systems. Why? It's because they pay attention on security much more comparing to other features. They provide a book with about 400 security rules that need to be fulfilled. Some of those rules are listed below. BlackBerry has over 400 policies to provide secure usage of its mobile devices, they are divided into groups and they are listed below [14]: • Group IT Policies, provide data security and provides easier creation and modification, as well as, easier and safer access to the organization.
• Default IT Policy, uses customised base IT policy set to ensure a minimum level of security the BlackBerry OS. Administrator can provide policies of a user or a group. To meet the security needs of the organisation by using the BackBerry Enterprise Server.
• Over the Air Enforcement, all settings are implemented and synchronized without asking the consumers to accept it or to change something on its device.
• Malware Control, server comes with 19 application policies that allows administrator to limit resources and user data available on the applications.
• Comprehensive Control over the Entire BlackBerry Enterprise Solution, administrator ability to force password use, its complexity and timeouts.

webOS
WebOS is a fully open source, multitasking OS based on Linux kernel [3]. Firstly, it was developed by Palm -Palm Pre [19]. In the webOs, the applications are composed of different scenes, shown in the cards. Those applications are presented one by one and can be scrolled horizontally [1]. They are programmed in the main web technologies HTML, CSS and Javascript and they use Mojo. Also, webOS applications look modern and professional but, their drawback is slow launch. The user interface provides touch and tap, swipe, pinch options (Mobile_platf). The webOS's Core's is placed on the Linux 2.6 kernel, together with device drivers, document framework, network communication and Bluetooth. Above is UI System Manager, which is responsible for window, user interface (UI) and application. The Mojo JavaScript application framework supports APIs and the webOS Services Manager provides access to area, phone, camera et cetera [19].

Symbian
Symbian was a leading smart phone operating system which release was in 1997 and it is written in C++. Nowadays it is not in usage and also it went open source. Mainly the company Nokia used Symbian for its mobile devices. Symbian was very popular in the past and in 2006 it owned over 60% of the smartphone market and had no major competitor [23]. One of the problems, which are connected to the Symbian operating system, is that Symbian was very vulnerable so it was an object for many viruses. A lot of malwares like trojans significantly influenced the Symbian devices and they showed some unpleasant stuff like the fact that system apps could be overwritten and also the fact that the operating system is not stable if it gets files which are not Symbian made [24]. Symbian was a pioneer in many things also and it was the first mobile platform which had a built-in WebKit based browser. This operating system allowed a very strong localization because the aim was to increase the popularity of Symbian across the globe. Its real-time kernel has microkernel architecture which has only basic functionalities which was named as nanokernel, because of the need for extension for kernel if it intend to implement any other kind of abstractions [25]. Also the Symbian was not very developer-friendly operating system because it had hard-to-learn practices and huge amount of challenges regarding its programming environment.

Application development platforms
As a major aspect of the building procedure, mobile UI design is likewise a fundamental in the mobile applications development. Mobile UI cares about the next: constraints and contexts, screen, input and portability as well as design layouts. The user is frequently the focal point of relationship with their devices, and the interface involves parts of both, hardware as well as software [26]. Users can control a system through input, and the system demonstrates the impacts of the users' control through output. Mobile user interface design requirements incorporate limited attention and form factors. For example, a cell phone's screen size is adapted for a user's hand(s) [8]. Mobile user interface signal prompts from the user action, such location and planning which can be appeared from the side of user interaction inside a mobile application. In general, mobile user interface design's objective is not without a reason, a user-friendly interface.The UI of mobile applications should: think about clients' attention, limit keystrokes, and be task-oriented with needed functions. This part of the paper audits user interface toolkits usually used to build user applications for the mobile platforms explained in the section about mobile operating systems.

Qt
Qt is an open-source cross-stage UI toolbox. It is written in C++ programming language and provides expansion of C++ sentence structure in type of signs and openings (utilized for occasion age and utilization by the class dropping from Qt root class and QObject) and furthermore meta-object show, that grants questioning articles for the functions, flags and spaces which bolster.  [1]. Qt Portability library is additionally offered, which gives simple access to the versatility highlights, for example, geolocation (GPS), accelerometer estimations, battery state and gadget framework data. Qt has an advantage of being aggregated specifically to the operating systems and thus it need not bother with any 'deciphering layer' such is Java Virtual Machine. One more critical factor is the colossal speculation and spotlight from Nokia on Qt that is a substantial contention for seeing it to be a legitimate contender with other programming improvement devices [27].

Java platform micro edition
Java Platform Micro Edition is a Java platform developed embedded systems like mobile device [1]. In the past, it was called Java 2 Platform, Micro Edition -J2PM. This platform represents the smallest addition to the Java family. It was used for conventional desktop applications building, but now it is intended for distributed application developmentserver side applications and web applications. The Java Micro Edition architecture determines configurations, profiles and packages for the whole Java runtime encirclement. Every combination is adjusted for the process power, memory and I/O devices. There are two configurations in Java ME: Connected Limited Device configuration (CLDC) and Connected Device Configuration (CDC) [28]. CLDC is developed for interchangeable network connection devices like mobile phones, PDAs and others. It provides a set of Java libraries and JVM features. The configuration is designed for 16-bit or 32-bit CPUs and devices with the memory which is available for the Java platform [29]. CDC is intended for the devices with bigger memory space, fast processors and larger bandwidth. Those devices are TV set-top, in-vehicle telematics and high-end PDA. It covers a complete implemented JVM, and greater set of Java SE platform in comparison with CLDC. Therefore, most CDL devices have 32-bit CPU and minimum 2 MB memory.

Silverlight
Silverlight is a mobile application development platform for writing and executing Internet applications. It is among platforms for Windows mobile devices. However, web sites that use tis platform cannot be executed on the Windows mobile devices of Internet Explorer. This operating system offers a graphics system, which is alike to Windows Presentation Foundation and merge multimedia, graphics into single-run time system. UIs are declared in Extensible Application Markup Language and programmed with some of the .NET framework [30].

Conclusion
The aim of the research paper was to show core concepts of major mobile OS and also to preview the comparisons between them as well as including and reviewing user interface toolkits from technological developers' standpoints. The fact is that Symbian was the dominating operating system almost 10 years ago; its vulnerabilities led transition to Android, iOS, Blackberry OS & Windows phone. Since the Android can execute on all mobile phones, it is now the most used OS in the world. Java ME is currently leading environment for applications running on mobile devices, but Qt is getting more focus as days pass because of the fact that it is does not have layers of complexity.