Mobile Application Development


App-stores are increasingly playing a major role in the mobile software market. There are number of tools, libraries and frameworks available in the market for creating of native apps and web apps. The technology for creating mobile apps can be classified as follows:

  • Use different languages and compile native app(s) in different platforms: Titanium Appcelerator uses HTML/JS/CSS for developing apps for Android, Blackberry and iPhone market. Ansca Mobile uses ActionScript and Lua for developing apps for Android and iPhone markets.
  • PhoneGap and QuickConnect help in using native platform language to expose certain native features to web app. Sencha, jQTouch, iui, jQuery Mobile, Jo framework help in creating touch device optimized, native look and feel web apps.

Windows Phone 7 is shipped on devices that meet Microsoft’s design guidelines. Microsoft enforces specific requirements around the types and locations of buttons and logos, and there are rules requiring the single screen resolution supported by Windows Phone 7.

The user interface of WP7 is different. Rather than icons, WP7 uses start page with tiles that can indicate status like the number of emails, facebook notifications etc with easy access to launching the application. Once launched from tiles or the list of applications, non-game applications appear quite visibly different from other platforms in their design, which uses side scrolling design metaphor intended to organize information into unique views or tasks on individual pages.

Similar to iOS, Microsoft approves applications before they can be downloaded. WP7 does not support multi tasking. It also offers limited user customization options.

Reference: Redmond mag

iOS SDK and Android SDK, anybody involved in mobile development cannot ignore the SDK’s. Even though both of them follow the MVC model, which is where the similarities end. Fragmentation is a key difference between Android and iOS. The interfaces are constructed differently.

iOS

iOS is currently offered for two device resolutions: 1024*786 and 320*480. This allows the developer to develop graphical elements exactly and the use of tools for the purpose is useful. Creating views is easier in iOS compared to Android. iOS lets the developer work on exact and complex animations. Graphic libraries have matured over the past several years which has eased the developer’s effort. A push notification infrastructure exists which can be used without worrying about performance costs. Apple does not approve arbitrary code running in the background. If a separate thread is opened and made to run then it is a risk of battery life and slow performance. When launching an application in iOS, the entire application will launch and then redirect to the controller.

Android

Android interface creation is like working with HTML. The developer outlines the structure and measures individual element sizes relative to dynamic display sizes. While tools are available for graphical construction, they can be used effectively only when the basic interface is understood clearly. Views can be created via XML. Complex animations can be created but become difficult depending upon the complexity. While working with older Android devices (less than 2.2) there are no push notifications. Arbitrary code can be made to run in the background. When launching an application, the developer will not exactly know the logical start/end of it. The developer can only detect when the controllers are starting and closing.

At the end of the day as developers we have to target both systems owing to the growing popularity. References have been taken from quora.com.

IDC and Appcelerator have released the findings of their survey concerning developer interest in working on various mobile platforms. Android and iOS are well ahead of others. Developers always wonder which platform they should develop for Android or iOS.

Parameter

Android

iOS

Programming language Java Objective C
Technology Interface builder in Android does not exactly link directly to code and just generates a rough draft. Setting up GUI is lot easier. Links the objects to the code
API’s Android is catching up in API’s. Apple API’s have been in existence longer and have been developed further
Fragmentation Huge selection of devices with many device specific OS modifications. Different screen sizes and resolutions to deal with. Can safely target iPhone hardware platform and achieve compatibility with iTouch and iPad
Distribution mechanism Android marketplace has become much better with Google continuing to tweak the user experience User experience in app store is uniform and simple. Larger audience for iPhone app store.
App store Features highest percentage of free apps with over 57% being free to download Only 28% of the apps are free
Approval Easily manageable Arduous approval process
Monetization Using Google Checkout Using iTunes account

Writing apps is a hits based business based on downloads. So from a distribution standpoint, cross-platform development is key. If the focus is only on building native app, then the decision has to be made based on target market and the comfort level of the developer in programming for iOS or Andorid.

Adapted from answers in Stackoverflow.com and quora.com

Microsoft has been reaching out to iPhone application developers to develop their existing applications to work on Windows Phone 7. Microsoft has released an API mapping tool for iPhone/iOS to Windows Phone 7. With the tool, iPhone developers find out the equivalent classes, methods and notification events for the iOS API calls. A developer can search a given iOS API call and find the equivalent WP7 along with C# sample codes and API documentations for both platforms. The code samples allow developers to quickly migrate short blobs of iOS code to the equivalent C# code.

