<!-- 
	This document is provided as a template along with some guidance for creating
	your project proposal. This is just a template. Feel free to change it as
	you see fit (add sections, remove section). We feel, however, that the
	suggestions represented in this document represent the reasonable minimum
	amount of information to move forward.
	
	Please keep the formatting in this document simple. Please do not edit 
	this document in Microsoft Word as it adds huge piles of markup that make
	it difficult to restyle.
	
	More information is available here:
	
	http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
	
	Direct any questions about this template to emo@eclipse.org
 -->

<html>
<head>

<!-- 
Tools for Mobile Web
 -->

<title>Tools for Mobile Web</title>
</head>

<body>
<p>The Tools for Mobile Web project is a proposed open source project under the <a
	href="http://www.eclipse.org/projects/project_summary.php?projectid=dsdp.seqoyah">Sequoyah
Container Project</a>.</p>

<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the 
<a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=162">Sequoyah</a> Eclipse Forum.</p>

<h2>Background</h2>

<p>Historically, mobile tools providers have been customizing desktop web tools in a proprietary way
to create their tools.
</p><p>
This project aims to seed the Eclipse community with a complete web tools solution, including editing, 
building, deploying and debugging. It also includes a reference target - 
<a href="http://developer.symbian.org/wiki/index.php/Web_Runtime_Widgets_in_a_Nutshell">
Web Runtime</a> - with
complete preview and debug capabilities.
</p>
<h2>Scope</h2>

<p>
	Tools for Mobile Web (TMW) will be a basis for web development tooling for mobile devices. It
	will leverage other projects, such as JSDT, for generic development. Since TMW is focusing one
	of the types of the mobile developer tooling, it will be a sub-project of Sequoyah. For Web 
	applications, TMW will add 
	functionality for mobile specific features like previewing, skinning, configuration, device 
	deployment, and debugging.</p><p>
	This project will:</p>
<ul>
<li>Identify common requirements for Tools for Mobile Web</li>
<li> Provide set of extensible frameworks that will enable creation of the IDEs for specific mobile runtimes.</li>
<li> Will provide a unified architecture that will improve compatibility between offerings from different vendors.</li>
<li>Leverage existing Eclipse project and frameworks.</li>
</ul>
<h4>Relation to Blinki</h4>
Although, Tools for Mobile Web and Blinki have a bit of overlap, they are mostly separate, but complementary projects.
<br><br>
Thinking of the differences between ATF and JSDT provides context. In the case of 
the two projects,  Blinki would be ATF, providing run-time and debugging services while 
TMW will provide development-time services including (but not limited to):
<ul>
<li>Web application project creation and initial contents.</li>
<li>Mobile runtime-specific extensions for JSDT (our contribution will include support for WRT 
API and we are investigating adding others like PhoneGap, BONDI, JIL, etc.)</li>
<li>Application packaging (TMW initially supports WRT packaging) and deployment (TMW 
supports deployment using Bluetooth)</li>
</ul>
TMW's preview and debugging currently relies on external Chrome installation and is based on Chrome Developer Tools. Currently Blinki focuses on better integration of the Chrome/WebKit with Eclipse. From the very start we hoped to replace external Chrome with Blinki's code (atm we really need code on all three major desktop platforms).
<br><br>
Blinki's Chrome/WebKit integration has broader potential than only for mobile tools. Tools for Mobile Web under Sequoyah is focused specifically on mobile device developers' tooling needs.

<h4>Why in Sequoyah and not in WTP?</h4>
WTP provides general (platform and runtime-agnostic) web application development). Following things are in scope of TMW that do not fit under WTP:
<ul>
<li>Support for platform-specific APIs (at this moment most mobile platforms have their 
own API for things like address book access, camera management, etc.)</li>
<li>Packaging for mobile devices and deployment to mobile devices.</li>
<li> Application preview (simulation)</li>
</ul>
These things fit better under DSDP umbrella as there is certain overlap with other DSDP projects (i.e. device emulator can be used for both MTJ and TMW development).
<br><br>
TMW builds on top of WTP leveraging and extending its source editing tools and JSDT.

<h2>Description</h2>

Mobile web runtimes are based around existing and widely adopted standards like HTML, AJAX and JavaScript. 
Almost every mobile platform has proprietary APIs, packaging requirements and hardware capabilities. The goal of 
TMW is to enable creation of tools that would leverage individual advantages of mobile platforms and lower 
learning curve for application developers.<br>
<p>
TMW provide features to enable the creation, editing, previewing, debugging and testing of TMW
 applications.&nbsp; The tools leverage edit and build capabilities from JSDT, debugging capabilities from Chromium, and preview capabilities from XULRunner.<br>
</p><p>
More information about the development and structure can be found 
<a href="http://developer.symbian.org/main/source/packages/package/index.php?pk=263"> 
here</a></p><p>
More information about using the tools can be found  
<a href="http://developer.symbian.org/wiki/index.php/Symbian_Web_Development_Tools_(WRT_Tools)"> 
here</a>
</p>
<h2>Initial Contribution</h2>

