OLPC/XO - Desenvolvimento de Atividades para o Sugar

De LEC

Ir para: navegação, pesquisa

'Este artigo é somente um esboço para um artigo maior.
'Quer ajudar o site do LEC a crescer? Acrescente alguma informação!
'Clique aqui para entender melhor como fazer isso.'

Este documento visa orientar e facilitar a construção de atividades para o XO, fornecendo as principais informações sobre bibliotecas e técnicas utilizadas do ambiente de desenvolvimento do OLPC.

Tabela de conteúdo

Ambiente de trabalho

Existem vários métodos de trabalho no desenvolvimento voltado ao XO. No entanto, o mais recomendado é ter o Sugar rodando em sua workstation. Para instalá-lo, basta seguir o tutorial cedido pela OLPC Instalando o Sugar. Neste link são apresentados diversos métodos para instalação do Sugar em diversos sistemas operacionais.

Uma outra maneira de se ter um ambiente de trabalho utilizando o XO é emulando o mesmo com o Qemu, mas isso também requer que se monte a imagem do sistema para poder inserir dados novos em sua árvore. Não é a melhor maneira de trabalhar.

O terceiro modo, e mais complicada, é trabalhar diretamente em um dos laptops. De longe esta é a melhor forma de trabalhar, pois as atividades podem ser produzidas e testadas utilizando-se o ssh e o nano.

Bibliotecas de desenvolvimento

Abaixo é apresentado o Core do XO

Construção de uma atividade

O ambiente de desenvolvimento do XO tem como objetivo promover uma fácil construção das atividades, pois foi pensado para que as próprias crianças que possuíssem o laptop pudessem desenvolver e compartilhar suas atividades.

Com esse propósito foram criadas séries de classes que provªm o acesso aos diferentes recursos do sistema operacional, facilitando a construção de novas atividades. Estes recursos ainda precisam de melhorias para que no futuro uma criança consiga introduzir-se no ambiente de programação, mas para programadores já desenvolvidos, garante uma economia de tempo de estudo sobre o SO.

A atividade a ser desenvolvida não é muito diferente de uma aplicação comum, desenvolvida em python e pygtk. Porém, a principal diferença se dá na construção da interação entre as diversas máquinas, podendo uma fornecer Ã?  outra recursos de que esta não disponha.

Para exemplificar essa construção, segue o tutorial básico de construção de uma atividade:

Desenvolvendo uma aplicação básica no XO

Ao desenvolver uma atividade, é oferecido um padrão de distribuição dos arquivos e nomes para os mesmos, afim de manter a coerªncia do sistema em geral. Informações mais precisas podem ser encontradas no wiki da OLPC, no que diz respeito Ã?  criação de aplicações para o XO. Pacotes de Atividades

A estrutura principal de uma atividade segue o indicado abaixo:

ActivityName.activity/
   activity/
       activity.info
       activity-icon.svg
       localized/
           de_DE.linfo
           zh_CN.linfo
   images/
   sounds/
   bin/

As atividades não necessitam ser instaladas para que o XO a carregue. O caminho mais simples é reiniciar o sugar precionando as teclas ctrl+alt+erase, ou através de um script setup.py. Para que ele a reconheça, o arquivo activity/activity.info deve ser criado e seguir a seguinte descrição:

[Activity]
name = ActivityName
activity_version = 1
host_version = 1
service_name = br.ufrgs.lec.ActivityName
icon = activity-icon
exec = sugar-activity-factory ActivityName.ActivityClass
show_launcher = 1

Como dito anteriormente um programa desenvolvido para o XO, não se diferencia muito de uma aplicação comum em GTK+, abaixo segue um código de exemplo de uma aplicação simples feita para o XO:

import gtk

from sugar.activity.Activity import Activity

class DrawingActivity(Activity):
       def __init__(self):
               Activity.__init__(self)
               button = gtk.Button('Drawing')
               self.add(button)
               button.show()

Explanando um pouco sobre o código, temos a classe sugar.activity.Activity, que prove a API de integração do aplicativo com o ambiente do Sugar. Ela é uma extensão da classe gtk.Window, sendo assim, todas as ações normalmente executadas sobre uma janela podem ser feitas como adição de novos conteÃ?ºdos: botões, caixas, separadores, etc. Como o demonstrado acima, a utilização de um if de inicialização, comumente utilizada em programas python não é necessário, pois isso é realizado pelo sugar-activity-factory.

Ferramentas pessoais
Espaços nominais
Variantes
Ações
lec
comunidade
Navegação
Ferramentas