Software giants like Google are disrupting the otherwise safe and established players in the mobile application development business. Newcomers like Android have led to significant structural changes in the future of mobile application development by imposing their rules. This changed environment not only brings additional opportunities but also adds certain constraints. Developers today need to assess their options and determine how they can benefit from this changing environment. While mobile computing has caught the attention of application developers, there has been very little work done to examine the programming ease of these technologies. Here we will look at two of the most widely available mobile development environments – Android and Windows Mobile and explore and assess these options from a developer’s perspective.
Google released AAndroid in 2007 as an open-source platform for mobile software development for smartphones. The Android platform was released as part of the Open Handset Alliance. The primary aim of this alliance was to set up open standards for smartphones. Android is a Linux-based, open-source operating system for mobiles. A mobile operating system allows developers to create managed codes in Java using Java libraries developed by Google. Android provides a mobile operating system, including a development environment. Still, it also offers a custom virtual machine known as the Dalvik Virtual Machine for running applications and acts as the middleware between the operating system and the code. Regarding application development, Android facilitates the usage of 2D and 3D graphic libraries, advanced network capabilities such as 3G, Edge, and WLAN, and a customized SQL engine for continual storage.
Developed by Microsoft, Windows Mobile is an operating system for mobile devices. Based on Microsoft Windows CE 5.0, Windows Mobile operates on many smartphones, PDAs, and touchscreen devices. Windows Mobile facilitates the creation of custom-written applications in managed and native codes. The Application Programming Interface (API) in Windows Mobile is extensible and has rich features and a programmable layer. Besides that, Windows Mobile also takes advantage of the capabilities provided by the Microsoft.Net environment. We will compare these platforms and closely examine their strengths and weaknesses. The media will be compared based on implementation, performance, and developer support. We have chosen these criteria for the comparison as they represent the most important aspects of mobile software developers.
READ MORE :
We will use persistent storage as the basis for comparing the implementation aspect. The technology used for persistent storage in mobile technology varies between various mobile development environments. Windows Mobile and Android can use an on-device database, facilitating easier data manipulation and extraction. Also, both environments support memory cards for additional storage space regarding local file storage. However, the difference lies in the way the storage space is exploited. While Android cannot install applications on memory cards, Windows Mobile allows it. Both Android and Windows Mobile platforms have a . Also, on both platforms, the libraries have several useful persistence features. Once the libraries have been initialized, access to the database is available via an object-oriented interface that developers can easily access.
Performance figures are important for both users as well as developers. The performance comparison of the two platforms will be carried out based on the file size. The basic purpose of measuring file size is to better understand the configuration and the run time dependencies included in packaged applications. Android applications come packaged in apk (Android Package) files. The. APK file generally has a group of.DEX (Android program files) files operate as a single application file for usage within the Android platform. The. APK file is the compressed version of the contents in the ‘Androidmanifest.xml’ file.
Windows Mobile applications make use of cab files for application packaging and deployment. The first step while making a distributable file involves packaging the application in a CAB (Cabinet) file. A CAB file is an executable archive containing the application, resources, dependencies like DLLs, and other resource files. This CAB file can be deployed to other devices that can be expanded and installed.
Tom Morten Gronli, Jarle Hansen, and Gheorghita Ghinea of Brunel University, London, conducted a comparative study of mobile development environments. In this comparative study, a demo example application was created in both the Windows Mobile andplatforms to better illustrate the deployment file size for each application. The demo example application was a simple program that printed a line of text on the screen. The result from the code example was as follows:
The deployment size of the demo application in the Windows Mobile environment was 2.8 KB. The deployment size of the demo application in the Android environment was 9.3 KB. The file sizes, as denoted, were without any obfuscator or shrinker software. An end-user would download This type of file or get shipped and installed on their device. As seen above, the demo application in Windows Mobile had a file size of 2.8 KB, while Android was approximately three times the size at 9.3 KB. This indicates the total amount of configuration files and runtime dependencies that must be bundled with each client application. Regarding the number of lines of code, Windows Mobile required only 11 lines, whereas Android needed 28.
Developer Support Comparison
Developer support is an essential aspect when it comes to gaining speed and quality during the development process. While both mobile development platforms have similarities, developer support has some unique differences. The differences become clearer when considering the integrated developer environment (IDE) and the tooling.
The only choice for development in Windows Mobile is Visual Studio, which Microsoft again develops. With Visual Studio, Windows Mobile needs Microsoft backing before implementing and shipping new features in the IDE. The community can only make suggestions but doesn’t have any direct influence. However, there is a positive side as consistency is assured. Also, the quality approval process implemented by Microsoft while shipping new products will ensure quality.
On the other hand, there are several tooling options for Android, with quite a few IDEs. Android has open-source communities that contribute to IDE development by providing quality plugin functionalities for software. However, the multiple IDE environment can be quite challenging to maintain consistency and quality assurance. The character becomes challenging as extension features may be available for only some competing IDEs.
Quality assurance becomes a major challenge as development carried out by the community is not governed by a common standard for quality required before making the new integrated developer environment feature available. Quality assurance of the delivered code is essential for delivering fully functional products. These two factors can potentially make code and application portability between environments impossible.