Jump to: navigation, search

EMIWG/MobileWebRoadMap/ExtPoints

< EMIWG‎ | MobileWebRoadMap
Revision as of 10:14, 30 November 2009 by Jdearden.rim.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Mobile Web Extension Points

The purpose of this page is to aid discussion of extension points that will be required for an Eclipse project for mobile Web development. Please feel free to make adjustments and add your own comments.

We first look at the larger question of components required for mobile development in general. Some of these components exist in other projects such as Mobile Tools for Java and Tools for Mobile Linux.

Ideally, we could identify all the different elements required for mobile development for many different target platforms. From this, a general framework could be designed that would allow any mobile development tool to plug itself in and make use of the framework. Having established such a framework, we could identify which elements are unique to mobile development needs and which elements (extension points) could be procured from other projects. Ultimately, we consider what is needed for Mobile Web tooling. Following is a list of items that appear common for mobile development:

 

Common Components for Mobile Tooling

Device management

  • Discovery of available SDKs and device emulators/simulators. The acquiring of device properties and preprocessing symbols. Management of SDKs/devices. (This may be one or more components).

Build stack

  • Preprocessing
  • Compilation
  • Localization
  • Preverification / Validation
  • Obfuscation
  • Signing
  • Packaging

Testing

  • Emulator launching
  • Hardware launching
  • Debugging (emulator, hardware tethered, or remote)
  • Profiling

Deployment

  • Packaging for deployment. This step could involve signing and packaging indicated in the build stack above.


Note that no particular ordering is suggested above. Obviously, some steps will require firm perquisites, but others may not. A generalized mobile tooling framework should impose as few restrictions on extension providers as possible.


Example Build State Machines

Following are sample build state machines from mobile tools:

Mobile Tools for Java

PRE_BUILD
PRE_PREPROCESS
POST_PREPROCESS
PRE_COMPILE
POST_COMPILE
PRE_LOCALIZATION
POST_LOCALIZATION
PRE_PREVERIFICATION
POST_PREVERIFICATION
PRE_PACKAGING
PRE_OBFUSCATION
POST_OBFUSCATION
PRE_SIGNING
POST_SIGNING
POST_PACKAGING
POST_BUILD

Tools for Mobile Linux

?
?


Components Required for Mobile Web Tooling (Widgets)

  • Device management
  • Preprocessing ?
  • JavaScript/CSS/XML/HTML validation ?
  • Compilation
  • Localization
  • Obfuscation ?
  • Signing
  • Packaging
  • Emulator launching
  • Hardware launching
  • Debugging (emulator, hardware tethered, or remote)
  • Profiling
  • Deployment