Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

Mobile operating systems and apps development strategies

Serena Pastore INAF – Astronomical observatory of Padova Padova, Italy [email protected]

Abstract— Apps are the new form of that started for licenses both payment and free. Given the presence of a single using on mobile devices are becoming a new general model for container, apps are categorized by scopes (entertainment, distributing application software based on custom kind of e- educational, social) and the kind of mobile platforms [4] (iOS, commerce stores. The mobile platform environment shows a Android, Windows, Blackberry OS). Regardless the scope and plethora of systems and the apps regardless of the type of the underlying operating systems, mobile apps have specific category belong (i.e., social, educational, games) are distinguished features since targeted to computer systems that show limited from the design point of view in native, web or hybrid apps. The capacities, are equipped with some type of Internet connection paper analyzes mobile operating systems from a software and could show specific hardware as sensors, camera, Global developer perspective in order to propose actual and future Positioning System (GPS) receivers. Usually mobile devices, platforms where to deploy apps. The work is part of a research even if different as regards the scope and functionalities (e.g., aimed at designing and developing apps for science outreach and education. The choice of mobile platforms influence the tools tablets can be seen as processing devices while ’ needed to develop apps since different platforms may need cross- main is telephony), offer limited computing and storage platforms development tools. features, small screen size, input device with touch and without the usual pointing devices and the integration with Keywords— mobile apps, web and social app, mobile operating sensor devices. A plethora of mobile operating systems [4] has systems, cross-platform tools, apps stores been developed for managing the different mobile hardware for the two main computer systems categories (tablets and smartphones), most of them tied to mobile devices I. Introduction manufactures (-based systems such as OS or Since the explosive growth in adoption [1], Blackberry-based systems). However mobile platform the specific application software targeted to mobile devices providers cover software companies or organizations such as known as apps are gaining popularity. In specific we are the case of Android OS, or the new proposals referring to most used mobile devices belonging to the tablets for operating systems (e.g., OS or OS, Ubuntu and smartphones categories. Mobile has become the primary mobile) that developed mobile platforms suitable for different entry point for all types of users, who are using smaller device categories of hardware. The paper analyzes mobile platforms yet want to be able to do the same or more as they do on the from a software developer perspective examining the various desktop system, since Internet connection or mobile Internet existing and development platforms, the type of apps that [2] from such devices is more efficient thanks to wireless data could be developed for such environments and the tools transmissions both through wireless networks and cellular available for such aim. In fact the presence of several mobile networks. Such networks allow higher band rate and apps platforms, even if the actual market reduces the number to two could contain complex multimedia content as well as audio systems (iOS and Android OS) is characterized by numerous and video content also because mobile devices are more frameworks (i.e., Windows-based, Blackberry OS, OS). similar to computer systems with enhanced computing Developing an app for a single system excludes, although with facilities. However most apps take advantage of Internet different percentages, the number of potential users. A connection and use the web platform as an environment for software developer needs to understand to what mobile apps execution. When using an app by means of a support devices it is worthwhile to develop an app. Moreover if the distributed computing platforms they are known as web apps choice regards more than one category, the developer should [3]. A primary categorization of apps that lays on technologies consider the design of a native or a web apps meaning the use involved in their development distinguishes apps in web, of mobile platform developer software rather than web native and hybrid meaning that they use web technologies, the technologies. Since the presence of mobile frameworks mobile software programming platforms on which the mobile helping the cross-platform development, advantages and operating systems is based or specific cross platforms tools disadvantages of these software should be examined. This is a that are able to mediate on these two approaches. The research carried out in order to understand what mobile distribution of mobile software passes through the “” platforms and tools are to be taken by considering actual and a custom kind of e-commerce site where a user could find the future platforms and choices to make in offering educational software he/she needs distributed with different types of and outreach app. Our background is a research institute involved in Astrophysics and this paper describes the study

ISSN: 2769-2507 38 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

made to choose a platform where to develop education and executed in devices the use of which is for a personal use outreach Astronomy apps. The remainder of this paper is rather that professional. organized as follows: Section 2 gives an overview of apps categories according users’ behavior recent statistics from several market organizations. Section 3 describes the several mobile operating systems. Section 4 presents the approaches of using cross-platforms tools in app development. Conclusion and future work are given in the final section.

