<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>It's fantastic!!<div>I'm playing with Gears activity! and works really good!<br><br><div><hr id="stopSpelling">Date: Thu, 14 Nov 2013 10:03:09 +0100<br>From: lionel@olpc-france.org<br>To: sugar-devel@lists.sugarlabs.org<br>Subject: [Sugar-devel] A prototype of SugarWeb / SugarAndroid - Technical questions<br><br><div dir="ltr"><br>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">Hi all,</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">Thanks a
lot for your messages regarding my work. Very appreciate to see enthusiasm
here.</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">I'm
opening a different thread to talk about technical issues.</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">Technically
speaking my prototype is three things:</p>
<ul style="direction:ltr;"><li style="vertical-align:middle;" lang="en-US"><span style="font-family:Calibri;font-size:11pt;">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.</span></li><li style="vertical-align:middle;" lang="en-US"><span style="font-family:Calibri;font-size:11pt;">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].</span></li><li style="vertical-align:middle;" lang="en-US"><span style="font-family:Calibri;font-size:11pt;">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, …).</span></li></ul>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">Here are
the major issues I've faced building the prototype (all source code is here
[2]):</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<ul style="direction:ltr;"><li style="vertical-align:middle;" lang="en-US"><span style="font-family:Calibri;font-size:11pt;">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.</span></li><li style="vertical-align:middle;" lang="en-US"><span style="font-family:Calibri;font-size:11pt;">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]</span></li><li style="vertical-align:middle;"><span style="font-family:Calibri;font-size:11pt;" lang="en-US">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, </span><span style="font-family:Calibri;font-size:11pt;" lang="fr">window.webkitRequestAnimationFrame,
…) </span><span style="font-family:Calibri;font-size:11pt;" lang="en-US">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.</span></li><li style="vertical-align:middle;" lang="en-US"><span style="font-family:Calibri;font-size:11pt;">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.</span></li></ul>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">Hope to
have your proposal or feedbacks.</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US">Do not
hesitate to ask me for more.</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"><span> </span>Lionel.</p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"><span> </span></p>
<p style="font-family:Calibri;font-size:11pt;" lang="en-US"> </p>
<p style="font-family:Calibri;font-size:11pt;"><span lang="en-US">[1]
</span><a href="https://build.phonegap.com/" target="_blank"><span lang="fr">https://build.phonegap.com/</span></a></p>
<p style="font-family:Calibri;font-size:11pt;"><span lang="en-US">[2]
</span><a href="https://github.com/llaske/SugarWebUI" target="_blank"><span lang="fr">https://github.com/llaske/SugarWebUI</span></a></p>
<p style="font-family:Calibri;font-size:11pt;"><span lang="en-US">[3]
</span><a href="https://github.com/llaske/SugarWebUI/blob/master/lib/sugar-web/bus.js#L150" target="_blank"><span lang="fr">https://github.com/llaske/SugarWebUI/blob/master/lib/sugar-web/bus.js#L150</span></a></p>
<p style="font-family:Calibri;font-size:11pt;">[4] <a href="https://github.com/llaske/SugarWebUI/blob/master/js/settings.js#L5" target="_blank">https://github.com/llaske/SugarWebUI/blob/master/js/settings.js#L5</a></p>
<p style="font-family:Calibri;font-size:11pt;">[5] <a href="https://github.com/llaske/SugarWebUI/blob/master/js/settings.js#L65" target="_blank">https://github.com/llaske/SugarWebUI/blob/master/js/settings.js#L65</a></p>
<p style="font-family:Calibri;font-size:11pt;">[6] <a href="https://github.com/llaske/SugarWebUI/blob/master/lib/sugar-web/bus.js#L168" target="_blank">https://github.com/llaske/SugarWebUI/blob/master/lib/sugar-web/bus.js#L168</a></p>
<br></div>
<br>_______________________________________________
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel</div></div> </div></body>
</html>