Difference between revisions of "Features/Cordova Container for Sugar"

From Sugar Labs
Jump to navigation Jump to search
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
<noinclude>
 
<noinclude>
 
[[Category:Feature Page Incomplete]]
 
[[Category:Feature Page Incomplete]]
[[Category:Feature|.]]
+
[[Category:Feature|Cordova Container for Sugar]]
 
[[Category:sugar cordova|.]]
 
[[Category:sugar cordova|.]]
 
<!-- You can add categories to tie features back to real deployments/schools requesting them, for example  
 
<!-- You can add categories to tie features back to real deployments/schools requesting them, for example  
Line 7: Line 7:
 
</noinclude>
 
</noinclude>
  
 
+
<!-- All fields on this form are required to be accepted. We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
<!-- All fields on this form are required to be accepted.
 
We also request that you maintain the same order of sections so that all of the feature pages are uniform.  -->
 
  
 
<!-- The actual name of your feature page should look something like: Features/Your Feature Name.  This keeps all features in the same namespace -->
 
<!-- The actual name of your feature page should look something like: Features/Your Feature Name.  This keeps all features in the same namespace -->
  
 
== Summary ==
 
== Summary ==
The cordova container for sugar would help us access all the native device functionalities through the cordova layer.This basically corresponds to the fact that we shall be able to support the cross platform apps. A cordova app which uses some camera feature in android would be able to do same in sugar using the same code.So the developers dont need to recode their apps to get them to the sugar environment.All their apps for the IOS, windows , android etc would work in sugar through the cordova api.
+
The cordova container for Sugar would help us access all the native device functionalities through the cordova layer.This basically corresponds to the fact that we shall be able to support the cross platform apps. A HTML5 cordova app which uses some camera feature in Android would be able to do same in Sugar using the same code. So the developers don't need to recode their apps to get them to the Sugar environment. All their HTML5 apps for the iOS, Windows, Android etc would work in Sugar through the cordova api.
  
 
== Owner ==
 
== Owner ==
* Name: Lionel Laske
+
* Name: Lionel Laské & Puneet Kaur
* Email: lionel@olpc-france.org
+
* Email: lionel@olpc-france.org & puneet.gkaur@gmail.com
  
 
== Current status ==
 
== Current status ==
 
* Targeted release: 0.104
 
* Targeted release: 0.104
* Last updated: 25th July,2014
+
* Last updated: 2th, Sept,2014
* Percentage of completion: XX%
+
* Percentage of completion: 80%
  
 
== Detailed Description ==
 
