diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-02-01 11:42:41 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-02-01 11:42:41 (GMT) |
commit | f0c20584e7299c11e6eebad3d8388c4618863e94 (patch) | |
tree | bc226231b1464a40c0fe30d70f631bd12efbc2e4 /README.md | |
parent | 36828cf89af8fa3b49c44286c156e61558a36a43 (diff) |
Generate an html doc
Formatting fixes, no real content changes.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 50 |
1 files changed, 18 insertions, 32 deletions
@@ -1,10 +1,14 @@ -### Premise +# HTML activities - Draft 1 + +## Premise XXX Improve the Sugar OS developer experience + XXX Cross platform sugar activities -> future + XXX What is Sugar. -# Modules +## Modules The framework is composed of various libraries, initially @@ -13,7 +17,7 @@ The framework is composed of various libraries, initially * datastore * collaboration -## Interface description +### Interface description Each module provides one or more interface descriptions which are language independent. A subset of object-oriented languages should be chosen, so that @@ -23,14 +27,14 @@ python and JavaScript it's explicit about types. For example, the datastore interface could look like -class Datastore { - DatastoreObject load() - void save(DatastoreObject object); -} + class Datastore { + DatastoreObject load(); + void save(DatastoreObject object); + } XXX The interface is totally made up! -## Implementation +### Implementation The implementation should be written as much as possible using web languages. But of course we will have the necessity to interact with native system @@ -40,18 +44,18 @@ interfaces and generically bridge to them from JavaScript. All the modules should provide a web fallback, which will allow to run the activity everywhere even if with degraded functionality. -## Code style +### Code style View source is a core part of the sugar experience, so any kind of code obfuscation should be avoided. This includes languages that compiles to JavaScript, like CoffeeScript. -## Namespacing and package management +### Namespacing and package management We are using [volo](http://volojs.org) for namespacing and package management, both in the libraries and in the documentation. -# Activities +## Activities Activities are [open web apps](https://developer.mozilla.org/en-US/docs/Apps), their only specificity is that can make use of our libraries framework. On some @@ -60,7 +64,9 @@ code, configuration or to package the app in a certain way to have it integrate with the system flawlessly. We will provide scripts to fully automate those tasks. -# Random Sugar OS implementation notes +## Implementation notes + +### Sugar OS * We should probably use firefox, as provided by upstream, to run activities. Chrome would probably be an equally good alternative. At some point we could @@ -81,23 +87,3 @@ script to sync them with the sugar-artwork repository. hope using local paths will work in a web activity. * To get full permission I suspect a web app needs to be installed. We will have to figure out if/how we can avoid that. - -# TODO - -Version 0.1 - -* Write an helloworld open web activity. Or maybe just steal a cool one? Might -make for a more shiny demo without any effort :) -* Write a firefox activity using firefox as packaged in the distro. Will -probably require an extension to disable the chrome UI cleanly. -* Write the web activity -> sugar activity script, probably as a volo command. -volo build sugar-os, or something. -* Play with volo to see if there are any road blockers. -* Write the activity library, with a close method. It should be enough to call -window.close() on Sugar OS at least. -* Document how to use volo to pull in the library. -* Write the datastore library. This will involve writing an extension which -will use DBus to communicate with the datastore and making sure we can -communicate between content and extension. -* Write the graphics library with initial toolbar implementation. It will -require writing the script to sync the svg icons from sugar-artwork. |