Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Implementação de Aplicações Móveis
e Jogos com Python
Apresentação
Flávio Ribeiro
● Graduando em Engenharia Elétrica (IFPB)
● Desenvolvedor de Software (Avaty! Tecnologia)
● En...
Apresentação
Flávio Ribeiro
● 1º Contato com Python pra Celulares: Bossa Conference 2006
Objetivos da Disciplina
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
 Características
 Pontos fortes e Fracos
 Prátic...
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
 Características
 Pontos fortes e Fracos
 Prátic...
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
 Características
 Pontos fortes e Fracos
 Prátic...
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
 Características
 Pontos fortes e Fracos
 Prátic...
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
 Características
 Pontos fortes e Fracos
 Prátic...
Objetivos da Disciplina
 Apresentar a linguagem de programação Python
 Características
 Pontos fortes e Fracos
 Prátic...
Apresentando Python
O que é Python?
 Linguagem de Altíssimo Nível (Very High Level Language)
 Suporta múltiplos paradigmas
 Estruturada
 O...
Por que usar Python?
 Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
Por que usar Python?
 Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
Por que usar Python?
 Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
Por que usar Python?
 Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
 “7ª Linguagem mais utilizada”...
Cenário da Linguagem Python
em mobile & embedded
Cenário de Python em Mobile & Embedded
● Android
● Aplicações baseadas em Java (Dalvik)
● ASE (Android Scripting Environme...
Cenário de Python em Mobile & Embedded
● Palm
● Palm Pre (webOS)
● Baseado em Linux (OpenEmbedded)
● WebKit
Cenário de Python em Mobile & Embedded
● Nokia
http://www.tomiahonen.com/
Cenário de Python em Mobile & Embedded
● Nokia
● Maemo Linux
● Estável, Comunidade ativa
● Nova Geração
● Maemo 5 Fremantl...
Cenário de Python em Mobile & Embedded
● PyMaemo
Cenário de Python em Mobile & Embedded
● PyMaemo
● CarMan, Canola
Cenário de Python em Mobile & Embedded
● PyMaemo
● CarMan, Canola
Cenário de Python em Mobile & Embedded
● Nokia
● Symbian e S60
Cenário de Python em Mobile & Embedded
● Nokia
● S60
Cenário de Python em Mobile & Embedded
● Nokia
● Series 60
● Plataforma de Software pra dispositivos Symbian
● Framework d...
Cenário de Python em Mobile & Embedded
● Nokia
● Python pra Series 60
● O que é?
● Port do Interpretador Python
● Projeto ...
Por que Python em Dispositivos
Móveis?
● Muito rápidas na execução (quando bem feitas!)
● Ciclo de Desenvolvimento longo e lento
● Sintaxe geralmente mais compli...
Por que Python em Móveis?
Linguagens Interpretadas
● Geralmente mais lentas na execução (demandam mais memória)
● Ciclo de...
Conclusões
● Dispositivos Móveis = Ambiente altamente heterogêneo
● Pesadelo para os desenvolvedores
● Soluções
● Atacar o...
Sintaxe de Python
Antes de comecar...
Antes de comecar...
● Python 3.0 (Python 3000 ou Py3k)
● Quebra de compatibilidade com a série 2.*
● Por quê?
● Pouco Usad...
O Interpretador Interativo
 O que é?
 Aplicação nativa para testes de código
 Interpretador run-in-time
Variáveis e Tipos
 Tipagem Dinâmica
>>> a = 1
>>> type(a)
<type 'int'>
>>> a = 'flavio'
>>> type(a)
<type 'str'>
 Tipos ...
Variáveis e Tipos
 Strings
 Objeto iterável
 Imutável
 Aspas simples (') e duplas (“)
 Acessivel através de indices
...
Variáveis e Tipos
 Strings
 Objeto iterável
 Imutável
 Aspas simples (') e duplas (“)
 Acessivel através de indices
...
Variáveis e Tipos
 Listas
 Objeto iterável
 Mutável
 Objetos dentro de colchetes []
 Acessivel através de indices
 A...
Variáveis e Tipos
 A Função range()
 Função geradora de iteradores
 Útil na construção de laços for
>>> range(4)
[0, 1,...
Variáveis e Tipos
 Tuplas
 Imutável
 Delimita objetos por ()
 Indicado para retorno de funçõesmétodos com múltiplos va...
Variáveis e Tipos
 Dicionários
 Mapping
 Estrutura mais poderosa em Python (na minha opinião ;-)
 Delimita os objetos ...
Variáveis e Tipos
 Dicionários
 Gerando Iteradores
 dict.keys()
 dict.values()
 Adicionando pares chave: valor
 Busc...
Transformação de Tipos
 Funções Embutidas
 Int(), long(), float(), list(), dict(), tuple(), bool(), str()
 Transformaçõ...
EntradaSaída
 A função raw_input()
 A função input()
 A instrução print
Exerc cio!í
Capturar uma string como entrada de...
Regras e Sintaxe
 Palavras Reservadas
 Blocos
 Identação obrigatória
 TAB's ou 4 espaços
and assert break class contin...
Instruções Condicionais
 Operadores de Comparação
 ==
 !=
 > <
 Is
 In
 if – elif – else
>>> if nota >= 7:
... prin...
Instruções de Repetição
 while
>>> numero = 20
>>> while numero > 10:
... numero= input("Digite um numero: ")
...
Digite ...
Instruções de Repetição
 For
 Exemplo:
>>> for var in objeto_iteravel:
>>> for numero in [1,2,3,4]:
... print numero,
.....
Instruções de Repetição
 Mais Exemplos
>>> dic = {'flavio' : 21, 'theo' : 19, 'andre' : 26}
>>> for nome in dic.keys():
....
Instruções de Repetição
Exerc cio!í
Capturar entradas de dados do usuário, checar se é inteiro ou
string, e dependendo de ...
Funções
def nome_da_funcao(parametros):
bloco de comandos
return saida1,saida2
>>> def soma(num1,num2):
... return num1+nu...
Funções
 Parâmetros Opcionais
>>> def soma(num1,num2=10):
... return num1+num2
...
>>> soma(3)
13
>>> soma(4,10)
14
Funções
 Inúmeros Parâmetros
>>> def soma(*args):
... return sum(args)
...
>>> soma(2,3,4,5,6,7,8)
35
>>> soma(2)
2
Funções
Exerc cio!í
Gerar uma função que retorna o número de parâmetos
passados e uma string com todas os parâmetros conca...
Prática!
Upcoming SlideShare
Loading in …5
×

Implementação de Aplicações Móveis e Jogos com Python - Aula 1

Implementação de Aplicações Móveis e Jogos com Python - Aula 1

  • Be the first to comment

  • Be the first to like this

Implementação de Aplicações Móveis e Jogos com Python - Aula 1

  1. 1. Implementação de Aplicações Móveis e Jogos com Python
  2. 2. Apresentação Flávio Ribeiro ● Graduando em Engenharia Elétrica (IFPB) ● Desenvolvedor de Software (Avaty! Tecnologia) ● Entusiasta Python (~ 3 anos) ● email@flavioribeiro.com ● flavioribeiro @ freenode #python-br #elinux
  3. 3. Apresentação Flávio Ribeiro ● 1º Contato com Python pra Celulares: Bossa Conference 2006
  4. 4. Objetivos da Disciplina
  5. 5. Objetivos da Disciplina  Apresentar a linguagem de programação Python
  6. 6. Objetivos da Disciplina  Apresentar a linguagem de programação Python  Características  Pontos fortes e Fracos  Práticas
  7. 7. Objetivos da Disciplina  Apresentar a linguagem de programação Python  Características  Pontos fortes e Fracos  Práticas  Games
  8. 8. Objetivos da Disciplina  Apresentar a linguagem de programação Python  Características  Pontos fortes e Fracos  Práticas  Games  Conceitos  Ferramentas  Práticas
  9. 9. Objetivos da Disciplina  Apresentar a linguagem de programação Python  Características  Pontos fortes e Fracos  Práticas  Games  Conceitos  Ferramentas  Práticas  Python pra Celulares s60
  10. 10. Objetivos da Disciplina  Apresentar a linguagem de programação Python  Características  Pontos fortes e Fracos  Práticas  Games  Conceitos  Ferramentas  Práticas  Python pra Celulares s60  Sintaxe  Práticas
  11. 11. Objetivos da Disciplina  Apresentar a linguagem de programação Python  Características  Pontos fortes e Fracos  Práticas  Games  Conceitos  Ferramentas  Práticas  Python pra Celulares s60  Sintaxe  Práticas  Projetos!
  12. 12. Apresentando Python
  13. 13. O que é Python?  Linguagem de Altíssimo Nível (Very High Level Language)  Suporta múltiplos paradigmas  Estruturada  Orientação a Objetos  Case Sensitive  Interpretada  Transformação source > bytecode  Tipagem Dinâmica  Multiplataforma  Symbian, Linux, Windows, OSX  “Baterias Inclusas”
  14. 14. Por que usar Python?  Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
  15. 15. Por que usar Python?  Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
  16. 16. Por que usar Python?  Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...
  17. 17. Por que usar Python?  Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...  “7ª Linguagem mais utilizada” (TIOBE 2009)  É uma porcentagem, não ajustada, sobre a quantidade de hits em 5 engines de procura.  Quem usa Python?
  18. 18. Cenário da Linguagem Python em mobile & embedded
  19. 19. Cenário de Python em Mobile & Embedded ● Android ● Aplicações baseadas em Java (Dalvik) ● ASE (Android Scripting Environment)
  20. 20. Cenário de Python em Mobile & Embedded ● Palm ● Palm Pre (webOS) ● Baseado em Linux (OpenEmbedded) ● WebKit
  21. 21. Cenário de Python em Mobile & Embedded ● Nokia http://www.tomiahonen.com/
  22. 22. Cenário de Python em Mobile & Embedded ● Nokia ● Maemo Linux ● Estável, Comunidade ativa ● Nova Geração ● Maemo 5 Fremantle e N900 ● PyMaemo http://www.tomiahonen.com/
  23. 23. Cenário de Python em Mobile & Embedded ● PyMaemo
  24. 24. Cenário de Python em Mobile & Embedded ● PyMaemo ● CarMan, Canola
  25. 25. Cenário de Python em Mobile & Embedded ● PyMaemo ● CarMan, Canola
  26. 26. Cenário de Python em Mobile & Embedded ● Nokia ● Symbian e S60
  27. 27. Cenário de Python em Mobile & Embedded ● Nokia ● S60
  28. 28. Cenário de Python em Mobile & Embedded ● Nokia ● Series 60 ● Plataforma de Software pra dispositivos Symbian ● Framework de User Interface ● Bibliotecas e aplicações nativas ● Lenovo, LG, Nokia, Panasonic, Siemens ● Lançada release 5 ● Novo Browser (webkit) ● Suporte a toque (touchscreen) ● Suporte a acelerômetro
  29. 29. Cenário de Python em Mobile & Embedded ● Nokia ● Python pra Series 60 ● O que é? ● Port do Interpretador Python ● Projeto Open-Source ● Colaboração Nokia e IndT ● Subset de bibliotecas nativas ● Implementações de bibliotecas especiais ● Appuifw, e32, etc. ● Releases 1.9.* no Maemo Garage ● Suporte a toque
  30. 30. Por que Python em Dispositivos Móveis?
  31. 31. ● Muito rápidas na execução (quando bem feitas!) ● Ciclo de Desenvolvimento longo e lento ● Sintaxe geralmente mais complicada ● Exemplos: C, C++ Por que Python em Móveis? Linguagens Compiladas
  32. 32. Por que Python em Móveis? Linguagens Interpretadas ● Geralmente mais lentas na execução (demandam mais memória) ● Ciclo de Desenvolvimento rápido ● Sintaxe geralmente mais simples ● Exemplos: Lua, Python, Perl
  33. 33. Conclusões ● Dispositivos Móveis = Ambiente altamente heterogêneo ● Pesadelo para os desenvolvedores ● Soluções ● Atacar os dispositivos mais utilizados ● Utilizar linguagens que implementam uma camada de abstração do sistema operacional (interpretadas) ● Python pode ser uma excelente opção de linguagem para um desenvolvimento para móveis rápido e divertido! :-)
  34. 34. Sintaxe de Python
  35. 35. Antes de comecar...
  36. 36. Antes de comecar... ● Python 3.0 (Python 3000 ou Py3k) ● Quebra de compatibilidade com a série 2.* ● Por quê? ● Pouco Usado (ainda) ● Instável? ● Muitas releases (GvR trabalhando nisso) ● Poucas bibliotecas externas ● 2to3 ● Unladen Swallow ● Google financiando ● Python 5x mais rápido ● Release já lançada (15% a 25% mais rápida que CPython)
  37. 37. O Interpretador Interativo  O que é?  Aplicação nativa para testes de código  Interpretador run-in-time
  38. 38. Variáveis e Tipos  Tipagem Dinâmica >>> a = 1 >>> type(a) <type 'int'> >>> a = 'flavio' >>> type(a) <type 'str'>  Tipos Nativos  float, int, long, boolean, strings, listas, tuplas e dicionários.
  39. 39. Variáveis e Tipos  Strings  Objeto iterável  Imutável  Aspas simples (') e duplas (“)  Acessivel através de indices  Operador de concatenação: +  upper() , count(), title(), find(), startswith(), isalpha(), isdigit()  Slice e Substrings através de índices  Membership >>> 'io' in 'flavio' True
  40. 40. Variáveis e Tipos  Strings  Objeto iterável  Imutável  Aspas simples (') e duplas (“)  Acessivel através de indices  Operador de concatenação: +  upper() , count(), title(), find(), startswith(), isalpha(), isdigit()  Slice e Substrings através de índices  Membership >>> 'io' in 'flavio' True
  41. 41. Variáveis e Tipos  Listas  Objeto iterável  Mutável  Objetos dentro de colchetes []  Acessivel através de indices  Aceita vários tipos de objetos diferentes  Lista bi-dimensional  Concatenação de listas  + e extend()  Adição de Objetos  append() e insert()  Remoção de Objetos  pop() e remove()  Index(), sort(), reverse(), count()  Slicing
  42. 42. Variáveis e Tipos  A Função range()  Função geradora de iteradores  Útil na construção de laços for >>> range(4) [0, 1, 2, 3] >>> range(4,9) [4, 5, 6, 7, 8] >>> range(0,10,2) [0, 2, 4, 6, 8]
  43. 43. Variáveis e Tipos  Tuplas  Imutável  Delimita objetos por ()  Indicado para retorno de funçõesmétodos com múltiplos valores >>> a = (1,2,3,'flavio','fatec') >>> a[0] 1 >>> a[3] 'flavio' >>>
  44. 44. Variáveis e Tipos  Dicionários  Mapping  Estrutura mais poderosa em Python (na minha opinião ;-)  Delimita os objetos com {}  Par CHAVE:VALOR  Chave só pode ser tipos imutáveis  Sem ordem fixa >>> info = {'nome':'Flavio','idade': 21,'interesses' : ['python','embedded','linux']} >>> info['idade'] 21
  45. 45. Variáveis e Tipos  Dicionários  Gerando Iteradores  dict.keys()  dict.values()  Adicionando pares chave: valor  Buscando Valores  dict.has_key('chave')  Somar dois dicionários  dict1.update(dict2)  Apagar tudo  dict.clear()
  46. 46. Transformação de Tipos  Funções Embutidas  Int(), long(), float(), list(), dict(), tuple(), bool(), str()  Transformações string <> lista  O método join()  O método split()
  47. 47. EntradaSaída  A função raw_input()  A função input()  A instrução print Exerc cio!í Capturar uma string como entrada de dados de um usuário onde conterá seu nome, idade e profissão, todos separados por uma contra-barra. Armazenar esses dados em um dicionário e imprimir. Ex: Entrada: flavio21programador Saida: {'idade': 21, 'profissao': 'programador', 'nome': 'flavio'}
  48. 48. Regras e Sintaxe  Palavras Reservadas  Blocos  Identação obrigatória  TAB's ou 4 espaços and assert break class continue while def del elif else except exec if import in is lambda not or pass print raise return try
  49. 49. Instruções Condicionais  Operadores de Comparação  ==  !=  > <  Is  In  if – elif – else >>> if nota >= 7: ... print 'Parabens.' ... elif nota >= 5: ... print 'Voce esta na recuperacao!' ... else: ... print 'Voce foi reprovado.'
  50. 50. Instruções de Repetição  while >>> numero = 20 >>> while numero > 10: ... numero= input("Digite um numero: ") ... Digite um numero: 11 Digite um numero: 12 Digite um numero: 2923929 Digite um numero: 9 >>>
  51. 51. Instruções de Repetição  For  Exemplo: >>> for var in objeto_iteravel: >>> for numero in [1,2,3,4]: ... print numero, ... 1 2 3 4 >>>
  52. 52. Instruções de Repetição  Mais Exemplos >>> dic = {'flavio' : 21, 'theo' : 19, 'andre' : 26} >>> for nome in dic.keys(): ... print nome, 'tem', dic[nome], 'anos.' ... theo tem 19 anos. andre tem 26 anos. flavio tem 21 anos. >>> for par in range(2,9,2): ... print par, 'eh par.' ... 2 eh par. 4 eh par. 6 eh par. 8 eh par.
  53. 53. Instruções de Repetição Exerc cio!í Capturar entradas de dados do usuário, checar se é inteiro ou string, e dependendo de qual for, adicionar as strings em uma lista ou somar os numeros entrados. O programa encerra quando o usuário digitar $. Imprimir a lista de strings e a soma de numeros. Ex: Entrada: 1 flavio 30 ribeiro $ Saida: ['flavio','ribeiro'] 31
  54. 54. Funções def nome_da_funcao(parametros): bloco de comandos return saida1,saida2 >>> def soma(num1,num2): ... return num1+num2 ... >>> soma(3,5) 8  Sintaxe:  Exemplo
  55. 55. Funções  Parâmetros Opcionais >>> def soma(num1,num2=10): ... return num1+num2 ... >>> soma(3) 13 >>> soma(4,10) 14
  56. 56. Funções  Inúmeros Parâmetros >>> def soma(*args): ... return sum(args) ... >>> soma(2,3,4,5,6,7,8) 35 >>> soma(2) 2
  57. 57. Funções Exerc cio!í Gerar uma função que retorna o número de parâmetos passados e uma string com todas os parâmetros concatenados como string. Ex: Entrada funcao(1,3,'flavio,'avaty') Saída (4,'13flavioavaty')
  58. 58. Prática!

×