The following tool shows the functionality mapping between iPhone and Windows Phone 7:

Functionality

iPhone / iOS

Windows Phone 7

Application UI and phone integration Cocoa touch WP7 framework, Silverlight controls
Graphics and animation Media layer XNA for games

Silverlight media and graphics for others

Base services, Networking, XML, storage Core services layer Common base library

iOS API’s can be broadly classified into the following categories:

  • Audio / video
  • Data management
  • Graphics / animation
  • Network / internet
  • Performance
  • Security
  • User interface

API tool currently maps data management, network/internet and user interface categories. The API tool provided by Microsoft can be accessed from here.

~ Ramya

Small screens, bandwidth constraints, accessibility etc. are some constraints faced by developers while designing for mobile web. This post gives a brief summary on how a developer can work around the constraints.

Small screens

  • Prioritize features and content
  • Reduce hierarchy levels for content
  • Workflows

Users usually want only certain key features in their mobile. It is essential to give priority to the top content accessed by users.  The amount of content in a mobile web page should be reduced as much as possible avoiding graphical elements.  Example: Bank of America mobile banking page. The mobile home page has the top two features of sign in and locations. The home page on the web is different with varied offerings information.

Bank of America - Mobile Page

The number of clicks to access content is limited. Workflows are clearly communicated with ‘select’ options. Only limited content is displayed by default thereby reducing the need for scrolling continuously.

Providing input

Data entry on mobile devices can be time consuming and error prone. Selecting from list of options is easier than asking the user to type. When asking the user to type, typos or mismatch are the most common errors. When searching for a location in the Bank of America mobile page, there could be chances for multiple listings. Allowing the user to select the correct listing would be a better design than asking the user to type the exact name. Autocomplete is also a big help in mobile sites.

Form filling

Auto fill is a big help while filling forms. Allow the user to select information as default so that they can be pre-loaded the next time. Forms also need to be kept at minimum. Buttons need to be bigger and easier for users to select.

To summarize, simplicity is the key for usability.

References: uxmatters.com, cnet.com

~ Ramya

HTML 5, the latest version of HTML is actually an umbrella term that envelopes CSS, JavaScript and HTML. HTML is used for creating web applications and the new version definitely has several features to create better web applications that work well with all kinds of computers. HTML5 has gained significant importance due to its ability to provide users with richer web applications and improved usability in mobile devices.

To summarize the key features that HTML5 with respect to mobile devices:

  • Hybrid web applications – There are several mobile frameworks essentially HTML5 app platforms that allows the developer to author native applications with web technologies and get access to API’s and different app stores. This means that an Android user can download a HTML5 application and access it like a native Android application.
  • Offline web application support – AppCache and Database in HTML5 has made local storage more powerful. The developer can get the web app to cache content on the device that accesses it.
  • Web storage – Web Storage is a web application software method for storing data in a web browser. Web storage supports persistent data storage similar to cookies. HTML5 provides a client side method for saving session information.
  • Background computation power – When performing advanced load-heavy operations in a web browser, both the web page it is run in as well as the web browser UI becomes unresponsive till it’s finished. HTML5’s ‘Web Workers’ spawn processes that work in the background without interrupting the user interface and its response level.
  • Native device features – WAC is working with W3C, is developing libraries that allow the developer to access native camera capabilities. WAC API’s allows the developer to get latitude without worrying about the GPS capabilities of the device. Currently this works only for packaged downloadable apps but it is expected to soon work in mobile browser apps. The geolocation API lets you share your location with trusted web sites. The latitude and longitude are available to JavaScript on the page, which in turn can send it back to the remote web server and do fancy location-aware things like finding local businesses or showing your location on a map.
  • Codec neutral – HTML5 video is an element introduced in the HTML5 draft specification for the purpose of playing videos. The current HTML5 draft specification does not specify which video formats browsers should support in the video tag. User agents are free to support any video formats they feel are appropriate.
  • CSS3 selectors – CSS3 selectors provide new, more powerful ways to select nodes using CSS. This helps when styling complex documents or making CSS that can apply to a document as its structure changes.
  • 2D canvas animation – HTML5 allows 2D drawing, graphics and animations. Cross platform games become possible in mobile browsers.

There are many more features but I have listed some of the features that are being used widely.

~ Ramya

(Reference: gomonews.com)

Next Page »