portando aplicações para a plataforma maemo

Post on 05-Jul-2015

466 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Portando Aplicações Para a Plataforma

MaemoEduardo Lima @ FCSL – 20/10/2006

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

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

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

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

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

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

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

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

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

Estudo de Caso: Gnumeric•Planilha de

cálculo do projeto GNOME

•Linguagem C

•GTK+

•Diretamente dependente de poucas bibliotecas

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?

Antes De Botar A Mão Na Massa•Uma análise da área de trabalho do Nokia 770

Análise Da Área De Trabalho•Área útil para a aplicação é reduzida

Análise Da Área De Trabalho• O teclado virtual ocupa bastante espaço (155 pixels)

Análise Da Área De Trabalho•Cada toolbar irá custar 55 pixels

Análise Da Área De Trabalho•Teclado Virtual + Toolbar = Metade da área útil (210 pixels)

Análise Da Área De Trabalho•E assim por diante...

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

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

Horas, Dias, Semanas Depois...•Praticamente a metade do trabalho já feito

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

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

Mais Algumas Horas, Dias...•Nosso “produto final”

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

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

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

Perguntas

Obrigado!eduardo.lima@indt.org.br

top related