II. Apps features: categories, types and development Apps are a kind of software programs that perform specific tasks for the mobile users. They could run in a handheld device even if the execution could refer to the web platforms. Initially most famous apps were born in the context of social network as an easy way to access to social tools like Facebook Fig. 1: Mobile activities (comScore Source) or Twitter from mobile devices, but are becoming a kind of All the apps should consider that mobile devices have software belonging to several categories characterized by a some limitations as regards processing power, memory and graphical element or widget that could be easily started with a storage compared to that cannot be touch. These features allow a user to use the application forgotten or ignored otherwise apps perform badly. Moreover software in the same way despite the mobile platforms he/she the specific presence of sensors (e.g., the GPS receiver and the uses. Most apps that go beyond passive consumption are still camera) could be exploited to develop apps that combine for mere companions to their desktop counterpart. Also Facebook example the recognition of location with the specific interests implements a mobile interface in the signup facility. of a user. An example of a specific type of apps that combines Personalization, context and proactive suggestions are tools to these two aspects are the so-called augmented reality [5] app. reduce the number of steps required by a user to accomplish a Such app takes advantage of sensors in mobile devices to task on mobile. Apps categorizations could be done according enrich the real world seen through the devices with the digital to the goal or the technologies used for development. world and thus what can be derived from a user with the An apps should be designed to solve a real problem and not as application software that uses. Augmented reality is a term a simple add-ons. Considering the fragmented landscape, that describes the enhancement of real-world objects or views probably a developer should focuses on major player in the with computer generated actions. It is a technology that market considering that only installed apps get used. A combines virtual reality with computer graphics. An technical approach is to consider together with the need to augmented reality app can contain various functions, be they build quick prototype that could offer a mobile-optimized for interaction or display. There are different kinds of apps also in this context [6] (i.e., those called augmented browser experience. Apps should be simple, with a clear navigation, that consist in using a rich browser able to display information and when there is the need of Internet connection, the user about a real object). These apps seem to be very interesting in should be advised since a lot of users use Wi-Fi connections. a context of educational or outreach apps. We could in fact The apps should be directed without about screen, load in describe a specific real object (i.e., a telescope or an small chunks and only what is needed. instrument both ancient that modern) by mean of a code (bar A. APPS CATEGORIES code or similar) on the base of the object. The app developed could show a picture of that object with a fully interactive By considering the goal of an app, next to a classification description. This could be extended to show a map according market categories (e.g.., business, tools, education), highlighting similar objects allowing to follow the map to their we can see terms such as social apps, smart apps, and so on locations. Such app displays lots of data, moves it continually that could identify the role of an apps. The new class of apps around the screen, and resizes components, resulting in using which embody the definition of “smart” has the meaning that the device’s processing power to the maximum. It requires a the apps could be personalized, contextual and proactive. lot of time and effort in coding to minimize the amount of Smart apps don’t all have to be virtual assistant of personal processing required. However it allows having a custom user productivity apps. Fig. 1 shows a more general view on experience. These types of apps requires a specific type of mobile activities, considering the phones category, made by development that depends both on the mobile platform of Internet users in the world. We can seen how users use the reference and on the types of apps. mobile device when connected to the Internet for a lot of activities that range from accessing news, to use email or navigating on the web. The role of apps that not fall between B. APPS Types: native, web and hybrid these major activities must be able to attract users. Apps Apps are categorized in native, web apps and hybrid. The should have such features of customization for users since advantaged of the hybrid architecture, which combines the portability of web apps that means apps developed with web

ISSN: 2769-2507 39 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

technologies such as those related to the HTML5 framework [7] with a native container that facilitates access to native III. The ecosystem of mobile device features, will appeal to many developers. The need of context awareness in mobile apps has increased the capabilities of mobile devices, causing developers to consider The mobile environment is a fragmented landscape. both hybrid and native architectures. For applications to (OS) are composed by software leverage location information, notification systems, mapping modules that should be customized in order to manage mobile capabilities and even on-device hardware such as the camera, devices features. Different kind of devices could be some forecasts from research firm such as Gartner [8] say that categorized as mobile regardless their primary functionalities: by 2016, more than 50 percent of mobile apps deployed will tablet, laptop, , , game portable be hybrid. Native apps offer greater performance, but the need console, e-book readers and so on. We could define a mobile of multiple versions of the app to serve the users because device as a system that should be hand portable and usable in different versions must be made for each type of device or mobility situations “everywhere, anywhere and anytime”. mobile platform, drives developers to consider the hybrid Usually mobile devices are equipped with reduced processing approach. HTML5 seems to provide interesting capabilities capabilities (e.g. equipped with ARM Cortex CPU), fewer such as offline apps execution and animation-rich tools that storage capabilities even if some of them could be externally allow a web app a good user experience, especially for some expanded, a small screen size, touch input device and no categories of apps.Given the current proliferation of mobile keyboard or other pointing devices. Moreover they are devices, an app developer should create mobile roadmaps and equipped with added functionalities such as sensors strategies for the content. Table I summarizes the main (especially in the smartphone category) or other features such features required by an app and the different approaches. It as cameras, GPS receivers. They offer a network connectivity shows how the approach chose depends on the type and the that according the main function of the device could allow aim of app. Internet connectivity by using a Wi-Fi adapter or a phone card.

