[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