SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Introdução ao Desenvolvimento de Aplicações Móveis
                       para plataforma Symbian com Python para S60.
                                   Marcel Pinheiro Caraciolo


                                           1
Saturday, August 22, 2009
Quem é o palestrante ?
                     • Marcel Pinheiro Caraciolo
                            •   Atual: Mestrando em ciência da computação pela UFPE

                            •   Engenheiro da Computação pela POLI/UPE. (2008)

                                •   Experiência: TIM (analista de sistemas), I2 Tecnologia (consultor de
                                    desenvolvimento) e CESAR (engenheiro de sistemas)

                            •   Experiência com computação móvel e inteligente:

                                •   Blog Mobidéia: (http://mobideia.blogspot.com) - Mobile

                                •   Blog A.I. in motion (http://aimotion.blogspot.com) - I.A.

                                •   Experiência com Python há mais de 2 anos. (Contribuições em
                                    frameworks de I.A na comunidade open-source).



                                                               2
Saturday, August 22, 2009
Agenda
                     • Smartphones Symbian s60
                     • Python/ Python para S60 (PyS60)
                     • Primeiros passos com o PyS60
                     • Conceitos básicos de desenvolvimento
                     • PyS60 API Tour e Demos
                     • “Brief Review”
                                         3
Saturday, August 22, 2009
Smartphones Symbian S60



                                4
Saturday, August 22, 2009
O que são celulares Symbian S60 ?
                  •         Smartphones - “celulares inteligentes” - com
                            velocidade de um PC@1998.

                  •         Sistema operacional Symbian (Consórcio mantido
                            por diversos fabricantes de dispositivos móveis).
                        •     2008 - Nokia adquire o Symbian e funda o “Symbian Foundation””


                  •         Plataforma Série 60: Symbian UI + recursos
                            adicionais.




                                                            5
Saturday, August 22, 2009
Smartphones Nokia
                     •      Grande parte dos celulares S60 são da Nokia.

                     •      Concorrentes diretos do Symbian S60:

                            •   Android OS, Windows Mobile, Mac OS
                                (Iphone), Palm WebOs, OpenMoko.

                     •      Nova linha de aparelhos S60 “touch-screen”

                                •   Nokia 5800, Nokia N97.




                                                    6
Saturday, August 22, 2009
Por que desenvolver para S60 ?

                   •        Mais de 100 milhões de celulares vendidos.

                   •        Previsões apontam como plataforma dominante para os
                            próximos 5 anos.

                   •        Várias opções de linguagem: JavaME, C++, Python,
                            FlashLite, C, JavaScript, Qt...

                   •        Plataforma aberta e SDK gratuito

                   •        Existem uma comunidade de desenvolvedores

                   •        Dispositivos são computacionalmente poderosos (“evita
                            ter de escovar bits”)
                                                     7
Saturday, August 22, 2009
Python/ PyS60



                                  8
Saturday, August 22, 2009
... E por que o Python para S60 ?

                   •        Pelas virtudes naturais do Python :)

                   •        Desenvolvimento em C++ para dispositivos móveis é
                            ainda mais árido que para desktop.

                   •        Desenvolvimento no PC, uso real no celular;
                            computadores completamente diferentes!

                   •        Emulador Symbian diverge do celular

                   •        Pouco software livre e/ou aberto para consulta

                   •        Muitas diferenças entre versões do S60, mesmo entre
                            “minor releases”(feature packs)
                                                      9
Saturday, August 22, 2009
... E por que o Python para S60 ?

                 •          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

                 •          A depuração no dispositivo é mais fácil

                 •          Torna muito mais fácil o acesso a recursos como câmera ou
                            SMS, em relação a C++

                 •          Comunidade mais atuante
                       •      http://forum.nokia.com




                                                       10
Saturday, August 22, 2009
... Sobre Python, a linguagem...
                  •         Linguagem de programação open source criada por Guido
                            Van Rossum desde 1990.

                  •         Objetivos: maximizar a produtividade e a extensibilidade
                            na programação
                        •     Ênfase especial na leitura e compreensão do código

                        •     “Linguagem pequena, imensa biblioteca”.

                        •     Fácil extensão com o código nativo.

                  •         Linguagem de script moderna, orientada a objetos bem
                            completa com funcionalidades como classes, herança,
                            objetos, exceções, gerenciamento automático de memória,
                            threads, etc.

                                                        11
Saturday, August 22, 2009
A “cara” do Python
         def get_quote(acao):
             url = "http://www.bovespa.com.br/...”
             pagina = urllib.urlopen(url).read()
             inicio = pagina.find("R$")+2
             final = pagina.find("</td>", inicio)
             cotacao = s[inicio:final].strip()
             try:
                 valor = int(cotacao)/100.0
             except ValueError:
                 valor = 0         # deixe como zero
             return valor

                                    12
Saturday, August 22, 2009
Python para S60 (PyS60)
              •      Simplifica o desenvolvimento de
                     aplicações e é uma solução
                     alternativa para APIs Symbian C++.

              •      Usada de diversas maneiras:

                    •       Aplicativos GUI

                    •       Aplicativos em background (“daemon”)

                    •       Inseridos no seu aplicativo C++

              •      Caminho mais fácil de desenvolver
                     aplicativos nativos para o Symbian

              •      Implementação Open source, de
                     fácil extensão com a API Python/C.
                                                              13
Saturday, August 22, 2009
Python para S60 (PyS60)
              •      Versões até 1.4.x - Python 2.2.2

              •      Versões 1.9.x - Python 2.5.0

              •      Consiste de:
                    •       Python runtime:

                            •   Interpretador DLL Python

                            •   Bibliotecas e módulos padrões e
                                proprietárias do Python

                    •       Python Script Shell:

                            •   Ambiente de execução para os
                                scripts em Python


              •      Kit de desenvolvimento para
                     escrita de extensões e testes de
                     script no PC (Apenas no Windows)
                                                                  14
Saturday, August 22, 2009
Python para S60 (PyS60) -Bibliotecas



              •       Suporta a maioria das bibliotecas padrões de Python -
                      alguns módulos podem ser adicionados direto no PyS60
                      sem modificações

              •       Suporta a maioria das bibliotecas do S60

                    •       e32, sysinfo, appuifw, graphics, camera, keycapture, audio,
                            telephone, messaging.



                                                      15
Saturday, August 22, 2009
Primeiros passos com o
                                    PyS60



                                      16
Saturday, August 22, 2009
Python nos celulares Symbian S60
                  •         Projeto hospedado no site SourceForge:
                        •     http://sourceforge.net/projects/pyS60.

                  •         Novas versões (1.9.x) no site garage Maemo
                        •     https://garage.maemo.org/projects/pys60

                        •     Código-Fonte

                        •     Documentação

                        •     Diversas distribuições:

                             •   Interpretador/Script Shell

                             •   SDK

                             •   Versões: 1º Ed. , 2º Ed. , 3ºEd. (FP1, FP2), 5nd Ed.

                             •   Site com informações sobre as versões do seu aparelho

                                 •   h"p://www.forum.nokia.com/devices/matrix_all_1.html
                                                                     17
Saturday, August 22, 2009
O que está disponível para download ?
                  • Todo o código fonte do pyS60 em C++/Open C
                  • Interpretador pyS60 para versão PC/mobile:
                        •      PythonForS60_1_x_x_.SIS para celulares

                        •      Python_1_x_x_<yourS60version>_with_OpenC.zip para executar scripts
                               Python em emuladores S60 e compilar suas próprias extensões (Apenas
                               para ambiente Windows)

                  •         PyS60 Script Shell:

                        •      Ideal para testes e desenvolvimento de scripts.

                        •      PythonScriptShell_1_x_x_.sis

                        •      Disponível também em versão não assinada “unsigned”, caso novas
                               funcionalidades sejam requeridas.

                        •      Disponível versão “high_capas”, com várias permissões para acesso de
                               funcionalidades do aparelho (para testes de aplicações).

                  •         Documentação/API e release notes (As novidades da versão).

                                                              18
Saturday, August 22, 2009
Primeiros passos - PyS60 - celular

              •      Instale o pacote do interpretador
                     PyS60. No nosso exemplo, então
                     instalamos o
                     PythonForS60_1_9_7.sis

              •      Você pode instalar pelo PC Suite
                     (Windows) ou enviando o
                     arquivo .SIS via bluetooth (Linux ou
                     Mac) ou ainda pelo browser do seu
                     aparelho.

              •      Instalado o interpretador, o
                     próximo passo é instalar o PyS60
                     Script Shell.


                                                      19
Saturday, August 22, 2009
Primeiros passos - PyS60 - celular


              •      Instale o PyS60 Script Shell. No
                     nosso exemplo, instalamos o
                     PythonForScriptShell_1_9_7_3.SIS

              •      Script shell é extremamente útil
                     para executar e testar seus scripts
                     através de um console.

              •      O aplicativo Python é visível no
                     menu principal de aplicativos do
                     seu aparelho.



                                                        20
Saturday, August 22, 2009
Primeiros passos - PyS60 - celular

              •      Run Script -> Lê os scripts
                     armazenados em E:Python and C:
                     Python

              •      Há um console interativo se
                     desejar editar código direto no
                     aparelho.

              •      Bluetooth Console para edição
                     remota de seus scripts Python.

              •      Não é necessário para aplicativos
                     executáveis em Python!


                                                       21
Saturday, August 22, 2009
Testando PyS60 scripts
           •      Inicie o PyS60 Script Shell

           •      Clique em Options/ Run Script

           •      Escolha um dos scripts na lista e pressione “Ok”




                                                    22
Saturday, August 22, 2009
Conceitos básicos de
                             desenvolvimento



                                     23
Saturday, August 22, 2009
Ferramentas de desenvolvimento- Windows

                  •         Instalação do interpretador Python na sua máquina -
                            Python 2.5.x

                  •         S60 Platform SDKs for Symbian OS, for C++-> Provê o
                            ambiente de emulação do Symbian no PC para criação e
                            execução de scripts em Python e a criação de extensões.

                  •         A partir da versão 1.9.x:
                        •     Dependências (.SIS) + Documentação + PyS60 Application Packager vêm
                              empacotados em um mini-setup (PythonForS60_1_x_x_Setup.exe) -
                              Windows

                        •     PyS60 Application Packager - Ferramenta para empacotar seus scripts
                              Python em arquivos instaláveis .SIS (Ensymble). GUI apenas para Windows :(

                        •     Dispositivo S60 com cartão de memória (opcional)

                        •     Nokia PC Suite - (opcional)
                                                            24
Saturday, August 22, 2009
Ciclo básico de desenvolvimento- Windows
      •       Como instalar o SDK para
              PyS60:

      •       Faça o download do S60_??
              __sdk._fp.zip, extraia seu
              conteúdo e execute o
              setup.exe

      •       Faça o download do
              PythonForS60_1_x_x_SDK_
              3rd_Erd_with_Open_C.zip,
              extraia seu conteúdo
              (sdk_files.zip) e substitua a
              pasta na raiz do Symbian.



                                             25
Saturday, August 22, 2009
Ciclo básico de desenvolvimento- Windows
       •       Crie um arquivo .py utilizando qualquer editor de texto de sua
               preferência

             •       (Não há uma IDE específica para PyS60) :(

       •       Salve o mesmo em C:Symbian9.xS60_xrd_xxEpoc32winscwc
               python

       •       Inicie o emulador S60 SDK

       •       Clique em Python Script Shell e selecione seu Script

       •       Clique em “Select” para executá-lo


         import appuifw
         appuifw.note(u’Hello World!’)

                                                26
Saturday, August 22, 2009
Ferramentas de desenvolvimento- Windows

                  •         Instalação do interpretador Python na sua máquina -
                            Python 2.5.x

                  •         S60 Platform SDKs for Symbian OS, for C++-> Provê o
                            ambiente de emulação do Symbian no PC para criação e
                            execução de scripts em Python e a criação de extensões.

                  •         A partir da versão 1.9.x:
                        •     Dependências (.SIS) + Documentação + PyS60 Application Packager vêm
                              empacotados em um mini-setup (PythonForS60_1_x_x_Setup.exe) -
                              Windows

                        •     PyS60 Application Packager - Ferramenta para empacotar seus scripts
                              Python em arquivos instaláveis .SIS (Ensymble). GUI apenas para Windows :(

                        •     Dispositivo S60 com cartão de memória (opcional)

                        •     Nokia PC Suite - (opcional)
                                                            27
Saturday, August 22, 2009
Ferramentas de desenvolvimento- Linux

                  •         Alguma versão do Python instalada (Possivelemente sua
                            distribuição Linux já deve ter uma!)

                  •         Não há um ambiente de emulação oficial -> (GNUPOC)

                  •         Ferramenta de criação de arquivos instaláveis (Ensymble)

                  •         Donwload: PythonForS60_1_9_7.tar.gz
                        •     Dependências (.SIS) + Documentação + Ensymble

                  •         PyS60-compat - Biblioteca de emulação de algumas APIs do
                            PyS60

                  •         Aparelho Symbian S60 com um cartão de mémoria (pode
                            ajudar no teste de scripts)

                  •         Conectividade Bluetooth Ativa!
                                                          28
Saturday, August 22, 2009
Ferramentas de desenvolvimento -Linux


              •      Crie seu script .py em qualquer
                     editor de texto de sua preferência

              •      Envie seu script para pasta E:
                     Python utilizando o obexftp ou
                     conectando o telefone como drive
                     usb.

              •      Inicie o PyS60 Script Shell

              •      EScolha o Script da lista

              •      Clique “Select”para executá-lo


                                                      29
Saturday, August 22, 2009
Criando aplicativos Python instaláveis


              •      Caminho mais fácil: Ensymble

                    •       Para S60 3nd Edition, PyS60 1.4.0 ou posterior


                    •       Linux, Mac, Windows



              •      Na versão 1.9.x - Com interface
                     gráfica!

              •      Objetivo: Criar arquivos .sis que
                     podem ser instalados no telefone
                     como um aplicativo nativo.

                    •       Aparecem no menu principal e tem seu próprio      C:devpython>ensymble_python2.5-0.26.py py2sis
                                                                              simplecube.py
                            ícone.



                                                                         30
Saturday, August 22, 2009
Ops... Segurança do Symbian afeta o Python!

                  •         Acessando algumas funcionalidades “capabilities” específicas
                            do telefone dependem do certificado do desenvolvedor
                            assinado pela Symbian
                        •     Captura de teclas (fora da aplicação)

                        •     Leitura do cell ID

                        •     Leitura do GPS (interno)

                        •     Acesso a arquivos protegidos do sistema


                  •         Obtenha seu certificado (ID) no Open Signed Online.
                        •     Registre-se no www.symbiansigned.com

                        •     Registre o IMEI do o seu fone com o certificado (devcert)

                        •     Assine sua aplicação com o certificado

                        •     Instale seu aplicativo no telefone.

                                                                      31
Saturday, August 22, 2009
PyS60 API Tour e Demos



                                  32
Saturday, August 22, 2009
Layout básico de uma aplicação S60

              •      Application pode ser usada para
                     acessar e modificar o UI
                     (appuifw.app)

              •      Elementos UI:

                    •       Title, Tabs, Body (Text, ListBox, Canvas), LSK, RSK



              •      Defina funções de tratamento de
                     eventos para o menu Options e
                     Exit

              •      Espere por uma entrada do usuário
                     usando uma “trava” - Active Object
                     lock

                                                                            33
Saturday, August 22, 2009
Layout básico de uma aplicação S60




              •      Demo: SampleUI




                                            34
Saturday, August 22, 2009
Layout básico de uma aplicação S60

              •      Controles de UI são implementados
                     como tipos em Python

                    •       ListBox, Text, Canvas



              •      Controles são atribuídos no corpo do
                     aplicativo (usando app.body.control)

              •      Caixas de diálogo (Dialogs) são
                     implementadas como funções chamadas
                     a partir do appuifw.

              •      Objetos específicos para tratamento de
                     conteúdo (Content_handlers para
                     acesso a arquivos)

                                                    35
Saturday, August 22, 2009
Layout básico de uma aplicação S60




              •      Demo: MenuApp




                                            36
Saturday, August 22, 2009
UI Framework - Componentes




                                        37
Saturday, August 22, 2009
Multimídia - audio, video, camera


                  •         Aplicativos multimídia podem ser desenvolvidos através de
                            módulos:
                        •     Audio - permite a reproducao e gravacao de audio e a funcionalidade
                              texto -voz s=audio.Sound.open(u”c:arquivo.wav”) s.record() , s.stop()
                              s.play()

                        •      Camera - Para tirar fotos, gravar vídeos e controlar aspectos da câmera
                              Image i = camera.take_photo() camera_start_finder(funcao)

                        •     Graphics - Manipulação de imagens graphics.Image.open(“e:area.png”)
                              graphics.Image.save(“e:photo.jpg”)

                        •     SysInfo - Obtenha informações sobre seu aparelho sysinfo.battery(),
                              imei(), signal()



                                                             38
Saturday, August 22, 2009
Messaging e Inbox - sms/mms




                  •         O módulo Inbox permite você
                            manipular sua caixa de entrada
                            de mensagens.

                  •         O módulo Messaging dá ao seu
                            aplicativo o poder de enviar e
                            receber mensagens SMS e MMS




                                                     39
Saturday, August 22, 2009
Vamos construir nosso primeiro Aplicativo!




                  •         DEMO: PyFoto / PyHealth




                                              40
Saturday, August 22, 2009
Conectividade: Bluetooth




                  •         As aplicações Python usam
                            módulo socket padrão para
                            comunicação via Bluetooth, tcp,
                            etc.

                        •     Demo: BluePy

                             •   Ativem seu bluetooth!




                                                     41
Saturday, August 22, 2009
Conectividade: HTTP e até XML!!




                  •         Biblioteca urlib pode ser usada
                            para HTTP e comunicações Web

                  •         Construa seus protocolos em
                            script Python para se comunicar
                            com aplicações web (REST)

                        •     Demos




                                                     42
Saturday, August 22, 2009
Muito mais! Explore a API!!



                  •         Localização

                  •         E32dbm (persistência)

                  •         Telephone

                  •         Contatos

                  •         Sensores...

                        •     Demos



                                                    43
Saturday, August 22, 2009
Já imaginou controlar seu PC ?




                  •         Bluetooth + Sensores

                        •     PyAcceleRemoter

                        •     Servidor em Python




                                                   44
Saturday, August 22, 2009
... e que tal um jogo Multi-player ??




         •      Demos

               •      PyBattle




                                             45
Saturday, August 22, 2009
O céu.. oops, Não há limites!


        •       Vários Aplicativos podem ser
                desenvolvido com Python!
              •       É só ter sua idéia e botar a mão na massa!


        •       Extensões para PyS60
              •       Crie suas extensões para incrementar seus
                      aplicativos (Open C/C++)!

                     •      Flyer (Flashlite UI + PyS60)


        •       Games
                     •      PyGames for PyS60


        •       Telefone, Web, outros...
              •       CallStatus, KeyPress, PyS60USB, QrCodes,
                      Wordmobi, PySChart, A.I., GSM/3G INFO, etc.

                                                                    46
Saturday, August 22, 2009
Brief Review
       •       Introdução a Linguagem Python
             •       www.python.org/doc


       •       Vários exemplos do livro:
             •       http:/www.mobilepythonbook.com

             •       http://developer.symbian.org/wiki/index.php/Python_Book_ToC


       •       Comunidade sempre à disposição
       •       h#p://wiki.forum.nokia.com/index.php/Category:Python


       •       http://wiki.opensource.nokia.com/projects/Python_for_S60

       •       http://croozeus.googlepages.com/pyS60


       •       Contribua com artigos, posts em fóruns, aplicações!
               Você pode se tornar um Forum Nokia Champion
               e ganhar prêmios!

       •       Futuro do PyS60 : Python for Symbian! Suporte à Qt!
                                               47
Saturday, August 22, 2009
• Obrigado!   Dúvidas?!




                            • Marcel Pinheiro Caraciolo
                              (caraciol@gmail.com)
                              twitter: marcelcaraciolo
                              48
Saturday, August 22, 2009
Introdução ao Desenvolvimento de Aplicações Móveis
                       para plataforma Symbian com Python para S60.
                                   Marcel Pinheiro Caraciolo


                                           49
Saturday, August 22, 2009
Jogos e Realidade Aumentada




         •       Desenvolvimento de Games, com
                 possibilidade de realidade aumentada!

               •       Demos




                                               50
Saturday, August 22, 2009

Weitere ähnliche Inhalte

Andere mochten auch

Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonJanderson Campêlo
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 
Ensinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsEnsinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsGuilherme Medeiros
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App EngineRodrigo Amaral
 

Andere mochten auch (9)

Introducao python 2010
Introducao python 2010Introducao python 2010
Introducao python 2010
 
Diversidade na Comunidade Python
Diversidade na Comunidade PythonDiversidade na Comunidade Python
Diversidade na Comunidade Python
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Ensinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsEnsinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphics
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App Engine
 

Ähnlich wie Introdução ao Desenvolvimento de Aplicações Móveis com Python para S60

Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
A Plataforma Maemo
A Plataforma MaemoA Plataforma Maemo
A Plataforma MaemoEduardo Lima
 
Desenvolvimento de Software para Dispositivos Móveis
Desenvolvimento de Software para Dispositivos MóveisDesenvolvimento de Software para Dispositivos Móveis
Desenvolvimento de Software para Dispositivos MóveisMaurílio Silva
 
Plataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesPlataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesAndré Otero
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesGuilherme Vierno
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Introdução ao desenvolvimento de apps para iOS
Introdução ao desenvolvimento de apps para iOSIntrodução ao desenvolvimento de apps para iOS
Introdução ao desenvolvimento de apps para iOSJorge Henrique
 
Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Antonio Santana
 
Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Alessandro Binhara
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveispugpe
 
Desenvolvimento para iOS
Desenvolvimento para iOSDesenvolvimento para iOS
Desenvolvimento para iOSIgor Takenami
 
Webinar: Desenvolvimento de Interface Gráfica para Embarcados
Webinar: Desenvolvimento de Interface Gráfica para EmbarcadosWebinar: Desenvolvimento de Interface Gráfica para Embarcados
Webinar: Desenvolvimento de Interface Gráfica para EmbarcadosEmbarcados
 

Ähnlich wie Introdução ao Desenvolvimento de Aplicações Móveis com Python para S60 (20)

Py S60
Py S60Py S60
Py S60
 
Remobile
RemobileRemobile
Remobile
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
A Plataforma Maemo
A Plataforma MaemoA Plataforma Maemo
A Plataforma Maemo
 
Curso Python for S60
Curso Python for S60Curso Python for S60
Curso Python for S60
 
Desenvolvimento de Software para Dispositivos Móveis
Desenvolvimento de Software para Dispositivos MóveisDesenvolvimento de Software para Dispositivos Móveis
Desenvolvimento de Software para Dispositivos Móveis
 
Plataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em CelularesPlataformas Para Desenvolvimento Em Celulares
Plataformas Para Desenvolvimento Em Celulares
 
Sokoban com PyS60
Sokoban com PyS60Sokoban com PyS60
Sokoban com PyS60
 
Keynote ios
Keynote iosKeynote ios
Keynote ios
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluções
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Introdução ao desenvolvimento de apps para iOS
Introdução ao desenvolvimento de apps para iOSIntrodução ao desenvolvimento de apps para iOS
Introdução ao desenvolvimento de apps para iOS
 
Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Apresentação Minicurso PyS60
Apresentação Minicurso PyS60
 
Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010Mono mecadocoorporativo-latino2010
Mono mecadocoorporativo-latino2010
 
Mono
MonoMono
Mono
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveis
 
Desenvolvimento para iOS
Desenvolvimento para iOSDesenvolvimento para iOS
Desenvolvimento para iOS
 
Python for Maemo
Python for MaemoPython for Maemo
Python for Maemo
 
Webinar: Desenvolvimento de Interface Gráfica para Embarcados
Webinar: Desenvolvimento de Interface Gráfica para EmbarcadosWebinar: Desenvolvimento de Interface Gráfica para Embarcados
Webinar: Desenvolvimento de Interface Gráfica para Embarcados
 

Mehr von Marcel Caraciolo

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonMarcel Caraciolo
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)Marcel Caraciolo
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...Marcel Caraciolo
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Marcel Caraciolo
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratórioMarcel Caraciolo
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.Marcel Caraciolo
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Marcel Caraciolo
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Marcel Caraciolo
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python ScriptsMarcel Caraciolo
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Marcel Caraciolo
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...Marcel Caraciolo
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Marcel Caraciolo
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonMarcel Caraciolo
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programaçãoMarcel Caraciolo
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceMarcel Caraciolo
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilMarcel Caraciolo
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosMarcel Caraciolo
 

Mehr von Marcel Caraciolo (20)

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduce
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 

Introdução ao Desenvolvimento de Aplicações Móveis com Python para S60

  • 1. Introdução ao Desenvolvimento de Aplicações Móveis para plataforma Symbian com Python para S60. Marcel Pinheiro Caraciolo 1 Saturday, August 22, 2009
  • 2. Quem é o palestrante ? • Marcel Pinheiro Caraciolo • Atual: Mestrando em ciência da computação pela UFPE • Engenheiro da Computação pela POLI/UPE. (2008) • Experiência: TIM (analista de sistemas), I2 Tecnologia (consultor de desenvolvimento) e CESAR (engenheiro de sistemas) • Experiência com computação móvel e inteligente: • Blog Mobidéia: (http://mobideia.blogspot.com) - Mobile • Blog A.I. in motion (http://aimotion.blogspot.com) - I.A. • Experiência com Python há mais de 2 anos. (Contribuições em frameworks de I.A na comunidade open-source). 2 Saturday, August 22, 2009
  • 3. Agenda • Smartphones Symbian s60 • Python/ Python para S60 (PyS60) • Primeiros passos com o PyS60 • Conceitos básicos de desenvolvimento • PyS60 API Tour e Demos • “Brief Review” 3 Saturday, August 22, 2009
  • 4. Smartphones Symbian S60 4 Saturday, August 22, 2009
  • 5. O que são celulares Symbian S60 ? • Smartphones - “celulares inteligentes” - com velocidade de um PC@1998. • Sistema operacional Symbian (Consórcio mantido por diversos fabricantes de dispositivos móveis). • 2008 - Nokia adquire o Symbian e funda o “Symbian Foundation”” • Plataforma Série 60: Symbian UI + recursos adicionais. 5 Saturday, August 22, 2009
  • 6. Smartphones Nokia • Grande parte dos celulares S60 são da Nokia. • Concorrentes diretos do Symbian S60: • Android OS, Windows Mobile, Mac OS (Iphone), Palm WebOs, OpenMoko. • Nova linha de aparelhos S60 “touch-screen” • Nokia 5800, Nokia N97. 6 Saturday, August 22, 2009
  • 7. Por que desenvolver para S60 ? • Mais de 100 milhões de celulares vendidos. • Previsões apontam como plataforma dominante para os próximos 5 anos. • Várias opções de linguagem: JavaME, C++, Python, FlashLite, C, JavaScript, Qt... • Plataforma aberta e SDK gratuito • Existem uma comunidade de desenvolvedores • Dispositivos são computacionalmente poderosos (“evita ter de escovar bits”) 7 Saturday, August 22, 2009
  • 8. Python/ PyS60 8 Saturday, August 22, 2009
  • 9. ... E por que o Python para S60 ? • Pelas virtudes naturais do Python :) • Desenvolvimento em C++ para dispositivos móveis é ainda mais árido que para desktop. • Desenvolvimento no PC, uso real no celular; computadores completamente diferentes! • Emulador Symbian diverge do celular • Pouco software livre e/ou aberto para consulta • Muitas diferenças entre versões do S60, mesmo entre “minor releases”(feature packs) 9 Saturday, August 22, 2009
  • 10. ... E por que o Python para S60 ? • 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 • A depuração no dispositivo é mais fácil • Torna muito mais fácil o acesso a recursos como câmera ou SMS, em relação a C++ • Comunidade mais atuante • http://forum.nokia.com 10 Saturday, August 22, 2009
  • 11. ... Sobre Python, a linguagem... • Linguagem de programação open source criada por Guido Van Rossum desde 1990. • Objetivos: maximizar a produtividade e a extensibilidade na programação • Ênfase especial na leitura e compreensão do código • “Linguagem pequena, imensa biblioteca”. • Fácil extensão com o código nativo. • Linguagem de script moderna, orientada a objetos bem completa com funcionalidades como classes, herança, objetos, exceções, gerenciamento automático de memória, threads, etc. 11 Saturday, August 22, 2009
  • 12. A “cara” do Python def get_quote(acao): url = "http://www.bovespa.com.br/...” pagina = urllib.urlopen(url).read() inicio = pagina.find("R$")+2 final = pagina.find("</td>", inicio) cotacao = s[inicio:final].strip() try: valor = int(cotacao)/100.0 except ValueError: valor = 0 # deixe como zero return valor 12 Saturday, August 22, 2009
  • 13. Python para S60 (PyS60) • Simplifica o desenvolvimento de aplicações e é uma solução alternativa para APIs Symbian C++. • Usada de diversas maneiras: • Aplicativos GUI • Aplicativos em background (“daemon”) • Inseridos no seu aplicativo C++ • Caminho mais fácil de desenvolver aplicativos nativos para o Symbian • Implementação Open source, de fácil extensão com a API Python/C. 13 Saturday, August 22, 2009
  • 14. Python para S60 (PyS60) • Versões até 1.4.x - Python 2.2.2 • Versões 1.9.x - Python 2.5.0 • Consiste de: • Python runtime: • Interpretador DLL Python • Bibliotecas e módulos padrões e proprietárias do Python • Python Script Shell: • Ambiente de execução para os scripts em Python • Kit de desenvolvimento para escrita de extensões e testes de script no PC (Apenas no Windows) 14 Saturday, August 22, 2009
  • 15. Python para S60 (PyS60) -Bibliotecas • Suporta a maioria das bibliotecas padrões de Python - alguns módulos podem ser adicionados direto no PyS60 sem modificações • Suporta a maioria das bibliotecas do S60 • e32, sysinfo, appuifw, graphics, camera, keycapture, audio, telephone, messaging. 15 Saturday, August 22, 2009
  • 16. Primeiros passos com o PyS60 16 Saturday, August 22, 2009
  • 17. Python nos celulares Symbian S60 • Projeto hospedado no site SourceForge: • http://sourceforge.net/projects/pyS60. • Novas versões (1.9.x) no site garage Maemo • https://garage.maemo.org/projects/pys60 • Código-Fonte • Documentação • Diversas distribuições: • Interpretador/Script Shell • SDK • Versões: 1º Ed. , 2º Ed. , 3ºEd. (FP1, FP2), 5nd Ed. • Site com informações sobre as versões do seu aparelho
 • h"p://www.forum.nokia.com/devices/matrix_all_1.html 17 Saturday, August 22, 2009
  • 18. O que está disponível para download ? • Todo o código fonte do pyS60 em C++/Open C • Interpretador pyS60 para versão PC/mobile: • PythonForS60_1_x_x_.SIS para celulares • Python_1_x_x_<yourS60version>_with_OpenC.zip para executar scripts Python em emuladores S60 e compilar suas próprias extensões (Apenas para ambiente Windows) • PyS60 Script Shell: • Ideal para testes e desenvolvimento de scripts. • PythonScriptShell_1_x_x_.sis • Disponível também em versão não assinada “unsigned”, caso novas funcionalidades sejam requeridas. • Disponível versão “high_capas”, com várias permissões para acesso de funcionalidades do aparelho (para testes de aplicações). • Documentação/API e release notes (As novidades da versão). 18 Saturday, August 22, 2009
  • 19. Primeiros passos - PyS60 - celular • Instale o pacote do interpretador PyS60. No nosso exemplo, então instalamos o PythonForS60_1_9_7.sis • Você pode instalar pelo PC Suite (Windows) ou enviando o arquivo .SIS via bluetooth (Linux ou Mac) ou ainda pelo browser do seu aparelho. • Instalado o interpretador, o próximo passo é instalar o PyS60 Script Shell. 19 Saturday, August 22, 2009
  • 20. Primeiros passos - PyS60 - celular • Instale o PyS60 Script Shell. No nosso exemplo, instalamos o PythonForScriptShell_1_9_7_3.SIS • Script shell é extremamente útil para executar e testar seus scripts através de um console. • O aplicativo Python é visível no menu principal de aplicativos do seu aparelho. 20 Saturday, August 22, 2009
  • 21. Primeiros passos - PyS60 - celular • Run Script -> Lê os scripts armazenados em E:Python and C: Python • Há um console interativo se desejar editar código direto no aparelho. • Bluetooth Console para edição remota de seus scripts Python. • Não é necessário para aplicativos executáveis em Python! 21 Saturday, August 22, 2009
  • 22. Testando PyS60 scripts • Inicie o PyS60 Script Shell • Clique em Options/ Run Script • Escolha um dos scripts na lista e pressione “Ok” 22 Saturday, August 22, 2009
  • 23. Conceitos básicos de desenvolvimento 23 Saturday, August 22, 2009
  • 24. Ferramentas de desenvolvimento- Windows • Instalação do interpretador Python na sua máquina - Python 2.5.x • S60 Platform SDKs for Symbian OS, for C++-> Provê o ambiente de emulação do Symbian no PC para criação e execução de scripts em Python e a criação de extensões. • A partir da versão 1.9.x: • Dependências (.SIS) + Documentação + PyS60 Application Packager vêm empacotados em um mini-setup (PythonForS60_1_x_x_Setup.exe) - Windows • PyS60 Application Packager - Ferramenta para empacotar seus scripts Python em arquivos instaláveis .SIS (Ensymble). GUI apenas para Windows :( • Dispositivo S60 com cartão de memória (opcional) • Nokia PC Suite - (opcional) 24 Saturday, August 22, 2009
  • 25. Ciclo básico de desenvolvimento- Windows • Como instalar o SDK para PyS60: • Faça o download do S60_?? __sdk._fp.zip, extraia seu conteúdo e execute o setup.exe • Faça o download do PythonForS60_1_x_x_SDK_ 3rd_Erd_with_Open_C.zip, extraia seu conteúdo (sdk_files.zip) e substitua a pasta na raiz do Symbian. 25 Saturday, August 22, 2009
  • 26. Ciclo básico de desenvolvimento- Windows • Crie um arquivo .py utilizando qualquer editor de texto de sua preferência • (Não há uma IDE específica para PyS60) :( • Salve o mesmo em C:Symbian9.xS60_xrd_xxEpoc32winscwc python • Inicie o emulador S60 SDK • Clique em Python Script Shell e selecione seu Script • Clique em “Select” para executá-lo import appuifw appuifw.note(u’Hello World!’) 26 Saturday, August 22, 2009
  • 27. Ferramentas de desenvolvimento- Windows • Instalação do interpretador Python na sua máquina - Python 2.5.x • S60 Platform SDKs for Symbian OS, for C++-> Provê o ambiente de emulação do Symbian no PC para criação e execução de scripts em Python e a criação de extensões. • A partir da versão 1.9.x: • Dependências (.SIS) + Documentação + PyS60 Application Packager vêm empacotados em um mini-setup (PythonForS60_1_x_x_Setup.exe) - Windows • PyS60 Application Packager - Ferramenta para empacotar seus scripts Python em arquivos instaláveis .SIS (Ensymble). GUI apenas para Windows :( • Dispositivo S60 com cartão de memória (opcional) • Nokia PC Suite - (opcional) 27 Saturday, August 22, 2009
  • 28. Ferramentas de desenvolvimento- Linux • Alguma versão do Python instalada (Possivelemente sua distribuição Linux já deve ter uma!) • Não há um ambiente de emulação oficial -> (GNUPOC) • Ferramenta de criação de arquivos instaláveis (Ensymble) • Donwload: PythonForS60_1_9_7.tar.gz • Dependências (.SIS) + Documentação + Ensymble • PyS60-compat - Biblioteca de emulação de algumas APIs do PyS60 • Aparelho Symbian S60 com um cartão de mémoria (pode ajudar no teste de scripts) • Conectividade Bluetooth Ativa! 28 Saturday, August 22, 2009
  • 29. Ferramentas de desenvolvimento -Linux • Crie seu script .py em qualquer editor de texto de sua preferência • Envie seu script para pasta E: Python utilizando o obexftp ou conectando o telefone como drive usb. • Inicie o PyS60 Script Shell • EScolha o Script da lista • Clique “Select”para executá-lo 29 Saturday, August 22, 2009
  • 30. Criando aplicativos Python instaláveis • Caminho mais fácil: Ensymble • Para S60 3nd Edition, PyS60 1.4.0 ou posterior • Linux, Mac, Windows • Na versão 1.9.x - Com interface gráfica! • Objetivo: Criar arquivos .sis que podem ser instalados no telefone como um aplicativo nativo. • Aparecem no menu principal e tem seu próprio C:devpython>ensymble_python2.5-0.26.py py2sis simplecube.py ícone. 30 Saturday, August 22, 2009
  • 31. Ops... Segurança do Symbian afeta o Python! • Acessando algumas funcionalidades “capabilities” específicas do telefone dependem do certificado do desenvolvedor assinado pela Symbian • Captura de teclas (fora da aplicação) • Leitura do cell ID • Leitura do GPS (interno) • Acesso a arquivos protegidos do sistema • Obtenha seu certificado (ID) no Open Signed Online. • Registre-se no www.symbiansigned.com • Registre o IMEI do o seu fone com o certificado (devcert) • Assine sua aplicação com o certificado • Instale seu aplicativo no telefone. 31 Saturday, August 22, 2009
  • 32. PyS60 API Tour e Demos 32 Saturday, August 22, 2009
  • 33. Layout básico de uma aplicação S60 • Application pode ser usada para acessar e modificar o UI (appuifw.app) • Elementos UI: • Title, Tabs, Body (Text, ListBox, Canvas), LSK, RSK • Defina funções de tratamento de eventos para o menu Options e Exit • Espere por uma entrada do usuário usando uma “trava” - Active Object lock 33 Saturday, August 22, 2009
  • 34. Layout básico de uma aplicação S60 • Demo: SampleUI 34 Saturday, August 22, 2009
  • 35. Layout básico de uma aplicação S60 • Controles de UI são implementados como tipos em Python • ListBox, Text, Canvas • Controles são atribuídos no corpo do aplicativo (usando app.body.control) • Caixas de diálogo (Dialogs) são implementadas como funções chamadas a partir do appuifw. • Objetos específicos para tratamento de conteúdo (Content_handlers para acesso a arquivos) 35 Saturday, August 22, 2009
  • 36. Layout básico de uma aplicação S60 • Demo: MenuApp 36 Saturday, August 22, 2009
  • 37. UI Framework - Componentes 37 Saturday, August 22, 2009
  • 38. Multimídia - audio, video, camera • Aplicativos multimídia podem ser desenvolvidos através de módulos: • Audio - permite a reproducao e gravacao de audio e a funcionalidade texto -voz s=audio.Sound.open(u”c:arquivo.wav”) s.record() , s.stop() s.play() • Camera - Para tirar fotos, gravar vídeos e controlar aspectos da câmera Image i = camera.take_photo() camera_start_finder(funcao) • Graphics - Manipulação de imagens graphics.Image.open(“e:area.png”) graphics.Image.save(“e:photo.jpg”) • SysInfo - Obtenha informações sobre seu aparelho sysinfo.battery(), imei(), signal() 38 Saturday, August 22, 2009
  • 39. Messaging e Inbox - sms/mms • O módulo Inbox permite você manipular sua caixa de entrada de mensagens. • O módulo Messaging dá ao seu aplicativo o poder de enviar e receber mensagens SMS e MMS 39 Saturday, August 22, 2009
  • 40. Vamos construir nosso primeiro Aplicativo! • DEMO: PyFoto / PyHealth 40 Saturday, August 22, 2009
  • 41. Conectividade: Bluetooth • As aplicações Python usam módulo socket padrão para comunicação via Bluetooth, tcp, etc. • Demo: BluePy • Ativem seu bluetooth! 41 Saturday, August 22, 2009
  • 42. Conectividade: HTTP e até XML!! • Biblioteca urlib pode ser usada para HTTP e comunicações Web • Construa seus protocolos em script Python para se comunicar com aplicações web (REST) • Demos 42 Saturday, August 22, 2009
  • 43. Muito mais! Explore a API!! • Localização • E32dbm (persistência) • Telephone • Contatos • Sensores... • Demos 43 Saturday, August 22, 2009
  • 44. Já imaginou controlar seu PC ? • Bluetooth + Sensores • PyAcceleRemoter • Servidor em Python 44 Saturday, August 22, 2009
  • 45. ... e que tal um jogo Multi-player ?? • Demos • PyBattle 45 Saturday, August 22, 2009
  • 46. O céu.. oops, Não há limites! • Vários Aplicativos podem ser desenvolvido com Python! • É só ter sua idéia e botar a mão na massa! • Extensões para PyS60 • Crie suas extensões para incrementar seus aplicativos (Open C/C++)! • Flyer (Flashlite UI + PyS60) • Games • PyGames for PyS60 • Telefone, Web, outros... • CallStatus, KeyPress, PyS60USB, QrCodes, Wordmobi, PySChart, A.I., GSM/3G INFO, etc. 46 Saturday, August 22, 2009
  • 47. Brief Review • Introdução a Linguagem Python • www.python.org/doc • Vários exemplos do livro: • http:/www.mobilepythonbook.com • http://developer.symbian.org/wiki/index.php/Python_Book_ToC • Comunidade sempre à disposição • h#p://wiki.forum.nokia.com/index.php/Category:Python
 • http://wiki.opensource.nokia.com/projects/Python_for_S60 • http://croozeus.googlepages.com/pyS60 • Contribua com artigos, posts em fóruns, aplicações! Você pode se tornar um Forum Nokia Champion e ganhar prêmios! • Futuro do PyS60 : Python for Symbian! Suporte à Qt! 47 Saturday, August 22, 2009
  • 48. • Obrigado! Dúvidas?! • Marcel Pinheiro Caraciolo (caraciol@gmail.com) twitter: marcelcaraciolo 48 Saturday, August 22, 2009
  • 49. Introdução ao Desenvolvimento de Aplicações Móveis para plataforma Symbian com Python para S60. Marcel Pinheiro Caraciolo 49 Saturday, August 22, 2009
  • 50. Jogos e Realidade Aumentada • Desenvolvimento de Games, com possibilidade de realidade aumentada! • Demos 50 Saturday, August 22, 2009