TABLE I. COMPARISON BETWEEN DIFFERENT APP DEVELOPMENT APPROACHES

Apps types and Features Native Hybrid Internet access Not required required required

Performance v x x

Hardware access v x x

OS access v X x Hw and platform x V X dependent Must be Local or store Installation URL link installed installation Distribution App store Not required Not required Fig 2: Mobile categories devices

Updated reinstallation simple reinstall Fig. 2 shows a categorization of mobile devices according Since the plethora of mobile platforms, even if the market the main role: general purpose devices, dedicated devices and seems to reduce mobile operating systems to few platforms phone devices. Even if there are these different categories of (Android and iOS, Blackberry OS or Windows Phone), there devices, actually mobile devices are identified with two main is the necessity to find a way to build content or functionality types: tablets and smartphones that are the users’ most used once and deploy it on a variety of different mobile platforms. devices both for Internet, personal and work activities. Each of There are several solutions that help the cross-platform these devices is equipped with operating systems that share development that vary from a more streamlined development main functionalities with a computer operating systems but process to higher adoption rates to lower costs.However, it is should be optimized to the specific hardware of mobile necessary to decide when is the right time to use cross- devices. In this way they are composed by a kernel, a runtime platform solution, since this choice has some requirements framework for the execution of the application and a user respect a simpler approach that is developing for a native interface as the high-level OS, but each layer is optimized for environment. In any case before this choice would be better to the specific hardware and the main functionalities of such know the fragmented ecosystem of the mobile platforms in devices. Mobile operating systems are describes as layered order to understand the characteristics of the existing with specific software module that could manage the hardware platforms, but most of these future platforms. and the critical features of mobile devices such as power capabilities in order to give access to them in a secure way for the apps. Among the plethora of mobile operating system, in our research, we distinguish three categories of mobile OS as showed in Table II: those that are actually supported by devices and with different percentages occupy the actual

ISSN: 2769-2507 40 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

market (i.e., iOS, Android, Blackberry OS); those that are disappearing or are already disappeared as having non supported devices and those who are appearing in the market but have not yet a mobile device. The success or otherwise of a mobile platforms depends on the support of the other main drivers of the mobile environment that are hardware devices manufactures, mobile network operators and mobile application developers.

TABLE II. LIST OF MOBILE OPERATING SYSTEMS

Not yet hw Hardware support No longer hw support support iOS (iPhone, iPad) Symbian OS TizenOS Android OpenwebOS FirefoxOS Windows Phone Fig 3: Mobile operating system maket share BadaOS Ubuntu Phone / Each platform support both native apps that are developed Blackberry OS Salfish OS considering the operating systems modules and web apps that Mobile OS as those born for phone devices presented a are apps based on HTML5 framework. When analyzing the closed environment related to the device manufacture. But main features of mobile platforms we made a comparison with the market explosion of such devices, also software between different systems. vendors and open source organizations have developed operating systems versions customized on mobile devices. A. The iOS, Android OS and Windows 8 This is the case of the Windows Phone or of Android OS that is a system that in few years has reached an incredible success. We made a first comparison between the software Actually there are operating systems that: architectures of Apple iOS [9], Android OS [10] and Windows 8 OS [11] in the mobile version. These three mobile platforms - shows an unique hardware and software owner (Apple represent operating systems that are actually in development or Blackberry products and in part Nokia products); and supported by numerous hardware manufactures both in tablets and smartphones categories. - are equipped with systems (e.g., Windows) even if on various hardware platforms (Nokia, HTC); - are equipped with open source software (e.g., Android) and supported by different hardware manufactures (Samsung, LG). Market researches in mobile operating systems, prove as the Figure 3 shows in a research taken from IDC, that Android and iOS occupy the market reaching the 92,3 percent of both tablets and smartphones operating system. In any case, the market is quite volatile considered that the success of Android OS is exploded in just two years also thanks to the hardware support by Samsung. There are systems that face in the market as well as resist niche solutions such as Blackberry. In these market sector for example, Windows Phone has surpassed Blackberry, and Android OS and iOS exchange rates when Fig 5: A comparison between iOS, Android and Windows 8/Phone operating system architecture you consider smartphones of tablets devices. Each operating system has its features however when developing apps it is Fig. 5 shows how the main components of such operating necessary to consider all these environments even if most systems are similar. Mobile OS can be structured in three main users actually prefer Android or iOS system-based. The layers, as the Fig. 5 shows. The lower layer is the kernel that situation can change quickly. It is so interesting to analyze the operates in direct contact with hardware managing it and new proposals of operating systems such as TizenOS, Firefox providing utilities for the upper layers. The kernel is the core OS or Salifish that seem to be promising. We consider the of the operating systems and act as an intermediate between main features of such operating system in order to understand the hardware and the application software in order that the underlying environments and the tools needed to develop applications could use the hardware in a secure and safe way. an app for these environments. The intermediate layer includes a framework with libraries and runtime environments for app executions that interacting directly with the kernel could take advantage of the hardware.

