Este é um post voltado para aqueles que desejam começar a programar para aparelhos rodando Maemo.

A opção pela escolha do Python passa por 2 fatores:
1- total suporte do Maemo a essa linguagem
2- facilidade de desenvolvimento nela e também facilidade de aprendizado

O item 1 é graças ao fato do Maemo ser derivado do Debian, uma distribuição GNU/Linux. E qualquer distribuição desse sistema operacional tem um fortíssimo vínculo com Python. A distribuição que eu uso (Mandriva) possui inclusive muitos programas essenciais do sistema escritos nela (e certamente isso acontece nas outras distribuições também). Outra linguagem com forte penetração é o Perl (que também está disponível no Maemo).

E o item 2 é o mais simples de explicar: para programar em Python basta ter um editor de textos qualquer. Nada além disso! A linguagem é fácil de aprender…contanto que a pessoa já tenha noções de programação. Se alguém estiver entrando nesse mundo agora, talvez apanhe um pouco.

O objetivo deste post não é ensinar a programar, mas dar as dicas de onde buscar informações.

A primeira coisa que se deve fazer é ter um ambiente onde se possa rodar os programas em Python. Como a intenção é programar para Maemo, é necessário ter os programas que emulem esse sistema. O problema aqui é que isso não é possível de fazer no Windows. Quem quiser, será obrigado a instalar alguma distribuição GNU/Linux…nem que seja numa máquina virtual (como o VMware ou o VirtualBox)!

Para ter esse ambiente, é necessário instalar duas coisas: o Scratchbox e o SDK do Maemo. Isso é explicado neste link.

Depois é preciso ter o Python instalado no Scratchbox. Para isso, de dentro do Scratchbox, mande instalar o SDK do Python:

apt-get install python-sdk


Ainda faltam algumas coisas para instalar para ter o ambiente plenamente funcional. Mas para instalá-las é necessário adicionar alguns repositórios na instalação do Scratchbox. Dentro dele, digite estas sequências:

echo "deb http://repository.maemo.org/extras/ fremantle free non-free" >> /etc/apt/sources.list
echo "deb-src http://repository.maemo.org/extras/ fremantle free non-free" >> /etc/apt/sources.list
echo "deb http://repository.maemo.org/extras-devel/ fremantle free non-free" >> /etc/apt/sources.list
echo "deb-src http://repository.maemo.org/extras-devel/ fremantle free non-free" >> /etc/apt/sources.list

Após isso, vamos atualizar o sistema e mandar instalar os pacotes que faltam:

apt-get update
apt-get install python-sdk

(este trecho final da instalação do Python foi incluído posteriormente, como complemento, graças ao comentário do Júnior Polegato)

E pronto! O ambiente está feito!! Pode fazer seus primeiros programas em Python.

Mais informações sobre a linguagem podem ser conseguidas aqui, na documentação oficial (só cuidado: a versão do Python que roda no N900 é a 2.5, por enquanto). Se quer saber especificamente sobre o Python no Maemo, o local é este aqui.

Se for desenvolver aplicações gráficas, com “telas”, a documentação do PyGTK (a biblioteca do Python para usar o GTK, que é a biblioteca gráfica do Maemo) é uma excelente fonte de informações.
Se for desenvolver aplicações gráficas, com “telas”, a documentação do PyGTK, a PyQt e a PySide (a PyGTK utiliza a biblioteca GTK, enquanto que a PyQt e a PySide usam a Qt) são uma excelente fonte de informações.

Uma outra fonte valiosíssima é este site…porém é necessário mais atenção pois tudo que está ali se refere à linguagem C! E nem tudo é para Maemo!! Para utilizar o Hildon, que é a nova interface gráfico do Maemo, o lugar é este.

Já para rodar uma aplicação gráfica no Scratchbox, é necessário um certo malabarismo. Não vou entrar em muitos detalhes pois corro o risco de falar besteira, além do texto ficar muito extenso. Antes de tudo, é necessário instalar na distribuição GNU/Linux o Xephyr. Ele com certeza está nos repositórios da distribuição.

Após instalado, é hora de iniciá-lo, com esta linha:

Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb

Para saber o que é cada um dos parâmetros, consulte a ajuda do comando (Xephyr –help). Já dentro do Scratchbox, é necessário digitar esta sequência de comandos:

nohup af-sb-init.sh restart > /dev/null


O primeiro comando manda que toda a saída gráfica seja feita na tela 2….se notar, isso está sendo informado na linha do Xephyr também (o segundo parâmetro)!

Os 3 comandos seguintes são para configuração do dbus no Scratchbox. E a última linha iniciará o emulador na tela do Xephyr. À partir daí, qualquer comando ou programa que tenha uma saída gráfica será exibido na tela do Xephyr.