So you want to build a mobile app...

mobile-app-options.appspot.com

I wanted to make a mobile app for my site this year, and I had a decision to make. How to make it? There's actually a lot of options, and it's not an easy decision to make because you're making a big time commitment - you're pretty much always learning something new and making a new codebase. So you gotta know your options.

Native app

Platform Language IDE
iOS Objective C XCode
Android Java Eclipse
Windows .NET Visual Studio
BlackberryJava BB JDE
hpWebOS C/C++/HTML5 ?

Cross-Compiled code

iOS Android WP7 BB WebOS
ParticleCode Java, AS3
XMLVM Java, .NET
Monotouch C#, .NET

Wrapper API -> Native
Often write once, run in multiple platforms

Runtime code

iOS Android WP7 BB WebOS
Titanium JavaScript
RhoMobile Ruby
Corona Lua

Hybrid app

Native app wrapped around a web view, communicating with APIs, via JavaScript. All web technology. Bridging API + Web Tech

Bridge SDK

iOS Android WP7 BB WebOS
PhoneGap
trigger.io
appMobi

phonegap: open source, adobe bought, apache trigger: startup funded, SaaS appmobi: also for making offline web apps

Web Frameworks

Programmatic

Sencha · Jo · GWTMobile · SproutCore

creating app from JS, creating the whole container and UI using JavaScript

Declarative

jQueryMobile · Kendo UI · Wink

writing HTML first, using JS to enhance that HTML, mobile optimize it, make it interactive jQueryMobile + Kendo UI both based on jQuery

CSS

Twitter Bootstrap · ZURB Foundation

responsive, mobile, media queries, fixed header/footer

JS

Zepto · iScroll · jQTouch

touch events, scrolling

How to decide?



  • How many platforms do you want to support?
  • How important is performance?
  • How important is the user experience?
  • How many codebases?
  • What language(s) do you know?

My decision: Hybrid


PhoneGap + Zepto + Twitter Bootstrap