SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

KEY
Mini-Curso Python para Symbian
PDF
Conhecendo e comparando as plataformas de desenvolvimento móvel.
PDF
Programando symbian aula_1
PDF
Python na Web
PDF
Python com baterias incluídas v2.0
PDF
Desenvolvimento web com Python, Zope e Plone
PDF
Python - Introdução Básica
KEY
Python e MongoDB - Ensol
Mini-Curso Python para Symbian
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Programando symbian aula_1
Python na Web
Python com baterias incluídas v2.0
Desenvolvimento web com Python, Zope e Plone
Python - Introdução Básica
Python e MongoDB - Ensol

Destaque (9)

PDF
Introducao python 2010
PDF
Diversidade na Comunidade Python
PDF
Desenvolvimento web ágil com python e web2py
PPTX
Trabalho de Paradigmas Da Linguagem De Programação - Python
KEY
Python, a arma secreta do Google
PPTX
2016/01/27 - Aprendendo a programar com Python
PPT
Ensinando a programar através do Python turtle graphics
PDF
Canivete python
PDF
Oficina Python e Google App Engine
Introducao python 2010
Diversidade na Comunidade Python
Desenvolvimento web ágil com python e web2py
Trabalho de Paradigmas Da Linguagem De Programação - Python
Python, a arma secreta do Google
2016/01/27 - Aprendendo a programar com Python
Ensinando a programar através do Python turtle graphics
Canivete python
Oficina Python e Google App Engine
Anúncio

Semelhante a Introduction to Python for Symbian S60 (20)

PDF
Apresentação Minicurso PyS60
PDF
Py S60
PPT
PPT
Plataformas Para Desenvolvimento Em Celulares
PPT
Computacao Movel e Sem Fio
PPT
Curso Python for S60
PDF
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
PPTX
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
PPTX
PDF
Flash mobile
PDF
PDF
Sokoban com PyS60
PDF
Desenvolvimento de Aplicações Móveis em Java - Parte 1
KEY
Nativo x Híbrido x WebApps - SEMCOMP UFBA 2012
PDF
Python e Dispositivos Móveis
PDF
Seminário sistemas operacionais móveis
ODP
Python no Celular
PPT
Mobile Apps Cross-Platform
PDF
EDTED - Frameworks mobile multiplataforma
PPTX
Ciclo de palestras da JFRJ - Aplicativos Móveis
Apresentação Minicurso PyS60
Py S60
Plataformas Para Desenvolvimento Em Celulares
Computacao Movel e Sem Fio
Curso Python for S60
O mercado atual e as tecnologias relacionadas a desenvolvimento para disposit...
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Flash mobile
Sokoban com PyS60
Desenvolvimento de Aplicações Móveis em Java - Parte 1
Nativo x Híbrido x WebApps - SEMCOMP UFBA 2012
Python e Dispositivos Móveis
Seminário sistemas operacionais móveis
Python no Celular
Mobile Apps Cross-Platform
EDTED - Frameworks mobile multiplataforma
Ciclo de palestras da JFRJ - Aplicativos Móveis
Anúncio

Mais de Marcel Caraciolo (20)

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

Último (16)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Arquitetura de computadores - Memórias Secundárias
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
COBITxITIL-Entenda as diferença em uso governança TI
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Arquitetura de computadores - Memórias Secundárias

Introduction to Python for Symbian 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