Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Blurb
os aplicativos mobile deixam transparecer isso pelos bugs e pelo visual anos 80
isso tende a no ser mais o problema testes mais aprofundados costumam exigir hardware especial um bom teste contempla inclusive consumo de energia, no total (Joules) e no instantneo (Watts)
...mas no suprem!
desenvolver para mobile custa dez vezes mais que para PC (estimativa pessoal)
lentido
no simulam a API (*) do dispositivo real com fidelidade parcos recursos de depurao
Hardware Nokia
Srie 60: smartphones baseados no sistema operacional Symbian, mais extenses prprias
Maemo: Internet Tablets baseados no sistema operacional Linux, mais extenses livres ambos so baseados na plataforma OMAP da Texas Instruments (N95=N810=OMAP 2420)
A Texas apenas arquiteta, no fabrica Processador ARM (ARM Ltd tambm no fabrica)
Linguagem Python
Fcil de usar
Bom desempenho para sua categoria
Fcil de portar
escapatria para problemas de desempenho
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 return valor # deixe como zero
Python interpretado
X = string + 1 BLA = 1
# invlido # vlido
Classes, objetos, meta-classes, mtodos, operadores, e tudo mais que voc espera Tudo objeto em Python, inclusive os tipos primitivos (inteiros, strings, funes, classes, mtodos, bibliotecas etc.) Suas classes podem at mesmo herdar de tipos primitivos
class MeuInteiro(int):
Python multi-paradigma
Excees
Subset = Lista[1:3]
Dicionario[d] = 11
for item in lista:
Iterators e generators
Linguagem simples e limpa Muita documentao e exemplos na Internet No-nonsense: sem diferenas gratuitas em relao a outras linguagens
# Python
def soma(a,b):
return a + b
7 RETURN_VALUE
Ferramentas de introspeco
Tudo um objeto
O cdigo da VM do Python tambm acessvel pelo prprio programa Logo, as possibilidades de introspeco so infinitas
def quadrado(n):
return n*n
Gera uma cpia da funo para cada tipo diferente de n (quando ele aparece pela primeira vez)
Desenvolvimento Srie 60
a distribuio de pacotes para o grande pblico implica em ter-se um certificado pessoal (que tem custo)
o certificado para um nico dispositivo-alvo, como por exemplo o seu celular pessoal, pode ser obtido de graa
o OpenC oferece a API POSIX (padro UNIX e Linux) para a plataforma Srie 60
inclui Glib, OpenSSL, libz etc.
ainda no oferece API de interface grfica como GTK+, mas a tendncia nvel de compatibilidade de cdigo-fonte com Linux excelente
Python: linguagem interpretada de desenvolvimento rpido portada para inmeras plataformas Python para Srie 60 um porte mantido pela Nokia usar Python permite elidir ou postergar inmeros problemas do desenvolvimento para mobile permite inclusive evitar o SDK completamente (se voc no usa Windows etc.) PyS60 vai ser rebaseado em OpenC
time.sleep(10)
telephone.hang_up()
s.stop()
# divirta-se com o resultado s.play()
c = appuifw.app.body = appuifw.Canvas()
c.blit(img)
Plataforma Maemo
apenas uns poucos aplicativos de terceiros so proprietrios (e.g. browser do N800 o Opera)
Maemo a distribuio Linux apropriada para estes dispositivos no um celular
SDK do Maemo
baseado no Scratchbox, um chroot com recursos adicionais permite rodar uma distribuio Linux diferente, dentro do seu ambiente Linux normal, sem recorrer a VMWare
emulador Maemo muito mais fiel ao dispositivo real, pois o Internet Tablet tambm roda Linux
linguagens: teoricamente, qualquer uma suportada no Linux (na prtica: C, C++ e Python)
emulao i386: roda dentro de uma distribuio Maemo compilada para i386
emulao ARM: roda dentro de uma distribuio Maemo compilada para o ARM, que o processador do Tablet
obviamente, emulao ARM mais fiel ao dispositivo final serve para pegar alguns tipos incomuns de bug emulao ARM feita pelo software QEMU Kernel no emulado (usa o kernel anfitrio)
ESBox: plug-in do Eclipse para desenvolvimento num ambiente hospedado pelo Scratchbox Pluthon: plug-in do Eclipse para desenvolvimento em Python para Maemo
o script testado diretamente no Tablet, tornando o Scratchbox desnecessrio exige possuir o dispositivo
Biblioteca de UI
Normalmente, especfica para o dispositivo Ter de existir tambm no PC, ou ser emulvel Afeta toda a arquitetura do seu sistema Situao S60, Maemo/GTK e Maemo/EFL
Footprint do interpretador
Desempenho, em particular no carregamento
Viso do futuro
emuladores que simulem o hardware, sendo to fiis ao dispositivo real quanto possvel APIs e ferramentas baseadas em padres abertos e de software livre
isto ainda est para acontecer no desktop portanto ainda vai demorar no mobile
debug on-device facilitado, sem necessidade de hardware especfico e caro para isso
num futuro ainda mais distante: dispositivos poderosos o suficiente para hospedar o prprio SDK, como o PC faz (o Maemo j tem algo nessa direo)
Biblioteca Qt
A concorrncia
Google Android
Apple iPhone
OpenMoko
Linux, Enlightenment
Envolva-se!
THE END