plataformas para desenvolvimento em celulares
DESCRIPTION
Slides da apresentação realizada em 19 de junho de 2009 na feira técnica da ETEC São Paulo.TRANSCRIPT
Plataformas para desenvolvimento em celulares
André Gomes Lamas Otero
São Paulo, 19 de julho de 2009
Por que ?
Mercado em forte crescimento– Smartphones– Celulares 3G– Celulares em geral
Mercado pouco explorado Potencial de massificação inexplorado
Filosofia diferente...
Pouca memória... Tela pequena... Não tem teclado... CPU lenta...
... novas possibilidades
Marketing Redes sociais Automação comercial Jogos Produtividade
Quantidade de acessos
0
20
40
60
80
100
120
140
160
2003 2004 2005 2006 2007 2008
Telefones Fixos
Celulares
TV por Assinatura
Banda larga
Usuários de internet
Quantidade de Dispositivos 3G
0
1.000.000
2.000.000
3.000.000
4.000.000
5.000.000
6.000.000
3T08
4T08
jan/0
9fe
v/09
Mar
/09*
abr/0
9
WCDMA
EVDO
Terminal de Dados
Total
Frentes de atuação (1/2)
Desenvolvimento de programas / jogos– Exige conhecimento sobre o modelo a ser
desenvolvido– Exige um ciclo complexo de testes para
certificação– Canais específicos para distribuição
Frentes de atuação (2/2)
Desenvolvimento de sites desenhados para celulares– Tempo para desenvolvimento menor– Não exige conhecimento sobre o modelo de
celular que irá acessar o site– Distribuição pela Internet– Utilização de frameworks especificos (Yahoo
BluePrint, Nokia WRT)
Desenvolvimento de programas
Várias plataformas– Java ME– C++– Symbiam– Python– Qt (framework em C++)– Objective C (framework do iPhone)– Java (Android)– .Net Compact Framework– Adobe Flash Light
Java ME (1/3)
Desenvolvido pela Sun Formado pelos conjuntos:
– Connected, Limited Device Configuration (CLDC)– Mobile Information Device Profile (MIDP)– Diversas “Java Specification Requests”
Cada fabricante implementa os perfis e as JSR para cada modelo que distribuí
Java ME (2/3)
Você pode utilizar NetBeans, Eclipse, ou qualquer outra IDE java para desenvolver e usar o toolkit básico da Sun para testar (Sun Java (TM) Wireless Toolkit 2.5.2_01 for CLDC)
Funciona na grande maioria de modelos de celular
A velocidade fica comprometida em celulares mais simples
Java ME (3/3)
Para cada modelo de celular que você quiser desenvolver você precisa do SDK do fabricante para testes...
Para você distribuir uma aplicação JavaME você deve enviar para um parceiro da Sun para testes e assinatura (deve custar muita grana, pois não tem essa informação em lugar nenhum!!!)
C++
Alguns fabricantes disponibilizam SDKs específicos para cada modelo...
... Ou então o fabricante do processador do celular disponibiliza o SDK, por exemplo, celulares equipados com processadores Qualcomm utilizam um SDK chamado Brew (mais comum nos EUA e UE)
Usado em projetos específicos...
Symbiam (1/3)
Primeiro SO para celulares, criado pela Psion para a série Palm
Nokia iniciou a utilização da plataforma Symbiam 60 em seus Smartphones (o 1o foi o Nokia 7650) em 2002
Apoio de diversos fabricantes: Nokia, Lg, Sansung
Symbiam (2/3)
Nokia compra a Symbiam e inicia um processo de abertura do código fonte da plataforma
Nokia distribuí gratuitamente todas as ferramentas de desenvolvimento para Symbiam
3Q08 Nokia lança S60 5ª edição, incluindo a Nokia no mercado de touch screen com o Nokia 5800 eXpressMusic
Symbiam (3/3)
Possuí programa de certificação para desenvolvedores
Possuí programa para assinatura digital dos programas a serem distribuídos (custa USD$200 anuais o certificado digital)
Distribuição pela Ovi Store https://www.symbiansigned.com/
Python
Linguagem de programação muito fácil de usar
Multi-plataforma Interpretada (mas pode ser compilada) OpenSource Possuí um porte para a série S60
PyS60
http://wiki.opensource.nokia.com/projects/Python_for_S60
http://www.mobilenin.com/pys60/menu.htm http://sourceforge.net/projects/pys60
– Fontes– Binários– Documentação
PyS60
PyS60
Slide 21
PyS60 - UI framework – Components
Slide 22
PyS60 - UI framework – Components
PyS60
Demostração de python em S60
PyS60
Envio de SMSimport appuifw
import messaging
messaging.sms_send("+551188888888", u"oi!!")
appuifw.note(u"Mensagem Enviada", "info")
Qt
Qt é um framework C++ para construção de interfaces gráficas
Muito comum em aplicações *nix (Unix, Linux, Solaris, etc...)
Muilt-plataforma (tem pra win32 também) Possuí um porte experimental para S60
iPhone
SDK exclusivo para desenvolvedores cadastrados na Apple (custa USD$99 anuais)
Roda somente em OsX 10.5 (ou seja um Mac novo...)
Publicação exclusiva pela AppStore (passa por “revisão”* da Apple)
*entenda-se censura
Android
Plataforma para celulares do Google (que comprou empresa de desenvolvimento homônima)
OpenSource e gratuíta (para desenvolver...) Apoio de diversos fabricantes: Lg, Samsung,
Motorola, Toshiba, Huawai, HTC, Asus, Acer Distribuição pelo Android Market (custa
USD$ 25 para se registrar)
.Net Compact Framework
Porte do .Net para Windows CE (hoje chamado de Windows Mobile)
Praticamente igual ao desenvolvimento em .Net para desktops
Adobe Flash Light
Porte da Adobe para o Player Flash A maioria dos celulares hoje em dia possuí
suporte para Flash Utilizado geralmente em:
– Jogos– Screen savers
Pode ou não ser assinado para distribuíção
Desenvolvimento de Sites
Várias plataformas– Yahoo BluePrint– Nokia WRT
Yahoo BluePrint
Utiliza serviços do Yahoo pra hospedagem e Publicação
Notação XML “Roda” dentro do Yahoo2Go http://mobile.yahoo.com/developer
Nokia WebRuntime
Utiliza HTML, CSS e JavaScript como linguagens Você acessa os recursos do celular pelo
JavaScript (Extensões da Nokia) Para o usuário é uma aplicação Nativa, mas para
o desenvolvedor é mais fácil fazer http://www.forum.nokia.com/
Technology_Topics/Web_Technologies/Web_Runtime/
ScreenCasts
WRT : https://admin.emea.acrobat.com/_a799911421/p80534961/
PyS60: https://admin.emea.acrobat.com/_a799911421/p58702778/
Dúvidas ?
Muito Obrigado!