Comparing the Widows Mobile and Android Develpment Platform

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 take a 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.

Android

Android was released by Google 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 basically a Linux based, open source operating system for mobiles. As a mobile operating system it allows developers to create managed codes in Java, by using Java libraries developed by Google. Not only does Android provide a mobile operating system including a development environment, it also offers a custom virtual machine known as the Dalvik Virtual Machine for running applications as well as acts as the middleware in between the operating system and the code. When it comes to application development, Android facilitates the usage of 2D as well as 3D graphic libraries, advanced network capabilities such as 3G, Edge and WLAN and a customized SQL engine for continual storage.

Windows Mobile

Developed by Microsoft, the Window Mobile is an operating system for mobile devices. Based on the Microsoft Windows CE 5.0, Windows Mobile is used as an operating system on many smartphones, PDAs and touch screen devices. Windows Mobile facilitates the creation of custom written applications in managed as well as native codes. The Application Programming Interface (API) in Windows Mobile is extensible and has rich features along with a programmable layer. Besides that Windows Mobile also takes advantage of the capabilities provided by Microsoft.Net environment.

We will compare these platforms and closely examine their strengths and weaknesses. The platforms will be compared on the basis of implementation and performance aspects as well as developer support. We have chosen these criteria for the comparison as they represent the most important aspects when it comes to mobile software developers.

Implementation

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. Both Windows Mobile and Android have the ability to use an on-device database which facilitates easier manipulation as well as extraction of data. Also, as far as local file storage is concerned both environments support memory cards for additional storage space. 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 relational database. Also, in both the platforms the libraries have quite a few useful persistence features. Once the libraries have been initialized, access to database is available via an object oriented interface which can be easily accessed by developers.

Performance

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 get a better idea of the configuration as well as the run time dependencies that are 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, which operate like a single application file for usage within the Android platform. The .APK file is basically 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. This CAB file can be deployed to other devices where it can be expanded and installed. A CAB file is basically an executable archive which contains the application, resources, dependencies like DLLs and other resource files.

Guidelines to Prevent Rejection of a Mobile Application at an Application Store

Free of Bugs

The application should be thoroughly checked across various devices to detect and fix any bugs. It should be complete in nature and crash free. Reviewing the application before submission would prevent rejection.

Name, Title and Accurate Description

Setting aside a primary name for the application would ensure a specificity to the mobile application as it cannot be used by any other application. This would also smoothen up the process during release as the developer would not be distressed about working out an appropriate app name at the time of releasing the application. A pointer here is to check the policy of the App Store over name reservation. Care should be taken to prevent breach of any policy related to trade name of the store. Getting an appealing title would ensure that the app is eye-catchy on social media sites. Besides, it should be the developer’s prime concern to provide precise and truthful information about the application and its functionality. Correct description of the application would enhance user understanding and their experience. Usage of appropriate keywords in the applications metadata and description would help to locate the application in app Store. So keywords should be judiciously selected.

Deliver as Categorized

The Application should be listed in the correct category and provide users the functionality as penned in the application description. Hence appropriate primary, secondary and sub categories should be chosen. Just as a travel application would not be appreciated in a reading category; so would an application though correctly categorized, but with false promises of certain attributes and functionality (which it actually does not deliver) would be disheartening for the users. This would not only frustrate the users and lead to rejection but would also chew away the trust and brand name of the company.

Avoid Duplicity

The developer must avoid making and submitting similar or related applications in an application store as this might affect the review process and the end-user experience too. Chances are the app would be rejected! It is best to review the various apps and combine related ones into a single package for enhanced end-user experience.

Operational across Platforms

The developer must test the application’s functionality across multiple platforms and aim to provide both the lower and higher platform functionality. Besides, since some stores converge it is advisable to enable a user to pay for the application just once if he/she wishes to use it across one or more platforms. For example since Windows Store and Windows phone have converging identity an application available in both should be chargeable only once.

Complete in Quality and User Friendly

The application should provide an enhanced user interface which should be clear, polished and abide by the design rules and design guides of the application store. The links provided should not be broken. It is advisable to include URL’s pertaining to up-to date contact information, privacy topics, support website and an auto subscription, all which should be workable. A support email address should be constituted and an End User License Agreement should provide. The application should be complete in all respect before submission. Images and content should be complete before submission to the app store for review, as incomplete app gets rejected. The developer should ensure that the application appears appealing and informational and content should be configured for its functionality across the specific open source operating system. Quality can also be enhanced by providing rich content and multiple functionality appealing to various markets and multiple customer base.

Pricing and Promotion Strategy

Depending on target population a full purchase or an initial free subscription which is later convertible to a paid one should be decided upon. If the App store offers a platform for free trial, it is beneficial to go for this pricing model where the users can be given the liberty to convert a free trial to a paid one later. Besides, care should be taken to provide the option of billing for the application through the mobile carrier route in markets where credit card purchase penetration is low. For promotion, a charming promotional graphic can be designed. All available tools at the application store should be explored to promote the application in its chosen category and so that the application can boast of ‘the maximum number of downloads’ in a day!