Line 1: |
Line 1: |
| + | <noinclude> |
| + | [[Category:GSoC |.]] |
| + | [[Category:sugar cordova|.]] |
| + | <!-- You can add categories to tie features back to real deployments/schools requesting them, for example |
| + | [[Category:Features requested by School Xyz|<Feature Name>]] (the |Feature Name option sorts the entry on the category page under the first letter of <Feature Name>). --> |
| + | </noinclude> |
| + | |
| __NOTOC__ <!-- Please fix Section Header lengths to make a usable Table of Contents. (Use other means to format those lines). --> | | __NOTOC__ <!-- Please fix Section Header lengths to make a usable Table of Contents. (Use other means to format those lines). --> |
| + | {{Box|'''Project blog:''' http://sugarcordova.blogspot.in/}} |
| + | |
| + | |
| ==About me== | | ==About me== |
| | | |
Line 33: |
Line 43: |
| This project is aimed at building a new platform on cordova for sugar. It shall help us to build activities for mobile using html,js and css and the interaction with the device's native api can be provided by invoking the javascript libraries. These libraries provide device specific native backing code.We can access the camera functions and many others using javascript alone.So basically the mobile apps can be built in js rather than native code which implies that knowing the native code to built an activity and to interact with device functionality is no longer a neccesity.The technologies required to complete this project are javascript,python programming knowledge and sugar built, cordova platform for developing upon. | | This project is aimed at building a new platform on cordova for sugar. It shall help us to build activities for mobile using html,js and css and the interaction with the device's native api can be provided by invoking the javascript libraries. These libraries provide device specific native backing code.We can access the camera functions and many others using javascript alone.So basically the mobile apps can be built in js rather than native code which implies that knowing the native code to built an activity and to interact with device functionality is no longer a neccesity.The technologies required to complete this project are javascript,python programming knowledge and sugar built, cordova platform for developing upon. |
| | | |
− | To allow the web developers to interact with the device's native functionality, we shall build a communication between the python and javascript part by using the sugar web architecture.Once that is done, we then need to add to the cordova-js project of cordova - which provides the common API's for sending messages and triggering error and success callbacks with native framework responses.
| + | The figure below shows how the hybrid apps help the developers to port their applications to different platforms using the cordova platform and give a view why developing the cordova container for sugar would be useful. |
− | | |
− | [[File:Cordova applications run on different platforms.png|100x200|Figure1]]
| |
− | | |
− | Figure1 shows how the hybrid apps help the developers to port their applications to different platforms using the cordova platform and give a view why developing the cordova container for sugar would be useful.
| |
− | | |
− | The basic architiecture of how the html application are able to run on different platforms using cordova is shown below.
| |
− | | |
− | [[File:Cordova_Html_application_on_different_platforms.jpg|100x200|Figure1]]
| |
| | | |
− | This figure describes the way through which the cordova application can be run on different platforms because of the cordova layer in between which helps the same html applications to communicate with the different native platforms through the cordova javascript API and native libraries in between. As a part of this project our major goal would be to develop the middle layer, which shall help the HTML apps to communicate with the sugar platform beneath.
| + | [[File:Cordova applications run on different platforms.png|center|500px|Figure1]] |
| | | |
| + | Also the application build using HTML,CSS,JS can be designed to run over various devices which in turn provides the developer to develop apps which are universal in nature. This can be achieved by making the design responsive which adapts according to the device's features.This forms a key reason why we would want to develop using HTML,CSS and JS usiing the cordova platform.The concept can be explained by the following image. |
| | | |
| + | [[File:Why_is_cordova_neccesary.jpg|center|500px|Figure2]] |
| | | |
| + | The main part allowing the interoperability of the html apps over different platforms is the cordova libraries that provide the javascript APIs.The high level view of the cordova architecture which allows seamless operation over different platforms can be explained as below.The native platform API's are first developed which communicate with the cordova libraries, these native cordova libraries then communicate with the javascript APIs which the developer uses to develop his HTML, CSS and JS application. |
| | | |
| + | [[File:Cordova_Html_application_on_different_platforms.jpg|center|650px|Figure3]] |
| | | |
| | | |
| + | To allow the web developers to interact with the device's native functionality, we shall build a communication between the python and javascript part by using the sugar web architecture.Once that is done, we then need to add to the cordova-js project of cordova - which provides the common API's for sending messages and triggering error and success callbacks with native framework responses.The high level view of the architecture to be built can be specified as follows.The cordova plugins will interact with the sugar platform through the sugar API (we need to develop that) and with the webview through its native API.This will then provide a javascript API to developers for their apps. |
| | | |
| + | [[File:Sugar_cordova_architecture.jpg|center|650px|Figure4]] |
| | | |
| + | Hence as per the above diagram we shall be building the cordova plugins, sugar api which interacts with the cordova plugins,the native cordova api which interacts with the webview and the javascript API which allows the developers to make their apps directly on HTML,CSS and JS using the device functionality through plugins and customs plugins. |
| | | |
| + | So in a nutshell we shall develop the middle layer, which shall help the HTML apps to communicate with the sugar platform beneath.We shall build the cordova part as well as the native APIs needed to communicate with the cordova middle layer.Finally we shall provide the javascript APIs though which the developers can make their HTML apps for the sugar platform.So the final goal of the project is to provide the javascript APIs for the developers and code some sample apps which depict the usage of those APIs in the real environment |
| | | |
| ===== What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. ===== | | ===== What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. ===== |
− | March 9 – March 15 – Understand the high level architecture of project , go through the code of different platforms, come out with plan for sugar lab platform<br />
| + | April 21 –May 19 – Talk with my mentors and discuss a clear outline of the project, define steps to approach the problem and discuss ways by which we can attack the issue, understand all the technicalities required for the project - the sugar -web architecture through the code, the record activity and other python code on which we shall be developing, start coding in python as required <br /> |
− | March 16 – March 22 – Look into the corresponding code of sugar labs , how the cordova plugins can be made from the present sugar code<br />
| + | May 19 – May 31 – Code up the sugar APIs required for the further building the cordova plugins<br /> |
− | March 23 – March 29 – Understand the sugar code required for implementing the the functionalities <br />
| + | May 31 - June 15 - Code the cordova plugins and the corresponding code in the cordova native APIs , write the javascript APIs<br /> |
− | April 1 – 12 – Buffer Period (Have sessional exams in college)<br />
| |
− | April 13 –May 19 – Talk with my mentors and discuss a clear outline of the project, define steps to approach the problem and discuss ways by which we can attack the issue, understand all the technicalities required for the project - the sugar -web architecture through the code, the record activity and other python code on which we shall be developing, start coding in python as required <br /> | |
− | May 19 – June 15 – Build the architecture for the python-javascript for the cordova container<br /> | |
| June 15 - June 30 - Make a sample activity to show the working of the architecture developed<br /> | | June 15 - June 30 - Make a sample activity to show the working of the architecture developed<br /> |
− | June 31 - Mid Term Examination<br />
| + | '''Mid Term Examination'''<br /> |
− | July 1 - July 20 - Refine the code developed till now, add more functionality and features, remove errors<br /> | + | July 1 - July 15 - add more plugins, improve upon the existing code as required<br /> |
− | July 20 onwards – Document all the new API's of the JavaScript library made till now, add more | + | July 15 - July 31 - write the corresponding activities for the plugins added above and test the work done till now<br /> |
| + | August 1 - August 18 - Document the work, APIs and improve upon the existing project |
| | | |
| ===== Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. ===== | | ===== Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. ===== |
Line 106: |
Line 114: |
| | | |
| ==== Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more? ==== | | ==== Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more? ==== |
− | I have worked with sugar before and that I consider would help me to dive in this project.Also have contributed to some phonegap android apps which are based on cordova.Hence I think I should be able to contribute to this project. | + | I am so fascinated with the project that I would love to work on it even outside GSOC. Would love to contribute to this opensource community which has indeed given the world a beautiful product which helps in learning. |
| + | I have always been attracted to the education world and sugar labs has developed a wonderful solution to the problem the kids face.I see a lot of poor kids out there in my own land and feel sorry for them as they don't have access to the right education tools they must have. Hence, I feel a natural inclination towards this community and indeed wish to bring sugar labs to a much larger scale than is presently where each kid of the world experiences the joy of learning interactively. For somewhere down the line the root cause of all the ill in the world - crimes etc are related to the fact that the kids are not provided with the right set of values and education they must have been taught at that early stage. |
| + | So sugar forms an essential part of this vision and would be great to see the kids in my country using it and benefiting.Hence I wish to contribute to the project as a part of giving back to the world what I have gained from it so far. |
| + | would love to contribute to sugar otherwise also if not as a part of gsoc and specially take up this project as it fascinates me. |
| | | |
| ==== Please include the category tag at the bottom of your page: ==== | | ==== Please include the category tag at the bottom of your page: ==== |
− |
| |
− | [[Category:GSoC ]]
| |