Features/Cordova Container for Sugar




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.

Owner

  • Name: Lionel Laske
  • Email: lionel@olpc-france.org

Current status

  • Targeted release: 0.104
  • Last updated: 25th July,2014
  • Percentage of completion: XX%

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.

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

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

The detailed descript 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 : http://wiki.sugarlabs.org/go/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

If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "None necessary, revert to previous release behaviour." Or it might not. If your feature is not completed in time, we want to assure others that other parts of Sugar will not be in jeopardy.

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.

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.

Comments and Discussion