EMIWG/MobileWebRoadMap/ExtPoints
Contents
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