Friday, December 14, 2012

Mobile Development Options - Part 1: Overview

By Mark Giglione

Mobile Development Options - Part 1: Overview

This series will provide brief introductions to options for mobile app development with links to pursue each topic in more depth. The general plan is to begin with technologies that do not require a background in programming (or otherwise require traditional programming skills) and then explore options that progressively involve acquiring more technical expertise.

Part 1: Overview
Part 2: MIT App Inventor
Part 3: Mobile Web Development with Dreamweaver
Part 4: Titanium Appcelerator & Titanium Studio
Part 5: Processing
Part 6: Xcode for Apple iOS Development
Part 7: Eclipse for Android Development
Part 8: Other Tools and Wrap-Up


Overview

There are two primary strategy choices for creating mobile applications. The first is to create a ‘native’ application targeted for a specific device or device operating system (e.g. iOS devices, such as an iPad or iPhone, and Android devices like the Amazon Kindle). The second is to develop a website or web application that is designed for viewing by a mobile device.  

A native application is tailored and optimized for use on a specific device and is usually distributed through an online marketplace (for example  iTunes for iOS devices). Typically a native application requires the use of a traditional computer programming environment such as Xcode or Eclipse (but alternative development approaches are available).  

Mobile websites and mobile web applications can have a similar look and interface conventions as a native mobile application but are created using the tools and technologies that are typically used to create conventional web sites (e. g. HTML, CSS and Javascript). This has the advantage of utilizing tools that may already be familiar from previous web development work and the web based application is directly accessible from the web without first being downloaded and installed. While a native application may be a better choice where performance or device specific features are required, mobile web applications can be quite suitable for implementing simple to moderately complex applications. Mobile web applications are for the most part inherently “cross platform” since they are web rather than device based. Additionally, many mobile web applications can also be packaged and distributed as a standalone native applications.

The next installment will discuss the open source MIT App Inventor tool which uses codeless “visual” programming for creating native Android applications. App Inventor is also representative of a class of mobile development tools where the development environment is web based (rather than running on the desktop) but the final product is a native application.