| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
|
|
|
| $pageTitle = "";
|
| $pageKeywords = "";
|
| $pageAuthor = "";
|
|
|
| ob_start();
|
| ?>
|
| <div id="maincontent">
|
| <div id="midcolumn">
|
|
|
| <h1>
|
| FireFly DevKit - The Mobile Web Developer Kit
|
| </h1>
|
|
|
| <?php
|
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");
|
| generate_header("Blinki formerly FireFly");
|
| ?>
|
|
|
| <h2>
|
| 1. Introduction
|
| </h2> |
| |
| <p> |
| The FireFly DevKit Project is a proposed open source subproject under the |
| <a href="http://www.eclipse.org/dsdp" id="p-s_" title="Device Software Development Platform">Device |
| Software Development Platform</a> (DSDP). This proposal is in the Project |
| Proposal Phase, as defined in the |
| <a href="http://www.eclipse.org/projects/dev_process">Eclipse Development |
| Process document</a>, and is written to declare its intent and scope. This |
| proposal is written to solicit additional participation and input from the |
| Eclipse community. You are invited to comment on and/or join the project. |
| Please send all feedback to the |
| <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.firefly" title="http://www.eclipse.org/newsportal/thread.php?group=eclipse.firefly">http://www.eclipse.org/newsportal/thread.php?group=eclipse.firefly</a> |
| newsgroup. </p> |
|
|
| <p> |
| The FireFly DevKit project intends to develop an extensible mobile |
| web developer kit for use in creating and testing traditional and |
| next-generation mobile RIA applications. |
| The new generation of high-speed data networks and powerful mobile |
| internet devices such as smartphones equipped with web browsing |
| capabilities like the iPhone are enabling a dramatic new level of |
| personal and social connected-ness for millions of mobile users. |
| These users effectively take the web with them wherever they go. |
| Unfortunately much of the web content and services currently |
| available to mobile users is designed for use on laptops and work |
| stations and is generally not well suited for use on the much smaller |
| mobile internet devices. The FireFly DevKit will help address the |
| development challenges that web designers and programmers face when |
| modernizing existing web content and developing new innovative web |
| applications and services for use on mobile internet. </p>
|
|
|
| <h2>
|
| 2. Scope
|
| </h2>
|
| <p>
|
| The FireFly mobile web developer kit will consist of the following
|
| extensible frameworks and toolkits, and equally important,
|
| educational resources:
|
| <ul>
|
| <li>
|
| Eclipse Tool Frameworks
|
| <ul>
|
| <li>
|
| Mobile Web Previewer Framework (<a href="#section2_1">2.1</a>)
|
| </li>
|
| <li style="margin-bottom:10pt">
|
| Mobile Web Debugger Framework (<a href="#section2_2">2.2</a>)
|
| </li>
|
| </ul>
|
| </li>
|
| <li style="margin-bottom:10pt">
|
| Mobile Web Rendering Kit (<a href="#section2_3">2.3</a>)
|
| </li>
|
| <li>
|
| Mobile Rich Internet Application Services
|
| <ul>
|
| <li>
|
| Device Service Access Framework (<a href="#section2_4">2.4</a>)
|
| </li>
|
| <li style="margin-bottom:10pt;">
|
| Deployment Framework (<a href="#section2_5">2.5</a>)
|
| </li>
|
| </ul>
|
| </li>
|
| <li>
|
| Educational Resources (<a href="#section2_6">2.6</a>)
|
| </li>
|
| </ul>
|
| </p>
|
| <p> |
| It seems that the most successful Eclipse projects include developer |
| tools at some level; the FireFly DevKit project is no exception. Two |
| tool frameworks will be developed that enable mobile web developers |
| to visualize and debug mobile web applications from within an |
| Eclipse-based IDE. Beyond this the FireFly project will develop |
| next-generation technologies and frameworks to support the creation of |
| mobile web applications that look and behavior similarly to native |
| applications and are able to interact with device services such as |
| GPS, accelerometers and personal data. Lastly, unlike many OSS |
| projects, educational resources and community development will be |
| given a level of prominence at least as high as code development. We |
| plan to develop how-to articles, tutorials, best practice guidelines |
| and webinars for the mobile web developer community. Additionally we |
| will provide architectural, design and API documentation for |
| developers wishing to extend any of the FireFly frameworks. |
| </p>
|
| <p> |
| Initially, example implementations of the project frameworks will be |
| provided for the iPhone. As resources become available, examples for |
| the G1-Android platform will also be developed. Additionally, the |
| project will actively recruit and accept contributions for other |
| mobile platforms such as Symbian, Windows Mobile and others. |
| </p>
|
| <p>
|
| The following diagram provides a graphic organization of the FireFly
|
| DevKit components.
|
| </p>
|
| <p>
|
| <img src="diagram.gif">
|
| </p>
|
| <p>
|
| Each of these components is described in more detail in the remainder
|
| of this section. For a discussion of what is not in scope see <a href="#section_3">Section
|
| 3</a>.
|
| </p>
|
| <h3>
|
| <a id="section2_1"/>2.1 Mobile Web Previewer Framework</a>
|
| </h3>
|
| <p>
|
| When programming, most developers dislike switching between
|
| unintegrated tools and environments. Frequent change of focus
|
| interrupts their flow of concentration, reduces their efficiency and
|
| makes them generally grumpier :). For mobile web application
|
| development, web designers and programmers need to quickly and
|
| seamlessly perform incremental development and testing directly
|
| within an IDE environment rather than switching from an IDE to a
|
| device testing environment and back again. The Mobile Web Previewer
|
| Framework is an extensible Eclipse tools framework for the creation
|
| of mobile device emulators specifically for previewing web content in
|
| a realistic WYSIWYG manner. This framework will enable developers to
|
| preview web content and services in an emulated mobile device web
|
| browser from within an Eclipse IDE. Some of the key features of the
|
| Previewer Framework will include:
|
| </p>
|
| <ul>
|
| <li>
|
| an embeddable WebKit browser component and mobile Firefox when made
|
| public
|
| </li>
|
| <li>
|
| device description and layout engine
|
| </li>
|
| <li>
|
| skin support for creating full sized, photo realistic device
|
| faceplates
|
| </li>
|
| <li>
|
| simulation of device orientation
|
| </li>
|
| <li>
|
| simulation of touch screen gestures and events
|
| </li>
|
| <li>
|
| simulation of browser user-agents
|
| </li>
|
| <li>
|
| extensible Eclipse plugin model for incorporating new browser
|
| components and device descriptions
|
| </li>
|
| <li>
|
| exemplary iPhone previewer will be provided to support framework
|
| testing and to serve as a guide for developers creating custom
|
| previewers. Additional device previewers will be considered from
|
| other contributors.
|
| </li>
|
| </ul>
|
| <p>
|
| A key expectation of this framework is that it will enable mobile
|
| internet device providers and tool developers to rapidly create
|
| custom previewers for the growing population of new devices as well
|
| as existing devices.
|
| </p>
|
|
|
| <h3>
|
| <a id="section2_2"/>2.2 Mobile Web Debugger Framework</a>
|
| </h3>
|
| <p>
|
| Efficient mobile web application development requires the support of
|
| debugging tools. The Mobile Web Debugger Framework will provide APIs
|
| and a pluggable implementation model for supporting the debug
|
| capabilities of multiple mobile web browsers. The framework will
|
| integrate with the Eclipse debugger infrastructure and provide
|
| developers insight into the execution state of their mobile web
|
| content and dynamic UI behaviors. Initial development effort will
|
| provide debugging support for simulated mobile web environments
|
| provided by previewers built on top of the Mobile Web Previewer
|
| Framework. Following that, support will be provided for remote
|
| inspection and debugging directly on the device in its mobile web
|
| browser. Key features of this framework will include:
|
| </p>
|
| <ul>
|
| <li>
|
| execution breakpoints
|
| </li>
|
| <li>
|
| execution stepping
|
| </li>
|
| <li>
|
| inspection of current web DOM content
|
| </li>
|
| <li>
|
| console output support
|
| </li>
|
| <li>
|
| local and remote debugger support for WebKit
|
| </li>
|
| <li>
|
| local debugger support for the Mozilla component
|
| </li>
|
| </ul>
|
|
|
| <h3>
|
| <a id="section2_3"/>2.3 Mobile Web Rendering Toolkit</a>
|
| </h3>
|
| <p>
|
| The costs and complexity associated with native mobile application
|
| development, especially across multiple mobile platforms, can be very
|
| high. There is an emerging trend to extend the well established web
|
| programming model as an alternative strategy for developing mobile
|
| applications. To support this strategy mobile web application
|
| designers are challenged to provide web user interfaces that
|
| replicate the more native look and feel of the host mobile device.
|
| For example, imagine a web application that runs on the iPhone's
|
| Safari browser yet looks and behaves similar to a native iPhone
|
| application. To help simplify the development of this type of mobile
|
| web application we plan to develop an extensible web rendering
|
| toolkit that provides device-specific widget rendering and behaviors.
|
| </p>
|
|
|
| <p>
|
| The toolkit will be composed of a core tier and an API programming
|
| tier. The core tier will implement the device-specific widget
|
| presentation and interaction customizations using HTML, CSS and
|
| JavaScript technologies. The API tier will provide a
|
| device-independent web programming API. Both JavaScript and JSP
|
| versions of the API programming tier are planned. We will solicit
|
| community contributions of additional implementations of the API
|
| using alternative programming models such as PHP and Java Server
|
| Faces.
|
| </p>
|
|
|
| <h3>
|
| <a id="section2_4"/>2.4 Mobile Device Services Access Framework</a>
|
| </h3>
|
| <p> |
| Rich internet application (RIA) technologies are rapidly improving |
| and will ultimately introduce a new wave of innovative mobile web |
| applications that marry the best of the web with device-resident |
| information and device services. The Mobile Device Services Access |
| Framework will provide a technology bridge to enable mobile web |
| applications access to key device services. Example services |
| available on many mobile devices include global position measurement, |
| accelerometer sensors, camera instrumentation and vibration |
| generation. Common APIs and web components for interacting with |
| primary services will be provided along with a device-side pluggable |
| driver model. An example iPhone implementation and possibly a |
| G1-Android implementation of the framework will be provided to |
| support framework testing and to serve as a guide for web application |
| developers. Additional contributions for other devices will be |
| accepted. |
| </p>
|
|
|
| <h3>
|
| <a id="section2_5"/>2.5 Mobile Device Web Application (Short-cut) Installer Framework</a>
|
| </h3>
|
| <p> |
| The line where the desktop stops and the web starts is becoming |
| increasingly blurred as rich internet application technologies |
| mature. Many mobile internet devices will support the creation of |
| application short-cuts that will launch the device's web browser with |
| a target web application URL and optional application branding and configuration |
| parameters. The developer kit will provide a common API and framework |
| for the creation of custom device-side web browser application |
| short-cuts. Device-specific implementations will be supported by the |
| framework using the Eclipse plugin pattern. An example iPhone |
| implementation and possibly a G1-Android implementation is |
| planned to support testing of the framework and to demonstrate how |
| other device specific installers may be developed. |
| </p>
|
|
|
| <h3>
|
| <a id="section2_6"/>2.6 Educational Resources</a>
|
| </h3>
|
| <p>
|
| Educational resources and community development are vital for the
|
| success of this project. We plan to develop a series of how-to
|
| articles, tutorials, best practice guidelines and present webinars
|
| for the FireFly community. Additionally we plan to provide
|
| architecture, design and API documentation for developers wishing to
|
| extending any of the FireFly frameworks.
|
| </p>
|
|
|
| <h2>
|
| <a id="section_3"/>3. Out of Scope</a>
|
| </h2>
|
| <p> |
| The FireFly DevKit objectives are to provide a common solution base |
| for the creation of key mobile web developer tools, common web UI |
| rendering frameworks for mobile web devices and bridging |
| technology to enable rich internet applications access to device-side |
| services. Scope limitations of this project include the following: |
| </p>
|
| <ul>
|
| <li>
|
| <p>
|
| IDE Components vs an IDE - This project will provide some of the key
|
| enabling mobile web technologies and development tools on the
|
| Eclipse platform. These modular components may be combined with
|
| other Eclipse-based projects and products to produce a complete
|
| mobile web end-user IDE product. Yet there are no plans to expand
|
| the project scope to the level of a standalone mobile web
|
| application IDE.
|
| </p>
|
| </li>
|
| </ul>
|
| <ul>
|
| <li>
|
| <p>
|
| Limited Server-side Concerns - While this project is open to
|
| supporting the development of server-side UI technologies such as
|
| PHP and JSP custom tag libraries as part of its mobile web UI
|
| toolkit concentration, there are no plans to address server-side
|
| hosting concerns such as JEE web application packaging and
|
| application server deployment.
|
| </p>
|
| </li>
|
| <li>
|
| <p> |
| No Project Model Support Requirement - There is no developer tool |
| project structure requirement in scope for this project. Therefore |
| the technologies and frameworks of this project will be developed as |
| independent and agnostic to any specific IDE project |
| structure as much as possible. The FireFly project will provide |
| guidance and support to other Eclipse projects that seek to reuse |
| the work products of this project. |
| </p>
|
| </li>
|
| <li>
|
| <p> |
| No Native Device Application Development Tools - This project will |
| concentrate on supporting web-centric applications. No native |
| application development efforts are planned beyond those required |
| to support the service access and web short-cut installation |
| frameworks. |
| <br>
|
| </p>
|
| </li>
|
| </ul>
|
|
|
| <h2>
|
| 4. Organization
|
| </h2>
|
| <p>
|
| The FireFly DevKit Project is proposed as an Eclipse subproject under
|
| the
|
| <a href=http://www.eclipse.org/dsdp / id=p-s_
|
| title="Device Software Development Platform">Device Software
|
| Development Platform</a> (DSDP) due to the expertise and mobile device |
| industry support that shares an interest and desire for the success of |
| this project. The project leadership plans to join the Mobile Working |
| Group and to work closely with its participants. |
| Genuitec, as the submitter of this proposal, welcomes interested |
| parties to use the FireFly DevKit newsgroup to discuss this proposal |
| and to request inclusion as an interested party. |
| </p>
|
|
|
| <p>
|
| The proposed project members include:
|
| </p>
|
|
|
| <h3>
|
| 4.1 Initial Committers
|
| </h3>
|
| <ul>
|
| <li>
|
| Wayne Parrott, Genuitec - project lead
|
| </li>
|
| <li>
|
| Todd Williams, Genuitec - evangelism and development
|
| </li>
|
| <li>
|
| Brian Fernandes, Genuitec - development
|
| </li>
|
| <li>
|
| Eugene Ostroukhov, Genuitec - development
|
| </li>
|
| <li>
|
| Greg Amerson, Genuitec - development & educational resources
|
| </li>
|
| <li>
|
| Jens Eckels, Genuitec - evangelism & marketing
|
| </li>
|
| <li>
|
| Pete Carapetyan, Genuitec - development & educational resources
|
| </li>
|
| <li>
|
| Riyad Kalla - Genuitec - educational resources
|
| </li>
|
| <li>
|
| Rosario Aguilar, Genuitec - web design
|
| </li>
|
| </ul>
|
|
|
| <h3>
|
| 4.2 Interested Parties
|
| </h3>
|
| <ul>
|
| <li>
|
| Motorola
|
| </li> |
| <li> |
| ICEsoft Technologies, Inc. |
| </li>
|
| </ul>
|
|
|
|
|
| <h3>
|
| 4.3 Project Mentors
|
| </h3>
|
| <ul>
|
| <li>
|
| Doug Gaff, DSDP PMC Lead
|
| </li>
|
| <li>
|
| Gunnar Wagenknecht
|
| </li>
|
| </ul>
|
|
|
| <h2>
|
| 5. Relationship to other Eclipse Entities
|
| </h2>
|
| <p>
|
| This project is expected to provide key technologies, frameworks and
|
| tools that may be incorporated by other Eclipse projects. A high
|
| project priority will be collaboration with the DSDP leadership, the
|
| Mobile Working Group and DSDP subprojects that have overlapping or
|
| complimentary interests.
|
| </p>
|
| <h2>
|
| 6. Tentative Plan
|
| </h2>
|
| <p>
|
| The initial goal of this project is to provide an incubation release
|
| with the Eclipse 3.5 platform release.
|
| </p>
|
|
|
| <h2>
|
| 7. Code Contributions
|
| </h2>
|
| <p>
|
| Genuitec tentatively plans to release the source code to an Eclipse
|
| Java WebKit browser component, a device preview framework and
|
| debugger implementation. An exemplary iPhone simulator may also be
|
| included.
|
| </p>
|
|
|
| <?php
|
| $html = ob_get_contents();
|
| ob_end_clean();
|
|
|
| # Generate the web page
|
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
|
| ?> |