Python em dispositivos móveis
Lauro Moura - lmoura
18 de Setembro/Recife - PE
Prólogo
Quem somos nós?


 ˆ   INdT - Instituto Nokia de Tecnologia
 ˆ   openBossa - stream open source do INdT
 ˆ   Projetos mais conhecidos: Canola, Carman,
     PyMaemo
 ˆ   Parceria com Qt Development Frameworks / KDE
Quem sou eu?


 ˆ   Envolvido com software livre desde 2003(4?)
 ˆ   Graduando em Ciência da Computação na UFPE -
     Recife
 ˆ   Usa Python desde 2005
 ˆ   Trabalho no INdT (openBossa stream)
 ˆ   Membro da equipe PySide / PyMaemo
Python
O que é?


 Python é uma linguagem de programação que permite
você trabalhar mais rapidamente e integrar seus sistemas
mais ecientemente. Você pode aprender a usar Python e
   ver ganhos de produtividade quase que imediatos e
      menores custos de manutenção (python.org)
Onde usar?
Principais sistemas


  ˆ   Android
  ˆ   iOS
  ˆ   Maemo
  ˆ   MeeGo
  ˆ   S60
  ˆ   ...
Android


 ˆ   Google
 ˆ   Scripting Layer for Android (SL4A)
 ˆ   Suporta Python, Lua e outras linguagens de script.
 ˆ   API própria do Android
iOS


 ˆ   Não é suportado ocialmente
 ˆ   Pode melhorar com as últimas mudanças na
     AppStore?
(Py)Maemo

 ˆ   Maemo5 Fremantle
       ˆ Interface Hildon (baseada em GTK+), com suporte a
         Qt
 ˆ   Maemo6 Harmattan
       ˆ Interface Meego Touch(baseada em Qt), com suporte a
         Gtk

 ˆ   Interpretador CPython 2.5 portado do Debian
Aplicações PyMaemo

            Canola2
Aplicações PyMaemo

            Hermes
MeeGo


 ˆ   Nokia (Maemo) + Intel (Moblin)
 ˆ   Interface baseada em Qt (MeeGo Touch)
 ˆ   Pacotes RPM
S60 (Symbian)


 ˆ   PyS60
 ˆ   Última versão baseada no CPython 2.5.4
 ˆ   API própria do S60
Qt


 ˆ   Passado: TrollTech
 ˆ   Presente: Nokia
 ˆ   Futuro: ... Dominação Mundial
Qt


 ˆ   KDE, Google Earth, Autodesk, ...
 ˆ   Várias plataformas
 ˆ   C++
 ˆ   API extensa
API padrão Qt

 ˆ   Interfaces (QtGui)
 ˆ   Grácos SVG (QtSvg)
 ˆ   Rede (QtNetwork)
 ˆ   Engine HTML WebKit (QtWebKit)
 ˆ   Graphics View
 ˆ   Framework de animação
 ˆ   Interface declarativa (4.7 quase saindo do forno)
 ˆ   ...
QtMobility


 ˆ   Camera
 ˆ   Feedback
 ˆ   Mapas/Localizacão
 ˆ   Organizador
 ˆ   Telefonia
 ˆ   ...
Python + Qt



 ˆ   PyQt4 - Riverbank Computing
 ˆ   PySide - INdT/Nokia
PyQt4


 ˆ   Mais antigo (porém atualizado)
 ˆ   Base para o PyKDE
 ˆ   Desenvolvimento semi-aberto
 ˆ   Licença dual: GPL / Comercial
PySide


 ˆ   Agosto de 2009
 ˆ   Parceria com a Nokia
 ˆ   LGPL
 ˆ   API (não ABI) compatível com o PyQt
 ˆ   Ativamente desenvolvido
Futuro do PySide


 ˆ   Suporte ao QtCreator
 ˆ   Suporte às API's adicionais
 ˆ   Otimizações de performance
Demos
Desaos e desvantagens
Performance



      Python   é   mais lento que C/C++
Performance



     Consequentemente usa mais bateria
Performance



         E usa mais memória
API disponível



     Nem sempre 100% vai estar disponível
Dúvidas?



      Lauro Moura (lmoura na Freenode)
           lauro.neto@openbossa.org
