[Dextrose] Sugar WebSDK + Activity Pack
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.
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 .
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
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 . 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"  which powers the
Status.Net Desktop client .
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
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.
* 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.
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.
Activity Central Activity Team
 - http://en.wikipedia.org/wiki/Model_View_Controller
 - http://www.gnu.org/software/pythonwebkit/
 - http://developer.appcelerator.com/doc/desktop/python
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Dextrose