ISSN: 2769-2507 41 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

Finally the last layer is the application layer where resides application software both as native software that web-based software. iOS and Windows 8 are proprietary systems developed respectively by Apple and . Also to promote apps development, such companies provides the kit and tools. iOS was developed by Apple as an OS adapted to different Apple devices (the so- called i-device that is iPad or iPhone) that is however a customized version of the OS X system that equips Apple computers. It presents an open source unix kernel called Mach kernel and a proprietary graphical interface (Acqua). Android

OS represents the first open source mobile platforms that includes not only the operating system but a and Fig 6: WebOS vs. Bada OS architectures applications. It was developed by a group of companies of Open webOS is based on kernel and has a layer of which the most famous is as an open source based on portability of the platform above the kernel (known as Nyx) the . The interesting layer is the application that isolates the rest of the system dependencies hardware and runtime layer. Finally Windows Phone and the Windows 8 core system. The application layer is based on the main web version for tablets are the customized version of the main technologies (HTML, CSS and Javascript), on top of which 8 for mobile devices and with this version stands the application framework. Despite the good of the OS share most of their functionalities. From apps features of this operating system that allows you to create web developer perspective the most interesting layer is the applications, HP has preferred to focus on Android, and then application framework that presents the runtime environment pay for licenses for their Android devices and sell the license where applications are executed and could be linked to the to LG that has invested in the platform as an open source several libraries related to the core and media services. In the project. Probably so, given its limited distribution, it will iOS system, the native apps that could take full advantage of remain a niche OS or for specific devices. Bada OS [14] is an the hardware are written in the Objective language, a operating system for low profile smartphones developed by proprietary object that is however Samsung and released as open source since 2011. The devices compatible with the standard C language. This layer contains with Bada take the name of Wave, as well as devices with all useful services and libraries (e.g., the graphical libraries Android get the Galaxy brand. Bada architecture (Fig. 6) such as OpenGL [12]) and these are the software tools to consists of four layers. A kernel layer contains either a Linux exploit the hardware features of mobile devices. The runtime kernel and a real-time operating system (RTOS) or the Linux Android that is used by all types of Android apps is composed kernel, the device layer provides core functions such as by the core libraries and by the Dalvik virtual machine (DVM) graphics, protocols, telephony and security and the service where apps are executed as in a secure sandbox. The DVM is layer that is similar to an application framework layer offer a similar to the (JVM) even if it is service-oriented services (there is a server called Bada Server optimized for mobile devices. Native Android apps should be that supports them) that are provided by applications engines. in Java language and however all apps are executed in the The final framework layer provides the C ++ and web DVM container. Also Windows Phone [] offers several frameworks that offer the features for apps life cycle runtime environments both for mobile or metro apps (the so- management, event handling and apps controls. Samsung has, called Win Runtime or WinRT) and Windows traditional however, announced the end of the Bada operating system in desktop-based apps or win apps (the Win32 framework) 2013, bringing together some of its features in a new system together with the web-based framework app that includes the called Tizen OS. engine for rich web applications (e.g. Silverlight) or Microsoft JS based applications (Chakra and Trident). As explained in C. The new systems: TizenOS vs Firefox OS vs. Salfish OS Fig. 5 all the three systems show an application layer that and Ubuntu Phone includes the apps as distinguished as native or web or third- party apps each one taking advantage of the underlying mobile The current market for mobile OS devices sees the operating system according the approach used for duopoly of Apple iOS and Google Android, but considering development. that mobile devices market appears to be a growing market, new mobile platform providers are trying to conquer the shares. Many experts wonder if the market is actually ready to B. The interesting mobile operating systems: OpenwebOS receive new operating systems for mobile devices. To survive and Bada OS in the market, and OS should be attractive to users and Among other mobile platforms that are interesting competitive than the others. In any case, the excitement in the solutions even if adopted on few devices, there are the industry allows the consumer a wide range of possible OpenwebOS and Bada OS, whose main structures are shown choices. We will analyze four mobile platforms, Salfish OS, in Fig. 6 and present the same three main layers of the Tizen OS, Firefox OS and Ubuntu for mobile OS, that are previous systems. WebOS was a system implemented on HP appearing in the last period even if in some cases not yet devices that gave rise to two projects: OpenwebOS [13] now supported by mobile hardware. sponsored by LG see as a web operating system and Enyo that is a Javascript library.

