[Sugar-devel] A prototype of SugarWeb / SugarAndroid - Technical questions

Lionel Laské lionel at olpc-france.org
Thu Nov 14 04:03:09 EST 2013


Hi all,



Thanks a lot for your messages regarding my work. Very appreciate to see
enthusiasm here.

I'm opening a different thread to talk about technical issues.



Technically speaking my prototype is three things:

   - A Sugar Web Activities that mimic the desktop. This "activity" use the
   Sugar Web Framework (toolbar, xocolor, …) and is written using Enyo
   Framework (not the better JavaScript framework but it's my favorite one
   :-). The framework is "dynamic" so adding new activities is very easy (see
   here [4]). In fact, I hope to integrate a mechanism to install new activity
   from the desktop.
   - A directory name "activities" where I've unzip the content of .XO
   files for all web activities currently on Sugar App Store. The desktop
   activity just switch from an activity to another [5].
   - A PhoneGap encapsulation that allow to generate the Android APK. BTW
   because I'm using PhoneGap Build [1], it will also generate other platforms
   (iOS, webOS, …).



Here are the major issues I've faced building the prototype (all source
code is here [2]):



   - Multiple copy of Sugar Framework in each activity. My work was mostly
   a way to group existing Sugar Web activities. BTW I need to upgrade a part
   of the Sugar Web Framework to implement few features (Stop button, XO
   Colors, …). This upgrade concern today the bus.js file (most of the hack is
   here [3]) but this file is copied in each web activities :-( So I had to
   upgrade this file in each activity directory. I think we must find a way to
   allow the Sugar Web Framework to be deployed/referenced one time only.
   - Server side stuff. Today the Sugar Web Framework use Web Sockets to
   communicate with the system layer. It's good when running on Sugar but it's
   not a good idea in a Web-Browser only world because you can't have a
   process to listen Web Sockets. I think we should imagine a way to have a
   Sugar Web Framework that could work in stand-alone mode (without any server
   side). For example by using directly LocalStorage instead of waiting for a
   bus call. It's what I've done to retrieve xocolor [6]
   - HTML5 compatibility issues. Running existing Sugar Web Activities on
   tablets (XO Tablet and Samsung GalaxyTab) raise some issues regarding HTML5
   compatibility. Specifically some features (CustomEvent object, Blob
object, window.webkitRequestAnimationFrame,
   …) used by the framework or by activities don't work everywhere due to
   WebKit compatibility. I think we should isolate these features (or avoid
   using it). Of course one another major issue is that the screen size could
   be very different from a device to another. Unfortunately activities are
   often linked to the XO screen size.
   - Environment. The Sugar Web Framework use an environment object
   (env.js), it seems to be used to detect the current platform but that I
   don't understand exactly how it works. Any explication regarding this point
   will be appreciate.



Hope to have your proposal or feedbacks.

Do not hesitate to ask me for more.



        Lionel.





[1] https://build.phonegap.com/

[2] https://github.com/llaske/SugarWebUI

[3]
https://github.com/llaske/SugarWebUI/blob/master/lib/sugar-web/bus.js#L150

[4] https://github.com/llaske/SugarWebUI/blob/master/js/settings.js#L5

[5] https://github.com/llaske/SugarWebUI/blob/master/js/settings.js#L65

[6]
https://github.com/llaske/SugarWebUI/blob/master/lib/sugar-web/bus.js#L168
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20131114/a03bd8b3/attachment.html>


More information about the Sugar-devel mailing list