• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mini-Curso Python para Symbian
 

Mini-Curso Python para Symbian

on

  • 2,084 views

Palestra ministrada por mim no SECOMP /UFRPE nos dias 14 e 15 de outubro de 2010 sobre Python para Mobile.

Palestra ministrada por mim no SECOMP /UFRPE nos dias 14 e 15 de outubro de 2010 sobre Python para Mobile.

Statistics

Views

Total Views
2,084
Views on SlideShare
1,880
Embed Views
204

Actions

Likes
0
Downloads
68
Comments
0

3 Embeds 204

http://www.mobideia.com 201
http://mobideia.blogspot.com.br 2
http://mobideia.blogspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Mini-Curso Python para Symbian Mini-Curso Python para Symbian Presentation Transcript

  • Introdução ao Desenvolvimento de Aplicações Móveis para plataforma Symbian com Python para S60. Marcel Pinheiro Caraciolo 1
  • Quem é o palestrante ? • Marcel Pinheiro Caraciolo • Atual: Mestrando em ciência da computação pela UFPE • Diretor de Pesquisa e Desenvolvimento na Orygens • Membro e Moderador da célula pernambucana de usuários Python (PUG-PE) • 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
  • 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
  • Smartphones Symbian S60 4
  • 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
  • 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
  • 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
  • Python/ PyS60 8
  • ... 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
  • ... 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
  • ... 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
  • 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
  • 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
  • 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
  • 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
  • Primeiros passos com o PyS60 16
  • 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
  • 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
  • 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
  • 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
  • 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
  • Testando PyS60 scripts • Inicie o PyS60 Script Shell • Clique em Options/ Run Script • Escolha um dos scripts na lista e pressione “Ok” 22
  • Conceitos básicos de desenvolvimento 23
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • PyS60 API Tour e Demos 32
  • 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
  • 6789+$ %88:6;< %88:6;<=>:,+"?:!"#$% &'()*+,!-'!.%/.!-'0!1%22)!3 %88:6;<=>:,+"?:!"#$% &'4056%*,!-'!4056%*!-'73 %88:6;<=>:,+"?:!"#$% &'+&.%,!-'!+&.%!3 %88:6;<=>:,+"?:!"#$% &'.85%,!-'!.85%!3 %88:6;<=>:,+"?:!"#$% &'$&99()*+,!-'!:)+%!3 %88:6;<=>:,+"?:!;) #)0'28<%'=#>?@A!-'!B0%*#!3 !"#$%&'(!""#$%&'(#)*+,-!.)-/01+")2/0$3$1$!-04!-#)56 #:7@,+(A $,&$ ;09%$ *%$, $67, B9*, >:,+" 25 )#*+,%-(.%/01(2334 34
  • 6;<8+$ %<<=67> !"#$%&'()"* %<<=67>?#8$,@=()"&&*(+ %<<=67>?#8$,@=(,-&" .*'/#*%.!(0/("11*1(+ %<<=67>?#8$,@=(23&*$! #-.-45"!(0/(6*.#(+ !"#$%&'(!""#$%&'()*+,*+-*./0*1"+./023)4!350506 6#78(9( !"#$%&' ,++8+ :8#7 25 )#*+,%-(.%/01(2334 35
  • Layout básico de uma aplicação S60 • Demo: SampleUI 36
  • 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) 37
  • !"#$%&'"()*+,%-#./ ! !"#$%&'(!""#$%&'(#)*$+,#-./0)!1-)234)!1-)56 6789+$ %88:6;< 8<* =(:!"#$%#&! 6#;9(=(%88:6;<>7:0$6?@:,+"A:!'"#%()*#+!1(:!,)""-.%/+!B 6; 6#;9' CC(+,$:+#-(%($:80, <6$D($D,(6#;9 09E6#?6*1(09E6#?8<* =(6#;9 6; 09E6#?8<* ==(8<*' %88:6;<>#9$,A:!0.12( "3$$#""435!67!$.(4!B ,0-,' %88:6;<>#9$,A:!8%.(1 9)""-.%/!67!#%%.%!B ,0-,' CC(+,$:+#-(F9#,(! -8,G6%0($"8, %88:6;<>#9$,A:!:)($#55#/!B 25 )#*+,%-(.%/01(2334 38
  • !"#$#%&'($ ! !"#$%&'(!""#$%&'"("#")*+,#-.$/0123.!4+.356 6789+$ %88:6;< 6$,7-(=(>:!"#$ %&'()$*!+,'!-$./-$0/.*!+,'!1#.2$(-.3$(!4 6#*,&(=(%88:6;<?898:8@7,#:A6$,7-1(:!5'*6!7 6; 6#*,&(==(3' %88:6;<?#9$,A:!8($.9 3#&:3$!7 ,06; 6#*,&(==(B' %88:6;<?#9$,A:!;&&/!7 ,06; 6#*,&(==(2' %88:6;<?#9$,A:!< /:2$,9#.9!7 ,06; 6#*,&(==(C9#,' %88:6;<?#9$,A:!='(3#.>$ 3.)3$//$?!7 52 )#*+,%-(.%/01(2334 39
  • !"#"$%&'()*&+% !,%+@E(;6,0*(%88,%+-( %;$,+(8+,--6#F(%(0,$$,+(/," ! !"#$%&'(!""#$%&'()*)+,$-./*$(,0+1-$+)(234()!5+1/%$)*6789: 6789+$ %88:6;< #%7,-(=(>:!"#$%&'(!)*+!,'-./!)*+!0.//#'!)*+!123#(!)*+!456!7 6#*,&(=(%88:6;<?-,0,@$69#A06-$B#%7,-1(CD 6; 6#*,&(==(2' 8+6#$(!8*(.-'*9.+:! ,0-,' 8+6#$(!;.+<3'*=3'&>:! 55 )#*+,%-(.%/01(2334 40
  • !"#$%&'(#()$%*+,-%.$ ! !"#$%&'(!""#$%&'(#)*$+,-)-.*$/0+)$,*1 !"#$!%&'()&*+,%-.!"%!/0#12(),-!2.3+%$-)45678 789:+$ %99;7<= #%8,-(>(?;!"#$%&'(!)*+!,'-./!)*+!0.//#'!)*+!123#(!)*+!456!7 -,0,@$7:#-(>(%99;7<=A8;0$7B-,0,@$7:#B07-$C#%8,-1(8$%'$9:.;8)*<= 9+7#$ -,0,@$7:#- '$/#(0,@D,@/8%+/ !,0,@$(8;0$790,(7$,8-(=7$D($D,(9,#(/," E:$(+,%00"(789:+$%#$ 56 )#*+,%-(.%/01(2334 41
  • Layout básico de uma aplicação S60 • Demo: MenuApp 42
  • UI Framework - Componentes 43
  • 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() 44
  • 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 45
  • !"#$%&'(! )*+,'$(-./0()1) 2345$6 &447289,(3%''&:2":,(';'2"85 <(=57(>57+#(7'%(&(#2>625"&$;(&'(9%++,(?76(@%$%(6@2'(2'(35$%('6$&2:@685$9&$#(+&6%$(5" 2"85A&3%'(B(C7!"#$%&'(!)*+!,-..(#/!)*+!0&12-'*3,4!5 2"85D&++' B(C!6/6&2%$7-8.&9(:;#$%&'(<=!)*!6/6&2%$7>-..(#/<=!)*!6/6&2%$76&12-':?>@<=!5 <(E%6(6@%(7'%$(>@55'%(6@%(2"85$3&625"(@%(9&"6'(65('%"# >@52>%'(B(&447289F37+62G'%+%>625"G+2'6H2"85A&3%',(!8A(8B>$C!)*D= 2"85I3' B(!! 85$ 2#J 2" >@52>%'K <(LJ%>76%(6@%('6&6%3%"6H'M('65$%#(2"(6@%(2"85D&++'N+2'6(6@$57:@(6@%(%O&+N'6&6%3%"6, <(>5"O%$6(6@%($%'7+6(65(&('6$2":(&"#(&44%"#(26(65(6@%('3' 6%J6 2"85I3' PB(2"85A&3%'C2#JQ(P(!E*!*F*6.#<(9-'<&2%$G-''6H&?C5==*F*!I*! <(R7%$;(6@%(6%+%4@5"%("73?%$ '3'A73 B(&447289FS7%$;H7!J+@>(#E!)*!.(C.!)*+!FKLLLDKML!= 28 '3'A73K !"#$%&"'($"#)#"*+"'($",-$."&*&%/'"01%0$2 3%''&:2":F'3'G'%"#H'3'A73,(2"85I3'M &447289F"56%H7!N2%$ 6(2.!)*!8$2%!= 01 !"#$%&'()&*+,(-../ 46
  • Vamos construir nosso primeiro Aplicativo! • DEMO: PyFoto / PyHealth 47
  • &1123456&116737+% &1123456&116'%787&9':; &1123456&1169<#= &1123456>#3&+<?842"@73<"A B &1123456C2%$=:; B &1123456"<7%:; B 666 &1123456&116 &1123456&116D%"2 %E378*%=8F&"#+%$ 0/ !"#$%&'()&*+,(-../ 48
  • !"#$%%#! &'()%*+# 1234$5 &336178,(%9- #%7 ,-./012 3$1"5 !"#$%&'()&*+(,,(-! &33:+4;*<'1="&+>? &336178<&33<%@15:*%A:B&"#+%$ C(D615 &336178<&33<515+% C(6!./ 0**! 3$1"5 !0**&$,&123&+411$15! &33:+4;* C(%9-<!4:+4;*>? &33:+4;*<8&15>? 3$1"5 !0**6$78%$21&(#$%,! 0. !"#$%&'()&*+,(-../ 49
  • !"##$"%& '()%*+,) !"#$%&&'(')*'#+"#)"(,-.#&/)*+%")0 Defina sua função callback de saída... ! ! 100"*%-+%)2#&/)*+%")#3%+4#'5')+6#$+)-+). 70'#/()%*+,)0)"1203+*4,(*0560+"#2'+#+4'#&/)*+%")#"89'*+ :",;-('#+"#&/)*+%")#;"%)+'(0#%)#: $'& 7(+*568 ;-00 D#&/)*+%")#%0#',;+E#F%)0+'-$#"&#GH#%)#:II#J#<-5-K -;;/%&3L-;;L'M%+N='EN4-)$.'( O#P/%+ BC 1)$('-0#<-=.>#?@@A 50
  • !"#$%&'(%$)*%+,*( ! -(*.#'/,012%!""#$%&'(%)$!*(%+$%&%,-('./$!00$0'.%1 ! 3.*4$%5",*6%+78"992%2!'($*3+$-1%+$'."-( ### !""<03,6 =$%>8#43<03,6?@$$$A$B+%!(%$!.$'.1(!.,%$3*$!.$43<03,6 3CD%,( !""<03,6#2!'(?@ H%*%+$(3$(G%$IJKC'!.$LI$ ,3-+1%$*3+$K3+%$ '.*3+K!('3.$!C3-($ !"#$#%&'()*' 4,('M%$LCD%,(1 E-'(?@$,!00FC!,6$G!.)0%+ +,+%$- !""<03,6#1'/.!0?@ ;8 4.)+%!1$5!607$899: 51
  • !""#$%&'$()*+(,- &2234567&227'8$%%" 9(!()$*#"' &2234567&227'8$%%" 9(!"#$%&' &2234567&227'8$%%" 9(!"#$$! 01 !"#$%&'()&*+,(-../ 52
  • !""#$%&'$()*+,)- ! .,/$),0*-1$)2*'-"#,13 09316$ &33.0-A<,"B= 8"- "#&4CDE !"#$ 360/$ !"#$%&'(#)! 8"- 5(#-6,7-"CDE %&''()&*+,-./*$01/ 360/$ !*+#,-)&,.! 8"- 5(#-6,70(8)CDE ! 23"*0-4,&/1$5"6, 360/$ !*+#,-)&/+01! $.3'" 0/7$"&8,$1, 8"- 9-$'CDE 360/$ !23(4&5)%&.6)77)/! 8"-0/",&,7.)9"/. &33F'1*+G70H/&'CD &33.0-AG&33G"#0$F+"4F5&/8'"6 I,J.0$ &33.0-AG&33G$0$'" I,.!-.8&"#$%)6! &33.0-AG&33G9"/. I,KC.!"#$%!<,3'&4D<, C.!*+#,-)!<,9&9,!:.!<,L1'.9"F.3D<,C.!;+01!<,L1'.9"F81A/D,D,DM 7,>-)1, 360/$ !<..&(7&1+0&6,11(1=! &33F'1*+ I,"B=G:1F'1*+CD &33F'1*+GA&0$CD 23$-.#)&>$7)/&+1&?@A @@ :/86"&7,;&+'<,=>>? 53
  • !"#$%&'(! )*+,"(-'#./0( 2345$6 2"758,(&4492:; <(=$%&6%(&"(2"'6&">%(5:(6?%(@"758(57A%>6 758(B(2"758C@"758DE <(F9%$G('%&$>?(4?$&'% H9%$G(B(&4492:;CH9%$GD9!"#$%&' ()%*!,(!+#,+!EC+5;%$DE ?26'(B(IJ 2#'(B(IJ <('3'K3%''&L%'DE($%69$"'(3%''&L%(@M'(:5$(&++(3%''&L%'(2"(6?%(NON(2"758 :5$ '3'K2# 2" 758C'3'K3%''&L%'DEP <(Q%6$2%R%(6?%(:9++(3%''&L%(6%86(&"#(>5"R%$6(26(65(+5;%$>&'% 3'LK6%86 B(758C>5"6%"6D'3'K2#EC+5;%$DE 2: 3'LK6%86C:2"#DH9%$GE(SB(TUP <(@:(6?%(6%86(;&'(:59"#,('65$%(&(4$%R2%; ?26'C&44%"#D3'LK6%86IP-0JE 2#'C&44%"#D'3'K2#E <(M2'4+&G(&++($%'9+6'(2"(&(+2'6 2"#%8(B(&4492:;C'%+%>625"K+2'6D?26',(UE 2: 2"#%8(VB(.P <(N?5;(6?%(:9++(6%86(5:(6?%('%+%>6%#(3%''&L% &4492:;C"56%D758C>5"6%"6D2#'I2"#%8JEE 01 !"#$%&'()&*+,(-../ 54
  • !"#$%&'(() ! !"#$%&'(&)*+,-./0+1&2+!3!4/05+67/+0/&80+!9!)7/.&4 ! *+,#-& %88$+:-0+/&+6!+-)/.3!+-((+/:!+/.;! <7/+0/.((+4!!=0+2!08&4=+/&+!3!4/0+>*!?05+$$$@ E4./.-(.F!+!3!4/+)-((G6-)*0 ./##) >P+!9!)7/!+,-./.4L+-)/.3!+&6Q!)/0@J ,:.(!+H!4=+)&4=./.&4IJ ! !"#$-&'0(!!8>.4/!23-(@ K8=-/!+L-;!+0/-/! 01#/2 >Q70/+!9!)7/!+2!-=?+-)/.3!+&6Q!)/0+,./: M!=2-,+0)2!!4 :.L:!2+82.&2./?@ N-70!+O+?.!(= ! !"#$-&'?.!(=>@ DC %4=2!-0+A-*(5+#BBC 55
  • Conectividade: Bluetooth • As aplicações Python usam módulo socket padrão para comunicação via Bluetooth, tcp, etc. • Demo: BluePy • Ativem seu bluetooth! 56
  • 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 57
  • Muito mais! Explore a API!! • Localização • E32dbm (persistência) • Telephone • Contatos • Sensores... • Demos 58
  • !"#$%&! '(()*)+,-."#&/)#%"+&01+2 32&45678 2$34 '%"'3$(5463$7 8 5463$7 %9-,(754%,(&66:52; <+&'' =%43!66>?@ #%2 AA5"57AA>'%+2?@ '%+2B&<<%+%$34%7%$ C((!<<%+%$34%7%$DEF!G5'=&7&>#&7&A25+7%$CH3;I&''J5+7%$>?? '%+2B&<<%+%$34%7%$B'%7A<&++K&<*>#&7&A<&++K&<*C'%+2B4LA<&++K&<*? '%+2B<3:"7%$ C(. #%2 4LA<&++K&<*>'%+2?@ M(J3$('7$%&4('%"'3$(#&7&(7N%(<&++K&<* 5'(N57(9O(754%'(6%$('%<(>P"(OQ..?B( M(RN%(#%S5<%(<&""37(N&"#+%($%'3:$<%(N:"T$L(36%$&753"'(+5*%(6$5"7(5"(7N%(<&++K&<* 2:"<753" M(23$(':<N(N5TN(2$%U:%"<5%'B(!(;3$*&$3:"#(5'(73('&46+%(7N%(#&7&(&'(#%43"'7$&7%#(K%+3;B 52 '%+2B<3:"7%$ V O(CC .@ 6$5"7 WD@V',(E@V',(F@V'W(V >'%+2B&<<%+%$34%7%$BG, '%+2B&<<%+%$34%7%$BL,('%+2B&<<%+%$34%7%$BX? '%+2B<3:"7%$ C('%+2B<3:"7%$ Y(Z #%2 $:">'%+2?@ '%+2B&<<%+%$34%7%$B'7&$7A+5'7%"5"T>? #%2 %G57A*%LAN&"#+%$>?@ M(=5'<3""%<7(2$34(7N%('%"'3$(&"#(%G57 T+3K&+ # #B&<<%+%$34%7%$B'736A+5'7%"5"T>? 6$5"7 W[G575"T(!<<%+3$34%7%$W &66A+3<*B'5T"&+>? 52 AA"&4%AA(CC AA4&5"AA@ &66:52;B&66B%G57A*%LAN&"#+%$ C(%G57A*%LAN&"#+%$ #(C(=%43!66>? #B$:">? &66A+3<* C(%9-B!3A+3<*>? 01 !"#$%&'()&*+,(-../ &66A+3<*B;&57>? 59
  • ! 1234$5 &336178,%9-,'%"'4$ #%7 :'5&56';< =>&++?&@* 76"@514"(74$($%A6+&$(&@@%+%$42%5%$('5&56'= 3$1"5 =B<(C#,(D<(C#,(E<(C#=(C(:'5&56'FG#&5&HIGJ,('5&56'FG#&5&H-GJ,('5&56'FG#&5&H9GJ; #%7 :;< K(L1'@4""%@5(7$42(5M%('%"'4$(&"#(%B15 &@@H'%"'4$N#1'@4""%@5:; &33H+4@*N'1A"&+:; &336178N&33N%B15H*%DHM&"#+%$ O(%B15H*%DHM&"#+%$ K(P%5$1%Q%(5M%(&@@%+%$&514"('%"'4$ '%"'4$H5D3% O('%"'4$N'%"'4$':;FG!@@R%"'4$GJ K(>$%&5%(&"(&@@%+%$&514"('%"'4$(4?S%@5 &@@H'%"'4$ O('%"'4$NR%"'4$:'%"'4$H5D3%FG1#GJ,'%"'4$H5D3%FG@&5%A4$DGJ; K(>4""%@5(54(5M%('%"'4$ &@@H'%"'4$N@4""%@5:A%5H'%"'4$H#&5&; K(T&15(74$('%"'4$(#&5&(&"#(5M%(%B15(%Q%"5 &33H+4@* O(%9-N!4H+4@*:; &33H+4@*N8&15:; 00 !"#$%&'()&*+,(-../ 60
  • Já imaginou controlar seu PC ? • Bluetooth + Sensores • PyAcceleRemoter • Servidor em Python 61
  • ... e que tal um jogo Multi-player ?? • Demos • PyBattle 62
  • 63
  • 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. 64
  • 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! 65
  • • Obrigado! Dúvidas?! • Marcel Pinheiro Caraciolo (caraciol@gmail.com) twitter: marcelcaraciolo 66
  • Introdução ao Desenvolvimento de Aplicações Móveis para plataforma Symbian com Python para S60. Marcel Pinheiro Caraciolo 67