Building a mobile app is always an exciting idea. First you need to make sure your idea for the app/product is good and you already have a marketing video about it (that helps you identify your target audience and create the product story), even if it is an internal app.
Then you need to decide what tools to use and what are the best options. Some of the questions bellow will help with the tools decision:
- Do you need an app for multiple platforms: iOS, Android, Windows, others: in this case consider using a cross platform framework like PhoneGap or Titanium
- Do you need advanced features not available on some platforms or incompatible between platforms: in this case consider building native apps
- Do you need the app to feel really native and only need to support 1 or max 2 platforms: consider building native apps
Building native apps is driven a lot by the platform: Objective C tools and XCode for iOS and Java and Android SDK for Android.
For cross platform and web (or webview) apps the choices are pretty similar, since PhoneGap, for example, works with any JS/HTML framework and packages the JS/HTML/CSS code as native code (in the background it exposes native device capabilities using JS APIs).
I personally prefer:
- JQuery (classic or mobile) or Sencha (second choice) for UI stuff
- a lightweight JS MVC framework for the main logic of the app (main choices are backbone, ember, angular, but lighter frameworks are agility.js)
- Again JQuery for DOM manipulation
If you need a backend keep it RESTful (pragmatic REST), but that is the topic of my next post.
Consider local caching and some offline capabilities, both for native apps and HTML/JS apps – this will improve the user experience.