ISSN: 2769-2507 42 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

A comparison between the architectures of the three first Firefox Mobile OS [21] is the operating system developed OS is shown in Fig. 7. Sailfish OS [15] is platform created by in early 2013 to be supported on different mobile devices by a team who now works at La , a Finnish company Foundation, a non-profit international organization founded by Nokia employees that would be a modern mobile that also developed one of the most used . Its operating system that is proposed to be an independent and architecture consists of three main components (Fig. 7): a base alternative systems. Its architecture is based on the MeeGo layer codenamed Gonk that includes a Linux kernel, the [16] open source OS, a Linux-based platform developed to be layer (HAL) and devices’ drivers; an executed on different categories of devices. application runtime layer () that is the engine used by other Mozilla software such as Firefox or Thunderbird and provides the implementation of open ; and the layer. Some hardware manufactures (Alcatel, ZTE, and LG) are working with Mozilla developers and the first smartphones equipped with such OS have been lauched into the market initially only in some countries (e.g., Spain, Poland, Hungary) supported by leading mobile network operators. The main objective of such OS is to break down the differences with native applications using web standards to make the operating . The last layer is Gaia, the graphical interface of the system is in fact entirely programmed as a web application. According to research Fig 7: TizenOS vs.Firefox OS vs. Salfish OS architectures companies (e.g., Strategy Analytics), Firefox OS for now has low chance to win the market (something like 1% in 2013) in The same MeeGo was created as a function of two the field of smartphones at affordable prices. projects: Nokia's and 's . Maemo is the development platform of Nokia mobile devices (tablets and The last emerging mobile platform taking into smartphones), while Moblin is an open source project started consideration is Ubuntu OS for phones and mobile devices. in 2007 dedicated to applications for mobile portable devices. Ubuntu Linux is a distribution of GNU / Linux, born in 2004 The use of these technologies includes in Salfish OS some as based on the Debian distribution, and become famous for its phones features such as power management and connectivity ease of use. Initially geared towards desktop use, it is then that are built-in and optimized for embedded environments. specialized for other classes of computing systems. The The core of the OS is based on the Mer project [17] that is software is free under the GPL, but there is a support company based on other frameworks such as the [18] and and its (Canonical), which gains on additional services related to language (Qt Modeling Language, QML) for the graphical operating systems and software in general. Some analyzes [22] user interfaces and the HTML5 framework. It is interesting to show that the distribution Ubuntu is among the most widely notice that Salfish OS includes a runtime environment for the used Linux distributions on the market. Ubuntu provides execution of Android applications based on open source customized versions of the distribution depending on the libraries and web development tools. Sailfish has a user platform and in specific there are released for mobile phones interface minimal, clear and clear that Jolla owner intends to (Ubuntu Phone), for tables, Ubuntu for Android and Ubuntu use to differentiate its mobile devices from other competitors. TV. Canonical therefore aims to create a unique operating Jolla’s first device running Salfish OS was announced to be system that can be used by all mobile devices thanks to the available probably at the end of the year: actually such "micro variants". Ubuntu for phones has been officially smartphone is available for preorder. unveiled in 2013, as the version for tablet, with the support of entry-level and high-end level hardware support. Like other Tizen OS [19] is an open source software platform systems, the architecture is represented in layers with the consisting in an OS and applications that based on standards, it upper one consisting in native and web apps. To date there is is created to be supported on various devices that range from still in the market for devices with these operating systems: it mobile devices (smartphones and tablets) to specific devices was stated that will go on sale early next year (2014) or such as Smart TV. The project is developing under the Linux probably by the end of 2013. In the meantime, a version was Foundation, the non-profit consortium founded in 2007 released for developers installed on some devices of the series dedicated to supporting Linux development of Linux. Also . Later it will be released for another devices Tizen OS shows a architecture structured in several (e.g., Samsung Galaxy, HTC One, Galaxy Nexus, Sony subsystems: a Linux kernel, a core system that provides a set Xperia). Canonical fact is also developing a version called of open libraries and an application framework to support web Ubuntu for Android (a term that causes confusion because and native applications. Samsung has confirmed that it will Android is another mobile platform) meaning that this OS will launch on the market various devices based on this new allow devices with Android hardware to run its Ubuntu operating system. A prototype has already been presented and system. The idea is to have a co-existence of the two systems probably the first devices will come out towards the end of that, based on the same Linux kernel, can share it. The user 2013 this year. Many analysts [20] argue that Tizen OS might could then use Android and its applications using the device as cover only a 2% market share by the year 2013, but a 5% by a phone and Ubuntu when using the device such as a PC. The the end of the following year. problem of groped to capture part of the market remains linked to the need to obtain the support of at least one of the

