<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>