Difference between revisions of "Activity Team/Resources"

From Sugar Labs
Jump to navigation Jump to search
(Added new link to Almanac)
(→‎References: Update Almanac link.)
Line 84: Line 84:
 
* http://www.pygtk.org/docs/pygobject/index.html PyGObject API reference.  Contains a few important things missing from the PyGTK API such as timers and idle callbacks.
 
* http://www.pygtk.org/docs/pygobject/index.html PyGObject API reference.  Contains a few important things missing from the PyGTK API such as timers and idle callbacks.
 
* http://api.sugarlabs.org/ The official Sugar API documentation (quite sparse but includes all the source code).
 
* http://api.sugarlabs.org/ The official Sugar API documentation (quite sparse but includes all the source code).
* http://wiki.laptop.org/go/Sugar_almanac Detailed Sugar API overview.  Quite in depth and offers answers to common questions.
+
* http://sugarlabs.org/go/DevelopmentTeam/Almanac Detailed Sugar API overview.  Quite in depth and offers answers to common questions.
 
* http://pygstdocs.berlios.de/ Python GStreamer bindings.
 
* http://pygstdocs.berlios.de/ Python GStreamer bindings.
 
* http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines The design behind the Sugar interface.  Useful when planning your activity.
 
* http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines The design behind the Sugar interface.  Useful when planning your activity.

Revision as of 15:08, 18 February 2009

Team Home   ·   Join   ·   Contacts   ·   Resources   ·   FAQ   ·   Roadmap   ·   To Do   ·   Meetings

Getting started in Activity development

If you have no experience developing Sugar activities, these resources will help get you started.

Setting up a Sugar environment

If you use Linux, your best bet is to install sugar-jhbuild. You will be able to develop in your native environment, treating Sugar as just another desktop application.

If you run MacOS X or Windows, you will need to set up an emulator. For Mac OS X, see Supported_systems/Mac. For Windows, see Supported_systems/Windows.

To develop efficiently using an emulator or a secondary machine running Sugar natively (such as an OLPC XO), find an editor which supports editing files over a SFTP connection. Komodo Edit is a good example.

Python Reference & Tutorials

Python is the language Sugar is written in and is also used by most activities. If you don't already know Python well, you should familiarize yourself with it before continuing.

PyGTK Reference & Tutorials

PyGTK is the user interface toolkit used by Sugar activities. Bookmark these two links as you will reference them frequently during development.

The following sections of the PyGTK tutorial are most relevant to activity development.

  • 1. Introduction
  • 2. Getting Started
  • 3. Moving On
  • 4. Packing Widgets
  • 5. Widget Overview
  • 6. The Button Widget
  • 7. Adjustments
  • 8. Range Widgets
  • 9. Miscellaneous Widgets
  • 10. Container Widgets
  • 12. Drawing Area

Sugar Activities & API

This tutorial will introduce you to the basics of creating activities.

Bookmark these two links. The first contains the official API documentation for Sugar. Though it is currently quite sparse, the source code is included with the documentation and it's useful to have that at your fingertips. The second is a detailed module-by-module overview of the Sugar API with answers to common questions.

Cairo Graphics

Cairo is the graphics library used in Sugar. The tutorial is a good introduction to the API as well as vector graphics programming in general.

Sugar Human Interface Guidelines (HIG)

These pages give a good introduction to the thought process behind the Sugar environment and will help a lot when designing your activity.

JSON introduction

JSON is a data format commonly used to store activity data in the Journal.

Git introduction

Git is the version control software used by Sugar Labs. It is a distributed version control system and is quite powerful, but requires a lot of command line use.

XML routine

There are dozens Python classes to satisfy XML standard but if you want just save/load parameters use "Zen of XML" in Python - ElementTree library. It's supported out of the box in Python 2.5(xml.etree.ElementTree module). In previous version you'll have to install library by yourself.

Speech synthesizing

If you want to add a speech synthesizer for English and other languages, try this plugin for gstreamer.

Activity Development Resources

This is an open area for posting links related to activity development.

References

Tutorials and Whitepapers

Stuck?

If you have a question, don't hesitate to ask the activity team. We are happy to help and can often save you a lot of hunting for answers.

We hang out in #sugar on irc.freenode.net, and you can always post questions to sugar-devel@lists.sugarlabs.org.