ISSN: 2769-2507 43 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

major producers of mobile devices and the need to ensure the 1) Issues in apps design for mobile platforms support of the largest possible number of telephone operators. When developing for different mobile operating systems platforms, a developer should consider that each platform has its own peculiarities. There are design differences among IV. The role of mobile mobile platforms (e.g., in iOS the tabs go on the bottom, in frameworks: Android the tabs are on top and in Windows 8 everything scrolls horizontally). Custom icons are made at different sizes, development vs. cross-platform and there are multiple screen resolutions and aspect ratios to consider as well as multiple screen densities and image sizes tools to account for. There are different app’s requirements if the Apps play an essential role in the use of an OS and next to app needs to perfectly fit an iPad screen right up to the edges apps provided by mobile OS providers there are those offered (i.e., to support the iPhone including retina and non-retina by third-party organizations that could contribute to the graphics) or if the app must also fit perfectly on a Samsung success of a platform. It is believed that the center of gravity Galaxy smartphone and tablet of varying sizes and ratios. of the software industry will be allocated their own mobile When the requirement is the cross-platform installation, the applications, given the sales figures and margins for growth in designer for that app needs to be skilled in both iOS and this sector. There is a constantly increasing of the number of Android design, and the designs could conceivably be companies that make use of apps on mobile platforms to stay different enough to warrant two completely separate code closer to their customers and groped so keep active in the streams. competition. As mobile devices become everyday objects of 2) Mobile platforms technical limitations users/consumers, developments of applications designed for Another aspect to consider is the evolution of the mobile the mobile world are the fastest growing sector of the market. platforms’ functionalities. Each cross-platform solution can The type of application would depend on the activities that the logically only ever support a subset of the functionality user performs regularly with such devices. A peculiar included in each native platform. When new features come characteristic of mobile applications is their method of out, developers must wait until the mobile frameworks could distribution. Unlike what happened with the desktop world incorporate them into the API. Without the control of being where the individual producer of software applications able to incorporate new capabilities as soon as they’re established its own distribution model (i.e., through external introduced into each native platform, you run the risk of major media or by downloading from the network by logging into a lost opportunity (e.g., being first to use a new feature is ) for mobile applications have been created special compelling for the app success). In addition, there’s a decent containers, called Application Store, which exploit the chance certain required functionality will require the characteristics of online commerce (e-commerce). The store development of “plug-ins” for each platform, which can may be specific to the manufacturer of the mobile device (e.g., become an unanticipated, costly and time-consuming part of Apple, Ovi Store), or producer of the software (e.g., Google the project. The only way to ensure an apps is built within the Play / Android, Windows MarketPlace). Most of these appropriate, and most efficient, technological parameters is to distribution models accept both native and web apps or hybrid build it natively. apps even if with some constraints. When choosing more a mobile platform for apps development, we should necessary Since app are usually distributed by means of stores, a taken into account cross-platforms tools to avoid the great cost developer should be sure that that store support also cross- of native development for different platforms. We have platform-based apps. Actually for example Apple accepts highlight some aspects that must be considered in the apps PhoneGap apps, but is not impossible thing that requirements design project before making a decision about which tools to could change and a PhoneGap or Titanium apps could no use for development. more work on a iOS platform. In such cases a developer should evaluate what is the cost relative to the “port” of the A. The requirements of cross-platform tools cross-platform tools code into a native app. When considering a cross-platform pool there are some 3) The apps context things that needs to take into account: the design; the technical Finally there are scenarios to consider when it might be limitations related to the mobile platforms update and the appropriate to use a cross-platform tools or to use a native continuous support to the platform, and the context in which approach. For example apps for “online Store” or educational the app is located. These are all questions we need to ask to app should have a presence on as many platforms as possible assess the risk associated with using any cross-platform tools (i.e., iOS, Android, Windows Phone and BlackBerry). If the before embarking any project. In the app design it is necessary app is not deemed to be graphically-intensive, and the initial to analyze what are the functionalities required by the app in design wireframes require a conventional mobile app layout order to evaluate if that app requires native code or plug-ins even if responsive, this app probably could be developed by that could not be supported by the tools. And the time spent means of a cross-platform such as PhoneGap or Titanium. The hiring, designing and coding around the issue could turn out to decision is however a decision based on costs, time, and be very costly. At the same time, the advantages of cost performance of the app. If the app has a social network savings and time to market when cross-platform mobile tools content and needs to incorporate location-based functionality, can also be very real. camera usage, graphical animations and sound interactions, and needs different design for tablets of smartphones, a careful