Mais informações



        http://www.pyside.org
         http://qt.nokia.com
Obrigado
   :)

Python e Dispositivos Móveis

  • 1.
    Python em dispositivosmóveis Lauro Moura - lmoura 18 de Setembro/Recife - PE
  • 2.
  • 3.
    Quem somos nós? ˆ INdT - Instituto Nokia de Tecnologia ˆ openBossa - stream open source do INdT ˆ Projetos mais conhecidos: Canola, Carman, PyMaemo ˆ Parceria com Qt Development Frameworks / KDE
  • 4.
    Quem sou eu? ˆ Envolvido com software livre desde 2003(4?) ˆ Graduando em Ciência da Computação na UFPE - Recife ˆ Usa Python desde 2005 ˆ Trabalho no INdT (openBossa stream) ˆ Membro da equipe PySide / PyMaemo
  • 5.
  • 6.
    O que é? Python é uma linguagem de programação que permite você trabalhar mais rapidamente e integrar seus sistemas mais ecientemente. Você pode aprender a usar Python e ver ganhos de produtividade quase que imediatos e menores custos de manutenção (python.org)
  • 7.
  • 8.
    Principais sistemas ˆ Android ˆ iOS ˆ Maemo ˆ MeeGo ˆ S60 ˆ ...
  • 9.
    Android ˆ Google ˆ Scripting Layer for Android (SL4A) ˆ Suporta Python, Lua e outras linguagens de script. ˆ API própria do Android
  • 10.
    iOS ˆ Não é suportado ocialmente ˆ Pode melhorar com as últimas mudanças na AppStore?
  • 11.
    (Py)Maemo ˆ Maemo5 Fremantle ˆ Interface Hildon (baseada em GTK+), com suporte a Qt ˆ Maemo6 Harmattan ˆ Interface Meego Touch(baseada em Qt), com suporte a Gtk ˆ Interpretador CPython 2.5 portado do Debian
  • 12.
  • 13.
  • 14.
    MeeGo ˆ Nokia (Maemo) + Intel (Moblin) ˆ Interface baseada em Qt (MeeGo Touch) ˆ Pacotes RPM
  • 15.
    S60 (Symbian) ˆ PyS60 ˆ Última versão baseada no CPython 2.5.4 ˆ API própria do S60
  • 17.
    Qt ˆ Passado: TrollTech ˆ Presente: Nokia ˆ Futuro: ... Dominação Mundial
  • 18.
    Qt ˆ KDE, Google Earth, Autodesk, ... ˆ Várias plataformas ˆ C++ ˆ API extensa
  • 19.
    API padrão Qt ˆ Interfaces (QtGui) ˆ Grácos SVG (QtSvg) ˆ Rede (QtNetwork) ˆ Engine HTML WebKit (QtWebKit) ˆ Graphics View ˆ Framework de animação ˆ Interface declarativa (4.7 quase saindo do forno) ˆ ...
  • 20.
    QtMobility ˆ Camera ˆ Feedback ˆ Mapas/Localizacão ˆ Organizador ˆ Telefonia ˆ ...
  • 21.
    Python + Qt ˆ PyQt4 - Riverbank Computing ˆ PySide - INdT/Nokia
  • 22.
    PyQt4 ˆ Mais antigo (porém atualizado) ˆ Base para o PyKDE ˆ Desenvolvimento semi-aberto ˆ Licença dual: GPL / Comercial
  • 23.
    PySide ˆ Agosto de 2009 ˆ Parceria com a Nokia ˆ LGPL ˆ API (não ABI) compatível com o PyQt ˆ Ativamente desenvolvido
  • 24.
    Futuro do PySide ˆ Suporte ao QtCreator ˆ Suporte às API's adicionais ˆ Otimizações de performance
  • 25.
  • 26.
  • 27.
    Performance Python é mais lento que C/C++
  • 28.
    Performance Consequentemente usa mais bateria
  • 29.
    Performance E usa mais memória
  • 30.
    API disponível Nem sempre 100% vai estar disponível
  • 31.
    Dúvidas? Lauro Moura (lmoura na Freenode) lauro.neto@openbossa.org
  • 32.
    Mais informações http://www.pyside.org http://qt.nokia.com
  • 33.