PyS60 PyS60 Python para Dispositivos MóveisPython para Dispositivos Móveis
SymbianSymbian
Antonio Mateus Santana Neto Antonio Mateus Santana Neto Graduando de Sistemas de Informação Graduando de Sistemas de Informação FAL – Faculdade de AlagoasFAL – Faculdade de Alagoas
' Python ' - http://www.python.org ' Python ' - http://www.python.org
● Uma Linguagem de Programação de alto nível● Interpretada, interativa, orientada a objetos
● É uma linguagem Open Source
● Possui tipagem dinâmica e forte● Possui um grande número de bibliotecas disponível
' Um pouco da história do Python '' Um pouco da história do Python '
Python foi concebida no final de 1989 por Guido van Rossum no instituto de Pesquisa Nacional para Matemática e Ciência da Computação nos países baixos, sucessora da linguagem ABC que visava ser uma linguagem de alta produtividade baseada no C ,o nome Python tem origem do grupo humorístico britânico Monty Python.
' Symbian OS '' Symbian OS '
● Sistema operacional para Smartphones● Mais utilizado do mundo entre os mobiles
● 57% dos Smartphones operando com Symbian
● Mais de 14 fabricantes de celular utilizaram ele
● Aquisição completa pela Nokia em 2 de Dezembro de 2008
' PyS60 '' PyS60 '
● Port da Linguagem Python para Dispositivos Symbian● Baseado na versão 2.2.2 do Python ● Possui uma API de controle própria para estes dispositivos● Sua atual versão estável é a 1.4.5
' O que são celulares com “Série 60” ? '' O que são celulares com “Série 60” ? '
● Smartphones com velocidade de um PC@1998
● Sistema operacional Symbian (consórcio mantido por diversos fabricantes de dispositivos móveis)
● Plataforma Série S60: Symbian + UI + recursos adicionais
' Por que desenvolver para S60 '' Por que desenvolver para S60 '● Mais de 100 milhões de celulares vendidos● Previsões apontam como plataforma dominante para os próximos 5 – 10 anos● Várias opções de linguagem: J2ME, C++, Python● Plataforma aberta e SDK gratuita● Existe uma comunidade de desenvolvedores
' Por que usar Python para S60 '' Por que usar Python para S60 '
● Pelas virtudes naturais do Python :-)● API mais estável, pois as diferenças entre versões são resolvidas no pacote Python● Boa parte das bibliotecas padrão do Python está disponível no PyS60● Torna muito mais fácil o acesso a recursos como câmera ou SMS, em relação a C++● Comunidade muito mais atuante● http://pys60.sourceforge.net
' Desvantagens do PyS60 '' Desvantagens do PyS60 '● Baseado em uma versão “antiga” do Python (2.2), veda recursos novos com o @decorators ● Não faz coleta de lixo de referências circulares por motivos de performance● Desempenho pode ser um problema
● Pode-se escrever bibliotecas em C para as partes de desempenho criticamente importante.
● Nem toda a API C++ está coberta● Pode-se escrever módulos adicionais
' Ciclo de Desenvolvimento '' Ciclo de Desenvolvimento '● Editar no PC, testar somente no celular
● Auto-suficiente porém moroso
● Editar no PC, testar somente no celular● Muitas partes exigirão teste moroso no celular
● Testar no emulador Symbian● Algumas partes exigirão teste no celular● A priori somente para Windows (e o GNUPOC ?)
● Emulador é lento e diferente do celular
' Comprando um Celular Série 60 ' Comprando um Celular Série 60 para fins de Desenvolvimento 'para fins de Desenvolvimento '
● Se puder investir, compre um celular 3rd Edition● PyS60 funciona bem● Hardware muito mais rápido● Todos os novos celulares são 3rd Edition
10 - [email protected]
' Por onde começar ? '' Por onde começar ? '● Em primeiro lugar, provando que funciona !● Instalar o Pacote PyS60 no Celular
● Download dos arquivos em http://sourceforge.net/projects/pys60 ● S60 3rd
● PythonForS60_1_4_5_3rdEd.SIS ● PythonScriptShell_1_4_5_3rdEd.SIS
● Descobrir que o teclado do celular é uma péssima interface● Acessar a linha de Comando Python via Bluetooth
● Executar um comando qualquer
11 - [email protected]
' Módulos específicos para S60 '' Módulos específicos para S60 '
● Módulo e32 – Serviços do Symbian, mais notadamente os Actives Objects (AO), responsáveis por manipular as atividades Simultâneas, Threads.
● Teste prático
● Módulo sysinfo – Exibe informações diversas sobre o dispositivo● Teste prático
12 - [email protected]
' Módulos específicos para S60 (cont)'' Módulos específicos para S60 (cont)'
● Módulo appuifw – É o módulo da UI do dispositivo e o mais complexo para Série 60
● Quem já usou PyGTK+, vai achar familiar● Application (reside em appuifw.app) – Estrutura da UI da aplicação● Eventos de alertas, perguntas, erros, informações...● Criação de forms● Chamada de eventos e teclas de ações
13 - [email protected]
' Módulos específicos para S60 (cont)'' Módulos específicos para S60 (cont)'● Layout de uma aplicação S60
14 - [email protected]
● Teste prático
' Módulos específicos para S60 (cont)'' Módulos específicos para S60 (cont)'
● Módulo camera – Permite manipular a(s) câmera(s) do dispositivo● Não funciona no emulador● Gravação e leitura de Imagens● Teste prático
● Módulo audio – Lida com os recursos de som do dispositivo● Permite gravar som, inclusive de ligações● Teste prático
15 - [email protected]
' Módulos específicos para S60 (cont)'' Módulos específicos para S60 (cont)'
● Módulo telephone – permite fazer e receber ligações● Teste prático
● Módulo messaging – permite enviar a receber mensagens● Teste prático
16 - [email protected]
● Módulo position – API de localização● Informações das coordenadas X, Y; latitude e longitude● Permite integração com outras API's de localização; Ex: Google Maps
' Módulos específicos para S60 (cont)'' Módulos específicos para S60 (cont)'● Módulos e32db / e32dbm – Mini banco de dados do Symbian, com interface baseada em comandos SQL
● Para persistência de configurações e pequenas quantidades de dados● Mesma idéia do SQLite● Será mesmo o SQLite na 3rd Ed. FP2● Teste prático
17 - [email protected]
' Criando um pacote SIS '' Criando um pacote SIS '● Pacote SIS é um formato aberto de distribuição de aplicativos Symbian● O PyS60 é distribuido como SIS, nossos scripts também podem ser● Na 3rd Edition, pacote SIS é assinado digitalmente; é preciso usar o Ensymble
● http://www.nbl.fi/~nbl928/ensymble.html
18 - [email protected]
● ensymble py2sis -n Flisol2009 -r 1.0 -l EN -s "Arquivo" -c "Arquivo X" --caps=NetworkServices+
LocalServices+ReadUserData+WriteUserData+UserEnvironment
arquivo.py
' Criando um pacote SIS '' Criando um pacote SIS '
19 - [email protected]
' Desenvolvendo PyS60 no Linux ou no Mac OS X '' Desenvolvendo PyS60 no Linux ou no Mac OS X '● É perfeitamente possível● Emulador: a princípio é Windows-only, mas o GNUPOC pode funcionar● Compilador C++: GNUPOC
20 - [email protected]
PERGUNTAS ?????PERGUNTAS ?????
OBRIGADO !OBRIGADO !