Como Hacer Una Actividad Sugar

¿Qué es una Actividad Sugar?

Una Actividad Sugar es una aplicación independiente Sugar empaquetada en un bundle .XO.

Un bundle (paquete) .XO es una carpeta de archivos en formato Zip. Conteniendo:

  • Un archivo llamado MANIFEST (manifiesto) que lista todo lo del bundle.

  • Un archivo activity.info que contiene los atributos que describen la Actividad, parejas como nombre=valor.  Los atributos incluyen  además del nombre, el número de versión, un identificador y otras cosas que discutiremos en el momento de crear la Actividad.

  • Un archivo de ícono ( en formato SVG)

  • Archivos que contienen todas las cadenas de texto que tu Actividad use traducidas en distintos idiomas.

  • El código del programa de tu Actividad.

Una Actividad Sugar siempre incluye un código en Python que extiende una clase de Sugar llamada Activity.  También puede incluir tramos de código escritos en otros lenguajes de programación, siempre y cuando Python pueda ligarlos entre si. Estos se conocen como Python bindings (ligaduras de Python). Incluso es posible escribir una Actividad Sugar sin utilizar Python en lo más mínimo, pero esto está fuera de nuestro alcance en este libro. 

Son muy pocas las cosas que una Actividad pueda depender que esté incluida en cada versión de Sugar.  Estas incluyen módulos como Evidence (PDF y otros visualizadores de documentos), Gecko (rendereado de páginas web) y las librerías PyGame y PyGTK de Python. Todo lo que la Actividad necesite para ejecutarse y no esté provisto por Sugar deberá ser empaquetado en un archivo bundle. Una pregunta frecuente en los correos es cómo hacer para que Sugar instale X al ejecutar mi Actividad. La respuesta es no hay forma,  si necesitas X debes incluirlo en tu bundle. 1 

Se puede instalar una Actividad copiándola o descargándola al Journal (Diario). Se desinstala simplemente borrándola. No hay que crear instaladores, no hay que decidir donde instalar los archivos, no hay riesgos de que al instalar una Actividad interfiera o rompa otra instalada. 

Una Actividad generalmente crea y lee objetos en el Journal (Diario).  Una Actividad de primera línea, seguramente también provea métodos para ser compartida simultáneamente por varios usuarios.

2 

  1. NT En el caso de Java, la Actividad puede recurrir a instalar Java.xo como bundle de modo que esta instalación no se multiplique en cada actividad que use java.^^
  2. NT: Traducido Ana Cichero^^