<ul>
<li>org.symbian.tools.wrttools contains sources for project builder, project nature, markers, and project wizards</li>
<li>org.symbian.tools.wrttools.debug.core contains sources for WRT Debugger component</li>
<li>org.symbian.tools.wrttools.doc.WebDeveloper contains Web Developer's Library Documentation</li>
<li>org.symbian.tools.wrttools.doc.WRTKit contains WRTKit documentation</li>
<li>org.symbian.tools.wrttools.previewer contains sources for the WRT Previewer</li>
<li>org.symbian.tools.wrttools.product contains WRT IDE product plug-in</li>
<li>org.symbian.tools.wrttools.feature contains feature plug-in</li>
<li>org.chromium.debug.core contains sources for Chromium debugger core package</li>
<li>org.chromium.debug.ui contains sources for Chromium debugger UI package</li>
<li>org.chromium.sdk contains sources for Chromium SDK</li>
<li>org.w3c.css contains CSS Validator plug-in</li>
</ul>
 
<h2>Legal Issues</h2>

Most of the contributed code is licensed with EPL.<br>
<br>
There are three components with different licenses:<br>
<font size=3><br>
</font>
<table border=1 bordercolor=#000000 cellpadding=3 cellspacing=0 id=eeld width=100%>
  <tbody>
  <tr>
    <td width=33.333333333333336%>
      <font size=3>Library</font>
    </td>
    <td width=33.333333333333336%>
      <font size=3>Vendor</font>
    </td>
    <td width=33.333333333333336%>
      <font size=3>License</font>
    </td>
  </tr>
  <tr>
    <td width=33.333333333333336%>
      <font size=3>CSS Validator</font>
    </td>
    <td width=33.333333333333336%>
      <font size=3>W3C Consortium</font>
    </td>
    <td width=33.333333333333336%>
      <font size=3>W3C</font>
    </td>
  </tr>
  <tr>
    <td width=33.333333333333336%>
      Google Chrome Developer Tools
    </td>
    <td width=33.333333333333336%>
      The Chromium Authors<br>
    </td>
    <td width=33.333333333333336%>
      New BSD
    </td>
  </tr>
  <tr>
    <td width=33.333333333333336%>
      XULRunner
    </td>
    <td width=33.333333333333336%>
      Mozilla Foundation
    </td>
    <td width=33.333333333333336%>
      Mozilla tri-license
    </td>
  </tr>
  </tbody>
</table>
<br>
 
<h2>Committers</h2>

<p>The following individuals are proposed as initial committers to the project:</p>

<ul>
	<li><a
	href="http://eclipseblog.ostroukhovs.com/">Eugene Ostroukhov</a>, <a
	href="http://developer.symbian.org/">Symbian Foundation</a></li>
	<li>Paul Beusterien, <a
	href="http://developer.symbian.org/">Symbian Foundation</a></li>
	<li>Paddy Byers, Aplix</li>
	<li>Anselm Garbe, Aplix</li>
</ul>


<h2>Mentors</h2>

<p>The following members will mentor this
project:</p><ul>
	<li><a
	href="http://www.eclipse.org/projects/lists.php?list=projectsforcommitter&param=ecloninger">
	Eric Cloninger</a></li>
	<li> <a
	href="http://www.eclipse.org/projects/lists.php?list=projectsforcommitter&param=ndai"">
	Naci Dai</a> </li>
	<li> <a
	href="http://www.eclipse.org/projects/lists.php?list=projectsforcommitter&param=dschaefer"">
	Doug Schaefer</a> </li>
</ul>


<h2>Interested Parties</h2>


<p>The following individuals, organisations, companies and projects have 
expressed interest in this project:</p>

<ul>
	<li>Dan Podwall, Nokia</li>
	<li>Ken Wallis, Research In Motion Limited</li>
	<li>Jon Dearden, Research In Motion Limited</li>
	<li>Nitin Dahyabhai, IBM</li>
	<li>Sachin Anand, Sony Ericsson</li>
	<li>Andr&eacute; Charland, Nitobi</li>
	<li>Paddy Byers, Aplix</li>
</ul>

<h2>Project Scheduling</h2>

Initial contribution will be made at project approval

<h2>Changes to this Document</h2>

<!-- 
	List any changes that have occurred in the document here.
	You only need to document changes that have occurred after the document
	has been posted live for the community to view and comment.
 -->

<table>
	<tr>
		<th>Date</th>
		<th>Change</th>
	</tr>
	<tr>
		<td>02-April-2010</td>
		<td>Document created</td>
	</tr>
		<tr>
		<td>14-April-2010</td>
		<td>Updated to address Wayne Beaton's feedback</td>
	</tr>
	</tr>
		<tr>
		<td>10-May-2010</td>
		<td>Add Blinki and WTP sections from email threads. Update Interested Parties and Mentors</td>
	</tr>
	<tr>
		<td>01-July-2010</td>
		<td>Add Paddy and Anselm as Initial Committers</td>
	</tr></table>
</body>
</html>