ISSN: 2769-2507 44 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

approach must be taken. Location-based functionality or Cross-platforms tools camera usage is available in most mobile frameworks, yet tools features each OS truly has different ways of handling location accuracy Live app creation too for multiple and performance and as regards the camera usage there are platforms (community & commercial advanced functionality, such as augmented reality or built-in editions). editing features, that the cross-platform approach could not Cross-platform SDK tools and HTML5 tools for support. Finally, especially for educational and outreach aims, (MoSync mobile sdk and reload the video game app category is more important for an app. In with GPL2 licenses) these scenarios the approach allows the development for Among the different tools probably the the most famous multiple mobile platforms, but is expensive. Another approach PhoneGap and Titanium that use a different approach in the could be using an open source free framework like cocos-2d hybrid development. PhoneGap, an open source project now or cocos-3d to build the app on one platform and then port it to under the the Apache Software Foundation (ASF) projects, is the other. The downside, of course, is multiple code streams in a tools for apps development for different platforms (e.g., iOS, multiple languages, which essentially makes for multiple Android, Windows Phone, Bada) that uses the HTML5 products. framework to create a mobile “web app” that sits inside a native application wrapper. The web code is packaged with a B. A list of cross-platform tools library that bridges web code to native functionality. It has the There are some technologies that allow for cross-platform advantages of a low barrier to entry (HTML/JavaScript/CSS is development of mobile apps each one with its features that the only skill needed to get started), a single code base for all make it appropriate or not for an app or business. In Table III platforms and rapid testing and deployment. But app could we propose a list of used tools that could be available in open report poor performance since it works on a WebView, and source and commercial licenses that could be used to develop lack of support for native UI elements and widgets. For this hybrid apps. issues this tool is not probably good for graphically-intensive apps. Titanium is a mobile development environment that helps to create rich native iOS, Android, TABLE III. LIST OF MOBILE CROSS-PLATFORM TOOLS Android, Windows, Blackberry and HTML5, hybrid and Cross-platforms tools mobile web apps from a single Javascript-based SDK. It is tools features offered as an -based integrated development environment (IDE) that simplifies the development process. Open source framerwork (uses standardized web for the platforms) The package includes the open source SDK with devices and – Apache License, 2 – part of ASF under mobile operating system APIs, Studio that is the IDE, Alloy the name an MVC framework and cloud services for ready-to-use mobile backend. Alloy is a development framework to HTML5 mobile app framework (commercial license free-of-charge under facilitate the rapid development of high quality mobile apps, that follows a model-view-controller architecture using XML the agreement and also available under the GPLv3 license for open source projects). and CSS to provide a simple model for separating the app user Platform based on .NET framework based interface, business logic and data models. The main difference on ECMA standards and C# for the lies on the fact that the software actually compiles the common language infrastructure. Sponsored by Novell. Uses open source JavaScript code into a native binary, converting the JavaScript licenses: GPL for the C# compiler, tools into native class and object files. and runtime libraries, MIT X11 for class libraries, ASP.NET, MEF, DLR, under Within the presented list, if we focus on apps developed as open source Microsoft Permissive License games, we can cite Unity. Unity focuses on gaming and other + Aapche 2. There are also commercial graphically-intensive applications. It currently supports mobile licensing options. platforms and also gaming platforms (e.g., Nintendo, Wii, Open extensible development environment PlayStation 3 and Xbox 360). Unity provides a development for creating native apps across different environment with which graphics, physics and sound can be mobile devices and OSs including programmed. The downside of Unity is that it tends to be Android, windows and Blackberry as well as hybrid and HTML5. It includes an open expensive by comparison particularly when you add in the source SDK (Studio). cost of plug-ins used to build on multiple platforms

