[Dextrose] Sugar WebSDK + Activity Pack

Sebastian Silva sebastian at somosazucar.org
Sat Jun 18 02:58:05 EDT 2011


?"The most important part of a christmas gift is the packaging." - My 
father-in-law (acording to my wife)

Dextrose Activity Pack

As maybe you know, we started giving some maintenance to a collection of 
activities - the Dextrose Activity Pack. These activities will come with 
Dextrose but you will also be able to download them as a pack.

My plan is you will be able to download an activity catalogue.  Think of 
"Add & Remove Activities" like in Ubuntu, except activity bundles may 
come precached so that you can download an entire "Activity Pack" into 
USB or otherwise distribute offline or online as a single download.

Currently ASLO, Sugar Labs's Activity Library does not cover this. 
Obtaining/updating several activities at once over a slow link is a pain.

Deployments could use this mechanism to distribute new activities / updates.

The Catalogue

Looking at the catalogue, I think it should be visually attractive, have 
screenshots, authors, a description. It could even offer a way to 
provide feedback for each activity and/or interact with other users.

In order to provide an interesting package system for deployers and end 
users, I think I need to focus on building this Catalogue, make it 
really nice and user friendly.

*The Sugar WebSDK*

I've decided to develop a framework for the approach I'm taking with the 
Catalogue. The pattern is known as Model-View-Controller and is widely 
used in web industry and other places [0].

In short, we provide a View layer that is powered by Webkit. This layer 
is connected thru events with the Controller layer, which is implemented 
in Python. The Controller interacts with the Model, also in Python, the 
layer which handles data. In turn, the View may be updated. Javascript 
will also be available.

The good part is that all the components are already there. I've been 
doing research and I found Python Webkit DOM Bindings [1]. The point of 
Sugar WebSDK is not making Web .xo bundles, but implementing the GUI 
part of the activity (except for sugar toolbars) as a Webkit window, 
effectively turning it into a GUI toolkit engine. A similar approach was 
taken by "Titanium Appcelerator Desktop SDK" [2] which powers the 
Status.Net Desktop client [3].

I believe the ability to effectively make attractive interfaces in PyGTK 
is pretty scarce. Doing so is also very time consuming. OTOH there is a 
huge, mature offering of talented web designers out there. Embedded 
javascript might allow for interesting visual tricks like jquery's fade 
effects, or even full HTML5 gadgets/widgets.

I expect the Activity ecosystem can make good use of a framework which 
allows to distribute the production of an Activity among a team that 
can include traditional HTML/CSS designers. I know we can.

I intent to make this WebSDK a Sugar Labs project. This framework will 
be shared to the developer community with a tutorial and of course, will 
be used to build the Activity Pack Catalogue.

*/RoadMap/*

    * Initial Hello World of Sugar WebSDK - Beginning of July
    * Interface Design of Activity Pack Catalogue - July
    * Implementation of Catalogue functionality - August

This would be enough for a first "beta" release.

Focus after that should be on polish and documentation for a release of 
both the WebSDK and the Activity Pack Catalogue.

/Help appreciated/

Currently I'm done with researching and ready to implement. If I missed 
something it'd be nice to know, as well as general feedback on the 
WebSDK idea. I especially appreciate prior experience and gotchas that 
may save me time.

Open questions remain with the back-end package functionality: How it 
all interacts with ASLO and the Sugar update mechanism.

I'm inspired partly by some insights Lucian had with Webified. Also 
Alsroot, with the brilliant sweets project.

My impression: ASLO+ project and Sweets packaging system could probably 
be the backend medium term. An implementation reusing Anish's metadata 
updater code is probably the lowest hanging fruit.

Sincerely,

Sebastian
Somos Azucar
Activity Central Activity Team

[0] - http://en.wikipedia.org/wiki/Model_View_Controller
[1] - http://www.gnu.org/software/pythonwebkit/
[2] - http://developer.appcelerator.com/doc/desktop/python
[3] - 
http://status.net/desktop<http://wiki.appcelerator.org/display/guides/Getting+Started+with+Titanium#GettingStartedwithTitanium-TitaniumDesktopSDK>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/dextrose/attachments/20110618/dcd041ba/attachment-0001.html>


More information about the Dextrose mailing list