| <?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);
 | 
 | ?> |