Tool Selection Activity Page (activity started ~ 6/18/2012, specific dates available on Timeline page)
The tool selection activity will:
- Identify potential tools for cross-platform mobile development
- Create some high level assumptions for tool selection
- Develop a set of features to be tested
- Design the test app
- Identify 3 candidates for testing
- Build 1-week prototypes for each candidate and record findings
- 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.
Assumption | Priority | Weight |
---|---|---|
Learning Curve | High | Score 1-10 |
Cross-Platform: Android, iOS | High | Binary |
Price | High | Score 1-10 |
Native-like Functionality | High | Score 1-10 |
Maintainability (ability to make changes, maintain code, etc.) | High | Score 1-10 |
Stability/Maturity/FrequencyOfUpdates | High | Score 1-10 |
Cross-Platform: Web, WP, BB | Medium | |
Single Code Base | Medium | Score 1-10 |
Tablet Support | Low | Score 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.
Function | Importance | Sencha | JQuery | MonoTouch | Appcelerator | Notes |
---|---|---|---|---|---|---|
TableView | High | x | x | x | x | |
Buttons | High | x | x | x | x | Refer to iPhone HIG for specific button types. We'll list them all out eventually. |
Network IO | High | x | x | x | x | At least http/https |
JSON | High | x | x | x | x | Parsing and Constructing |
XML | High | x | x | x | Parsing and Constructing | |
HTML/CSS | High | x | x | x | x | Display of HTML5 formatted content |
WebView/Safari | High | x | x | x | Ability to launch content in a browser (link out) | |
FileIO | High | x | x | x | The ability to read and write local configuration files and data in a non-specific way (e.g., plist, local database, etc.) | |
Picker | High | x | x | x | x | |
Slider | High | x | x | x | x | |
ImageView | High | x | x | x | x | |
CalendarPicker | High | x | x | x | x | |
High | x | x | Ability to launch an email app with to/from/subject/content populated (not to send email through NetworkIO) | |||
Alerts/Prompts | High | x | x | x | x | |
Simulation | High | x | x | Ability to run within a simulator (e.g., xCode, Android SDK) | ||
GPS | Medium | x | x | Find current coordinates | ||
Camera | Medium | x | x | capture photo and/or video | ||
Maps | Medium | x | x | Display map (with or without GPS), add simple pins/markup to map | ||
Search | Low | x | x | x | Support for text search of full or limited content | |
Audio | Low | x | x | x | Playing audio sounds | |
SQL | Low | x | x | x | Specific support for sql storage and access of data locally | |
SplitView | Low | x | x | x | x | More 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:
- Source code
- Derived Android Project
- Derived iOS Project
- Functioning App on iPhone
- Functioning App on Android Tablet (*only because we don't have an available phone for testing)
- Demo of the app
Unknowns:
- Specific Android version to target
- 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.
- SenchaTouch (Sencha Architect using the extJS framework and Sencha's cross-compiler for Android and iOS) - ETA June 29
- jQueryMobile with PhoneGap and DreamWeaver's PhoneGap tools - ETA July 6
- MonoTouch with MonoTouchSDK (maybe VS, probably not) with Mono's cross-compiler for Android and iOS - ETA July 13
- 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.
- Sencha Touch, Architect, and SDK Tools Notes.
- JQuery Mobile, Dreamweaver, and PhoneGap Notes.
- MonoTouch and Mono for Android Notes.
- Appcelerator Titanium Studio and SDK Evaluation Notes.