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

398 views

Published on

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

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
398
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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!

×