Top Banner
Implementação de Aplicações Móveis e Jogos com Python
58

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

Jul 02, 2015

Download

Software

Flávio Ribeiro

Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Implementação de Aplicações Móveis e Jogos com Python - Aula 1

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

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

Apresentação

Flávio Ribeiro

● Graduando em Engenharia Elétrica (IFPB)● Desenvolvedor de Software (Avaty! Tecnologia)● Entusiasta Python (~ 3 anos)

[email protected]● flavioribeiro @ freenode #python-br #elinux

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

Apresentação

Flávio Ribeiro

● 1º Contato com Python pra Celulares: Bossa Conference 2006

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

Objetivos da Disciplina

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

Objetivos da Disciplina Apresentar a linguagem de programação Python

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

Objetivos da Disciplina Apresentar a linguagem de programação Python

Características Pontos fortes e Fracos Práticas

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

Objetivos da Disciplina Apresentar a linguagem de programação Python

Características Pontos fortes e Fracos Práticas

Games

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

Objetivos da Disciplina Apresentar a linguagem de programação Python

Características Pontos fortes e Fracos Práticas

Games Conceitos Ferramentas Práticas

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

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

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

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

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

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!

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

Apresentando Python

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

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”

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

Por que usar Python?

Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...

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

Por que usar Python?

Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...

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

Por que usar Python?

Python vai na web, no desktop, OLPC, Celulares, Internet Tablets...

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

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?

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

Cenário da Linguagem Pythonem mobile & embedded

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

Cenário de Python em Mobile & Embedded

● Android● Aplicações baseadas em Java (Dalvik)● ASE (Android Scripting Environment)

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

Cenário de Python em Mobile & Embedded

● Palm● Palm Pre (webOS)

● Baseado em Linux (OpenEmbedded)● WebKit

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

Cenário de Python em Mobile & Embedded

● Nokia

http://www.tomiahonen.com/

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

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/

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

Cenário de Python em Mobile & Embedded

● PyMaemo

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

Cenário de Python em Mobile & Embedded

● PyMaemo● CarMan, Canola

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

Cenário de Python em Mobile & Embedded

● PyMaemo● CarMan, Canola

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

Cenário de Python em Mobile & Embedded

● Nokia● Symbian e S60

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

Cenário de Python em Mobile & Embedded

● Nokia● S60

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

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

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

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

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

Por que Python em DispositivosMóveis?

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

● 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

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

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

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

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! :-)

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

Sintaxe de Python

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

Antes de comecar...

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

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)

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

O Interpretador Interativo

O que é?

Aplicação nativa para testes de código

Interpretador run-in-time

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

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.

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

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

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

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

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

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

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

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]

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

Variáveis e Tipos

Tuplas

Imutável Delimita objetos por () Indicado para retorno de funções\métodos com múltiplos valores

>>> a = (1,2,3,'flavio','fatec')>>> a[0]1>>> a[3]'flavio'>>>

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

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

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

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()

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

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()

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

Entrada\Saí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: flavio\21\programadorSaida: {'idade': 21, 'profissao': 'programador', 'nome': 'flavio'}

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

Regras e Sintaxe

Palavras Reservadas

Blocos Identação obrigatória

TAB's ou 4 espaços

and assert break class continue whiledef del elif else except execif import in is lambda notor pass print raise return try

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

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.'

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

Instruções de Repetição

while

>>> numero = 20>>> while numero > 10:... numero= input("Digite um numero: ")...Digite um numero: 11Digite um numero: 12Digite um numero: 2923929Digite um numero: 9>>>

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

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>>>

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

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.

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

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: 1flavio30ribeiro$Saida: ['flavio','ribeiro']31

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

Funções

def nome_da_funcao(parametros):bloco de comandosreturn saida1,saida2

>>> def soma(num1,num2):... return num1+num2... >>> soma(3,5)8

Sintaxe:

Exemplo

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

Funções

Parâmetros Opcionais

>>> def soma(num1,num2=10):... return num1+num2... >>> soma(3)13>>> soma(4,10)14

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

Funções

Inúmeros Parâmetros

>>> def soma(*args):... return sum(args)... >>> soma(2,3,4,5,6,7,8)35>>> soma(2)2

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

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:Entradafuncao(1,3,'flavio,'avaty')Saída(4,'13flavioavaty')

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

Prática!