Portando Aplicações Para a Plataforma Maemo

620 visualizações

Publicada em

Apresentação no Fórum Cearense de Software Livre no dia 20/10/2006 em Fortaleza.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
620
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Portando Aplicações Para a Plataforma Maemo

  1. 1. Portando Aplicações Para a Plataforma Maemo Eduardo Lima @ FCSL – 20/10/2006
  2. 2. Apresentação •Eduardo Lima <eduardo.lima@indt.org.br> • Trabalha com Linux desde 1999 • Pesquisador do Instituto Nokia de Tecnologia (INdT) • Equipe de Plataforma/SDK • Porte de aplicações GNOME/GTK+ para Maemo • Abiword, Evince, Gnumeric, LeafPad, Rhythmbox, Tapioca, Xournal, .... • etrunko @ IRC • irc.freenode.net (#maemo, #tapioca-voip) • irc.gimp.net (#gnome-br, #gnome-hackers, #gnumeric) • http://etrunko.blogspot.com
  3. 3. O Instituto Nokia de Tecnologia • Instituição sem fins lucrativos, fundada pela nokia em outubro de 2001 com investimentos da Lei de Informática. • 3 escritórios - Manaus, Brasília e Recife • Foco em pesquisa e desenvolvimento • Mecânica e produtos eletrônicos • Open Source • Software e Multimídia • Telecomunicações • Excelência em operações e logística http://www.indt.org.br
  4. 4. INdT - Estrutura • Parceiros Área Técnica • Quatro áreas principais para execução dos projetos Área Administrativa • Suporte para a área técnica (Governança, RH, Administração e Finanças, Escritório de Projetos, TI) • Cerca de 150 funcionários
  5. 5. A Plataforma Maemo •Usada para o desenvolvimento de aplicações para o Nokia 770 e outros dispositivos portáteis compatíveis •Criada para desenvolvedores com interesse na criação de aplicações pessoais ou comerciais para Internet Tablets •Formada por componentes populares de Software Livre largamente utilizados e presentes nas principais distribuições
  6. 6. Nokia 770 Internet Tablet •OMAP 1710 DSP •Texas ARM 220 MHz •Tela 4.13'' widescreen •Touchscreen •Resolução 800x480 •65 mil cores (16 bpp) •WLAN 802.11 b/g •Bluetooth 1.2 •USB •64 MB RAM 128 MB Flash •MMC-RS de até 1GB http://nokia.com/770
  7. 7. A Pergunta •Por que portar aplicações? •Evitar reinvenção da roda •São bastante utilizadas e testadas •Estão em constante processo evolutivo •Bom nível de maturidade •Comunidades formadas •Mais uma forma de contribuir com os projetos •Explorar a potencialidade que o aparelho disponibiliza •Não é tão difícil (à medida que se ganha experiência) •Gratificação pessoal
  8. 8. Algumas Pedras No Caminho •Tela pequena •Resolução aceitável •Área útil reduzida •Performance •Processamento: 220 MHz •Ausência de FPU •Apenas 64 MB de memória RAM •Ausência de swap
  9. 9. Mais Pedras No Caminho •Espaço de armazenamento •128 MB flash •Sistema de arquivos JFFS2 •Bibliotecas nativas •Versões “antigas” •Algumas “não podem” ser atualizadas •Consumo de energia
  10. 10. Primeiros Passos •Documentação em http://maemo.org •Instalar o ambiente de desenvolvimento (Maemo SDK) •Escolher a aplicação a ser portada •Conhecer o terreno, familiarizando-se com: •O ambiente de desenvolvimento •O dispositivo (se possível) •O código fonte da aplicação
  11. 11. Estudo de Caso: Gnumeric •Planilha de cálculo do projeto GNOME •Linguagem C •GTK+ •Diretamente dependente de poucas bibliotecas
  12. 12. Viabilidade do Porte •Algumas palavras proibidas •Java, Qt, Cairo, ... •Procure responder às seguintes perguntas •É possível satisfazer as dependencias de bibliotecas? •A aplicação é “pesada”? •Realiza muitas operações de ponto flutuante? •A instalação ocupa muito espaço em disco? •Tem baixo consumo de memória?
  13. 13. Antes De Botar A Mão Na Massa •Uma análise da área de trabalho do Nokia 770
  14. 14. Análise Da Área De Trabalho •Área útil para a aplicação é reduzida
  15. 15. Análise Da Área De Trabalho • O teclado virtual ocupa bastante espaço (155 pixels)
  16. 16. Análise Da Área De Trabalho •Cada toolbar irá custar 55 pixels
  17. 17. Análise Da Área De Trabalho •Teclado Virtual + Toolbar = Metade da área útil (210 pixels)
  18. 18. Análise Da Área De Trabalho •E assim por diante...
  19. 19. Colocando A Mão Na Massa •Processo similar ao de qualquer sistema baseado no Debian •Verificar a existência de pacotes para as dependências •Obter código fonte da aplicação •Obter código fonte das dependências ainda não disponíveis •No ambiente scratchbox (target i386) •Compilar e instalar as dependências •Compilar e instalar a aplicação
  20. 20. Não Se Engane! •É um processo simples e às vezes bastante repetitivo •Parece ser fácil, mas na maioria das vezes isso não é verdade •É apenas o primeiro de vários problemas que estão por vir •Para ganhar tempo e produtividade •Procure gerar os pacotes diretamente na compilação •Vencido este desafio, vamos ao próximo
  21. 21. Horas, Dias, Semanas Depois... •Praticamente a metade do trabalho já feito
  22. 22. Hildonização •Adaptação da aplicação para a plataforma Maemo •Alguns componentes especializados •HildonProgram/HildonWindow •Diálogos para abrir/salvar arquivos •Diálogos para escolha de fontes/cores •Aproveitar ao máximo a área útil •Menu “escondido” juntamente com o título da janela •Toolbars localizadas na parte inferior da tela
  23. 23. Como Hildonizar? •Hackear o código da aplicação •Para isto é necessário o conhecimento do código fonte •Importante ter paciência e perseverança •Evitar uso de muitas toolbars •Ideal ter no máximo uma sempre visível •Outras toolbars “escondidas” mas acessíveis •Evitar o uso de barra de status
  24. 24. Mais Algumas Horas, Dias... •Nosso “produto final”
  25. 25. Estamos Quase Lá! •Tudo foi feito em plataforma x86 •Recompilar o sistema para a plataforma ARM •Gerar pacotes debian •Instalar e testar a aplicação no dispositivo •Repetir o todo o processo até obter um resultado satisfatório •Distribuir os pacotes via repositórios apt
  26. 26. Considerações Finais •Na teoria, qualquer aplicativo escrito em linguagem C /C++ é portável, desde que atenda às requisições de performance •O processo de porte de aplicações escritas em python é similar ao que foi descrito, só que bem menos penoso •Não esquecer de retornar o código fonte para o projeto original, submetendo patches
  27. 27. Links Importantes •Web •http://www.maemo.org •Documentação - API's, Tutoriais, How-To's, etc. •Download da toolkit de desenvolvimento (SDK) •https://www.maemo.org/bugzilla/ •http://pymaemo.sourceforge.net •Listas de discussão e IRC •Da plataforma Maemo •Do aplicativo a ser portado
  28. 28. Perguntas
  29. 29. Obrigado! eduardo.lima@indt.org.br

×