== Detailed Description ==
Cordova is basically used as a middle layer between the web app and the native source code. This layer abstracts the native source code by providing its own api which can be used to access most of the functionality features of the native source code.So basically we can access the low lying features( features closer to hardware) through the web app.This enables the developers to keep the same code at top and achieve the same functionality from different platforms.Thus, the web app developers dont need to change their app's code to port it to different platforms if the app is made with cordova and the platform on which he has to port supports cordova.Thus, cordova helps us to make cross platforms apps.This will attract the web app developers to sugar community and help them launch their activities in sugar without playing or learning the native bindings.
+
[http://cordova.apache.org/ Cordova] is basically used as a middle layer between the web app and the native source code. This layer abstracts the native source code by providing its own api which can be used to access most of the functionality features of the native source code. So basically we can access the low lying features (features closer to hardware) through the web app. This enables the developers to keep the same code at top and achieve the same functionality from different platforms. Thus, the web app developers dont need to change their HTML5 app's code to port it to different platforms if the app is made with cordova and the platform on which he has to port supports cordova. Thus, cordova helps us to make cross platforms apps. This will attract the web app developers to sugar community and help them launch their activities in sugar without playing or learning the native bindings. A single command line allow a developer to convert an existing HTML5 cordova app into a Sugar app.
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==
Sugar will be benefited from the cordova layer development as more people ( those with knowing only html,js and css) can contribute to the sugar. People can port their apps to the sugar and see them working live.They dont need to learn the gtk stack or sugar native api to build up activities.Sugar will support the cross platforms apps which work across different platforms and hence the sugar audience would have a better experience
+
Sugar will be benefited from the cordova layer development as more people (those with knowing only html,js and css) can contribute to the Sugar. People can port their apps to the Sugar and see them working live. They don't need to learn the gtk stack or Sugar native api to build up activities. Sugar will support the cross platforms apps which work across different platforms and hence the Sugar audience would have a better experience
  
 
== Scope ==
 
== Scope ==
 
<!--What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
 
<!--What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
The changes required on the sugar front would be the support to the cordova plugins. So we basically need to handle the request from the js side and provide the required response back to js. For this we need to build the native side of the various plugins. As we develop support for more plugins , we shall add more code to the sugar front to provide support for them, this is because we wish to abstract the background process of interacting with the lower layer from the user and expose to the user only the cordova api which they can use to develop their app.
+
The changes required on the Sugar front would be the support to the cordova plugins. So we basically need to handle the request from the js side and provide the required response back to js. For this we need to build the native side of the various plugins. As we develop support for more plugins, we shall add more code to the Sugar front to provide support for them, this is because we wish to abstract the background process of interacting with the lower layer from the user and expose to the user only the cordova api which they can use to develop their app.
  
The basic area of change would the apisocket.py through which we communicate with the js side and back. Also we shall add various files which provide the native support for the plugins in a folder named cordova , which is imported in apisocket.py
+
The basic area of change would the apisocket.py through which we communicate with the js side and back. Also we shall add various files which provide the native support for the plugins in a folder named cordova, which is imported in apisocket.py
  
 
==UI Design==
 
==UI Design==
 
<!--Does the feature have a direct impact on the work flow, or does it need a UI? Link here mockups, or add detailed descriptions.-->
 
<!--Does the feature have a direct impact on the work flow, or does it need a UI? Link here mockups, or add detailed descriptions.-->
This feature is an enhanced, it does not have any direct impact on sugar. It doess not need a UI. The UI is depended on the cordova app which in turn is depended on the developer of the cordova app.  
+
This feature is an enhanced, it does not have any direct impact on Sugar. It does not need a UI. The UI is depended on the cordova app which in turn is depended on the developer of the cordova app.  
  
The detailed descript regarding the project can be found here : http://sugarcordova.blogspot.com/  
+
The detailed description regarding the project can be found here: http://sugarcordova.blogspot.com/  
  
 
== How To Test ==
 
== How To Test ==
 
<!--{{:{{PAGENAME}}/Testing}}-->
 
<!--{{:{{PAGENAME}}/Testing}}-->
You can find instructions to test it on your systems here : http://wiki.sugarlabs.org/go/Sugar_Cordova
+
You can find instructions to test it on your systems here: [[Sugar Cordova]]
  
 
== User Experience ==
 
== User Experience ==
 
<!--''If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice.''-->
 
<!--''If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice.''-->
it will help the cross platforms apps to be deployed in sugar activities. So there shall be an increase in activities.Developers would be able to develop activities for sugar more easily ( using only the web languages) and the users shall have the access to a great variety of apps. Say the same app they have in android or ios or windows would be now available in sugar. Hence, sugar would support the apps which run on different platforms so that the sugar users are not deprived of the taste of different applications ( activities for sugar)
+
It will help the cross platforms apps to be deployed in Sugar activities. So there shall be an increase in activities. Developers would be able to develop activities for Sugar more easily (using only the web languages) and the users shall have the access to a great variety of apps. Say the same app they have in Android or iOS or Windows would be now available in Sugar. Hence, Sugar would support the apps which run on different platforms so that the Sugar users are not deprived of the taste of different applications (activities for Sugar)
  
 
== Dependencies ==
 
== Dependencies ==
 
<!--''What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, does your feature depend on completion of another feature owned by someone else or that you would need to coordinate, which might cause you to be unable to finish on time?  Other upstream projects like Python?''-->
 
<!--''What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, does your feature depend on completion of another feature owned by someone else or that you would need to coordinate, which might cause you to be unable to finish on time?  Other upstream projects like Python?''-->
This project also needs to contribute to the cordova repositories apart from sugar side.So we need to co-ordinate with the cordova community and get our additions to the cordova code be accepted. Only then can the sugar platform for cordova can be launched.
+
This project also needs to contribute to the cordova repositories apart from Sugar side. So we need to co-ordinate with the cordova community and get our additions to the cordova code be accepted. Only then can the Sugar platform for cordova can be launched.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
Line 60: Line 58:
  
 
== Documentation ==
 
== Documentation ==
''Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.''
+
<!--''Is there upstream documentation on this feature, or notes you have written yourself?  Has this topic been discussed in the mailing list or during a meeting? Link to that material here so other interested developers can get involved.''-->
 
The topic was proposed as a part of Google Summer of Code.
 
The topic was proposed as a part of Google Summer of Code.
You can find some documentation here :
+
* [[Summer of Code/2014]]
http://wiki.sugarlabs.org/go/Summer_of_Code/2014
+
* [[Summer of Code/2014/sugar cordova]]
http://wiki.sugarlabs.org/go/Summer_of_Code/2014/sugar_cordova
+
* [[Sugar Cordova]]
http://wiki.sugarlabs.org/go/Sugar_Cordova
+
* http://sugarcordova.blogspot.in/
http://sugarcordova.blogspot.in/
 
  
  
 
== Release Notes ==
 
== Release Notes ==
''The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.''
+
<!--''The Sugar Release Notes inform end-users about what is new in the release. An Example is [[0.84/Notes]]. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.''-->
 +
No release notes for this enhancement yet.
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
  
* ''Link to the discussion of this feature on lists.sugarlabs.org''
+
* http://sugarcordova.blogspot.com/
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. -->
+
* http://lists.sugarlabs.org/archive/sugar-devel/
 +
* See [[{{TALKPAGENAME}}|the discussion tab for this feature.]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. -->

Latest revision as of 11:10, 2 September 2014



Summary

The cordova container for Sugar would help us access all the native device functionalities through the cordova layer.This basically corresponds to the fact that we shall be able to support the cross platform apps. A HTML5 cordova app which uses some camera feature in Android would be able to do same in Sugar using the same code. So the developers don't need to recode their apps to get them to the Sugar environment. All their HTML5 apps for the iOS, Windows, Android etc would work in Sugar through the cordova api.

Owner

  • Name: Lionel Laské & Puneet Kaur
  • Email: lionel@olpc-france.org & puneet.gkaur@gmail.com

Current status

  • Targeted release: 0.104
  • Last updated: 2th, Sept,2014
  • Percentage of completion: 80%

Detailed Description

Cordova is basically used as a middle layer between the web app and the native source code. This layer abstracts the native source code by providing its own api which can be used to access most of the functionality features of the native source code. So basically we can access the low lying features (features closer to hardware) through the web app. This enables the developers to keep the same code at top and achieve the same functionality from different platforms. Thus, the web app developers dont need to change their HTML5 app's code to port it to different platforms if the app is made with cordova and the platform on which he has to port supports cordova. Thus, cordova helps us to make cross platforms apps. This will attract the web app developers to sugar community and help them launch their activities in sugar without playing or learning the native bindings. A single command line allow a developer to convert an existing HTML5 cordova app into a Sugar app.

Benefit to Sugar

Sugar will be benefited from the cordova layer development as more people (those with knowing only html,js and css) can contribute to the Sugar. People can port their apps to the Sugar and see them working live. They don't need to learn the gtk stack or Sugar native api to build up activities. Sugar will support the cross platforms apps which work across different platforms and hence the Sugar audience would have a better experience

Scope

The changes required on the Sugar front would be the support to the cordova plugins. So we basically need to handle the request from the js side and provide the required response back to js. For this we need to build the native side of the various plugins. As we develop support for more plugins, we shall add more code to the Sugar front to provide support for them, this is because we wish to abstract the background process of interacting with the lower layer from the user and expose to the user only the cordova api which they can use to develop their app.

The basic area of change would the apisocket.py through which we communicate with the js side and back. Also we shall add various files which provide the native support for the plugins in a folder named cordova, which is imported in apisocket.py

UI Design

This feature is an enhanced, it does not have any direct impact on Sugar. It does not need a UI. The UI is depended on the cordova app which in turn is depended on the developer of the cordova app.

The detailed description regarding the project can be found here: http://sugarcordova.blogspot.com/

How To Test

You can find instructions to test it on your systems here: Sugar Cordova

User Experience

It will help the cross platforms apps to be deployed in Sugar activities. So there shall be an increase in activities. Developers would be able to develop activities for Sugar more easily (using only the web languages) and the users shall have the access to a great variety of apps. Say the same app they have in Android or iOS or Windows would be now available in Sugar. Hence, Sugar would support the apps which run on different platforms so that the Sugar users are not deprived of the taste of different applications (activities for Sugar)

Dependencies

This project also needs to contribute to the cordova repositories apart from Sugar side. So we need to co-ordinate with the cordova community and get our additions to the cordova code be accepted. Only then can the Sugar platform for cordova can be launched.

Contingency Plan

The most of the parts of the project are almost done through and incase you wish to remove the feature so you can simply cut off the portions added in apisocket.py and delete the cordova folder in jarabe.

Documentation

The topic was proposed as a part of Google Summer of Code.


Release Notes

No release notes for this enhancement yet.

Comments and Discussion