A game developer ecosystem with commercial licenses even if there is a free version for windows with publishing V. Conclusions support for iOS, Android, desktop and Apps are the new way of software development web 2D development platform for apps and considering that sales of mobile devices are surpassing those games with commercial licence even if it of desktop computers. But while desktop platforms are an is offered a starter kit for free. established world with few solutions (e.g. , Windows-based, Mac OS or ), the ecosystem of mobile

platforms is highly fragmented and in constant evolution. There are different types of mobile devices with different functionalities and platforms that in many cases are

ISSN: 2769-2507 45 Volume 2, 2020 Ιnternational Journal of Electrical Engineering and Computer Science (EEACS)

proprietary. If we focus on Internet-enabled mobile devices [2] A. Jamalipour, The wireless mobile Internet. Architectures, Protocols such as tablets or smartphones the platforms are surely and services, Wiley, 2003 reduced, however the market, even if actually seems stabilized [3] S. Pastore, Website development and web standards in the ubiquitous world: where are we going?, WSEAS Transactions on Computers, Issue on two OS (iOS and Android OS), shows the introduction of 9, Volume 11, September 2012. pp.309-318. E-ISSN: 224-2872 different mobile platform. It is worth considering the emerging [4] A. H. Lashkari, M. Moradhaseli, Mobile operating systems and mobile platform (e.g., Tizen OS; Salfish OS; etc.) that programming: mobile communications, VDM Verlag Dr. Muller, 2011 probably could become the “Android” of the future. So hen [5] S. Cai, F-K Chiang, X. Wang, “Using the augmented reality 3D developing an app, it is necessary to take into account the technique for a convex imaging experiment in a physics course ,” different mobile platforms, each one with its peculiarity. International Journal of Engineering education, vol. 29, No. 4 pp. 858- Focusing on one platform, iOS or Android, could be very 865, 2013 limited for specific type of apps. And when deciding to [6] G. Kipper, J. Rampolla, Augmented Reality: an emerging technologies develop for more than one platform, the problem is the guide to AR, Elsevier, 2012. selection of the right framework. Developing native apps [7] M. David, HTML5 mobile website: turbocharging HTML5 with jquery could be very expensive and take a long time, so the use of mobile, and other frameworks, Focal press, 1 ed. 2011 cross-platform tools in some cases could be a good solution. [8] R. van der Muelen, J. Rivera, Garter Recommends a hybrid approach for business-to-employee mobile apps, press release, Gartner site, April When considering whether to use a cross-platform tools 2013. instead of native mobile development, some important [9] iOS technology overview, Apple developer site, Apple, 2012 . deciding factors include: [10] C. wang, W. Duan, J. Ma, C. Wang, The research of android system - platform requirements—which platforms must the architecture and application programming, Proc. Of Int. Conference on Computer science and network technology (ICCSNT), 2011, pp. 785- app support and which platforms are considered “nice to 790. haves”; [11] Microsoft Software developer website, Concepts and architecture for - technology requirements—which mobile device Windows Phone, MSD Microsoft library, 2013. features must the app support and which are “nice to haves”; [12] Openwebosproject website, Open webOS architecture, openwebosproject.org website, 2013 - performance requirements—are there aspects of the [13] SkyTeckgeek.com blog, Understanding Samsung Bada OS and its conceptual apps where performance, especially graphical or development architecture, 2011 . computational, a consideration; [14] B. Fling, Mobile Design and Development: practical concepts and techniques for creating sites and web apps. O’Reilly media, 2009 - design constraints—how disparate are the designs for [15] Salfish OS website, at url:http://salfish.org different device types. [16] MeeGo website, at url:https://meego.com [17] Mer project website, at url: http://merproject.com References [18] Qt project website, at url:qt-project.org [19] Tizen OS project, at url: www.tizen.org [20] Ubuntu statistics at url: http://www.chimerarevo.com/steam-linux- [1] R. C., Basole, J. Karla, On the Evolution of mobile platform ecosystem distribuzioni-statistich structure and strategy, Business and Information systems engineering, Springer, Oct. 20122, Volume 3, Issue 5, pp. 313-322, 2011

ISSN: 2769-2507 46