Tool Selection Activity Page (activity started ~ 6/18/2012, specific dates available on Timeline page)

The tool selection activity will:

  1. Identify potential tools for cross-platform mobile development
  2. Create some high level assumptions for tool selection
  3. Develop a set of features to be tested
  4. Design the test app
  5. Identify 3 candidates for testing
  6. Build 1-week prototypes for each candidate and record findings
  7. Make a recommendation for what tool to use to build Shirly.

Environmental Scan:

 

Tool

Platforms

Price

Base language

Pros

Cons

Notes

Example Apps

*PhoneGap/Cordova

iOS/Android/BB/WP

Free

JavaScript

ASL license also creates HTML5 web app

 

 

 

*SenchaTouch

iOS/Android/BB

Free*

JavaScript

IDE, ExtJS for HTML5

 

GPL or Free apps only; pay apps cost

 

*Appcelerator

iOS/Android

Free+

JavaScript

SDK

 

 

 

Adobe Flex

iOS/Android/BB

Free*

Flash/ActionScript

 

 

$250 for FlashBuilder

 

*MonoTouch

iOS/Android/WP7

$2000*

C#

VisualStudio integration (not-required)

$1000 for iOS, $1000 for Android

 

 

RhoMobile

iOS/Android

Free

Ruby

Doesn't require SDKs, Cloud builds

Cloud builds

Corona

iOS/Android/Kindle/Nook

$4350/year*

 

SDK

 

$200 for iOS, $200 for Android

 

KendoUI

iOS/Android/BB/WP

$700/dev

JavaScript/jQuery

 

 

GPL/Commercial

 

AppMobi

iOS/Android/BB/WP

Free*

HTML5

Existing tools (DW, Eclipse, VS) add on cloud services

 

 

 

MoSync

iOS/Android/BB/WP

free*

JavaScript/C/C++

 

 

E200-3000 (pay for support, non-GPL2)

 

MobieRoadie

iOS/Android

$100/month

N/A

Web based editor

Limited Functionality

 

 

AppMakr

iOS/Android

$80/app/month

N/A

Web based editor

Limited Functionality

 

 

Icenium

iOS/Android

??

JavScript

cloud

private beta, cloud

 

 

Assumptions:

These assumptions took into consideration the existing developer community within CDC (mostly .Net/Java), the needs of the program (STD Guidelines on SmartPhone) for high priorities but also identified secondary priorities that may also be applicable (tablets, BlackBerries, etc.).

This list is ordered by priority.

AssumptionPriorityWeight
Learning CurveHighScore 1-10
Cross-Platform: Android, iOSHighBinary
PriceHighScore 1-10
Native-like FunctionalityHighScore 1-10
Maintainability (ability to make changes, maintain code, etc.)HighScore 1-10
Stability/Maturity/FrequencyOfUpdatesHighScore 1-10
Cross-Platform: Web, WP, BBMedium 
Single Code BaseMediumScore 1-10
Tablet SupportLowScore 1-10
   
   

Features:

These are the features that our test prototype apps will seek to display. Our developer will implement as many features as are possible within the one week time period. Again, we focus on the specific needs of this program (STD on smartphone), but also try to test additional features that may be useful in the future.

We'll evaluate based on how the feature is implemented in the test app, but also based on the developer's experience as he creates the test apps. We'll document those experiences here and eventually on a Lab blog.

FunctionImportance SenchaJQuery  MonoTouch AppceleratorNotes
TableViewHighxxxx 
ButtonsHighxxxxRefer to iPhone HIG for specific button types. We'll list them all out eventually.
Network IOHighxxxxAt least http/https
JSONHighxxxxParsing and Constructing
XMLHighx xxParsing and Constructing
HTML/CSSHighxxxxDisplay of HTML5 formatted content
WebView/SafariHighx xxAbility to launch content in a browser (link out)
FileIOHighx xxThe ability to read and write local configuration files and data in a non-specific way (e.g., plist, local database, etc.)
PickerHighxxxx 
SliderHighxxxx 
ImageViewHighxxxx 
CalendarPickerHighxxxx 
EmailHigh  xxAbility to launch an email app with to/from/subject/content populated (not to send email through NetworkIO)
Alerts/PromptsHighxxxx 
SimulationHigh  xxAbility to run within a simulator (e.g., xCode, Android SDK)
GPSMedium  xxFind current coordinates
CameraMedium  xxcapture photo and/or video
MapsMedium  xxDisplay map (with or without GPS), add simple pins/markup to map
SearchLowxxx Support for text search of full or limited content
AudioLowx xxPlaying audio sounds
SQLLowx xxSpecific support for sql storage and access of data locally
SplitViewLowxxxxMore of a tablet feature

Design:

The tool will be designed to display features in a "Kitchen Sink" format with as few screens as possible.

The output of each tool will be:

  1. Source code
  2. Derived Android Project
  3. Derived iOS Project
  4. Functioning App on iPhone
  5. Functioning App on Android Tablet (*only because we don't have an available phone for testing)
  6. Demo of the app

Unknowns:

  1. Specific Android version to target
  2. What iOS version to target. At least iOS 5, likely 4

Tool Candidates for prototyping:

We planned on picking 3, but we picked 4 due to the popularity of Appcelerator and the desire to test a single source, native output toolkit.

  1. SenchaTouch (Sencha Architect using the extJS framework and Sencha's cross-compiler for Android and iOS) - ETA June 29
  2. jQueryMobile with PhoneGap and DreamWeaver's PhoneGap tools - ETA July 6
  3. MonoTouch with MonoTouchSDK (maybe VS, probably not) with Mono's cross-compiler for Android and iOS - ETA July 13
  4. Appcelerator with their SDK and cross-compiler for Android and iOS - ETA July 20

Interim Findings / Notes:

We went through the process of evaluating each tool and using it to build our own evaluation app. Here are the notes from that process.

  1. Sencha Touch, Architect, and SDK Tools Notes.
  2. JQuery Mobile, Dreamweaver, and PhoneGap Notes.
  3. MonoTouch and Mono for Android Notes.
  4. Appcelerator Titanium Studio and SDK Evaluation Notes.

Recommendation:

References:

  1. Sencha Kitchen Sink demo
  2. Appcelerator Kitchen Sink demo
  3. jQuery Mobile Kitchen Sink demo | Another jQuery demo
  • No labels