27
ERISVALDO GADELHA SARAIVA JÚNIOR Tecnólogo em Sistemas para Internet pelo IFPB Graduando em Ciência da Computação pela UFPB Pesquisador do LabTEVE (Laboratório de Tecnologias para o Ensino Virtual e Estatística) E-mail: [email protected] Site: http://erisvaldojunior.com Twitter: http://twitter.com/erisvaldojunior

JavaME - Aula 1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: JavaME - Aula 1

ERISVALDO GADELHA SARAIVA JÚNIOR

Tecnólogo em Sistemas para Internet pelo IFPB

Graduando em Ciência da Computação pela UFPB

Pesquisador do LabTEVE (Laboratório de Tecnologias para o Ensino Virtual e Estatística)

E-mail: [email protected]

Site: http://erisvaldojunior.com

Twitter: http://twitter.com/erisvaldojunior

Page 2: JavaME - Aula 1

Objetivo ROTEIRO

Desenvolver aplicações para

dispositivos móveis

considerando fatores como

portabilidade, uso de

memória e processamento.

A plataforma J2ME

Exemplos Práticos

Interface X Portabilidade

Próximos Passos

Web / Pacotes Opcionais

Page 3: JavaME - Aula 1
Page 4: JavaME - Aula 1

Visão geral da plataforma Java

[SUN, 2008]

Page 5: JavaME - Aula 1

Configurações do JavaME

CLDC 1.0 / CLDC 1.1

Page 6: JavaME - Aula 1

Perfis do CLDC

MIDP 2 .1 . . . MIDP 3.0*

•Trata-se da especificaçãooriginal (JSR 37);

•Provê o núcleo necessáriopara aplicações móveis,como componentes básicosde interface e conexão derede.

• Revisão da especificaçãooriginal (JSR 118);

•Componentes deinterface aprimorados,HTTPS, suporte a jogos eaplicações multimídia.

Page 7: JavaME - Aula 1

O que vamos usar

Possíveis pacotes opcionais

• É o "padrão de

mercado" atual.

• Mobile Media API(MMAPI) – JSR 135;

•Wireless MessagingAPI (WMA) – JSR 205;

•File ConnectionOptional Package(FCOP) – JSR 75.

Page 8: JavaME - Aula 1

Ciclo de vida de uma aplicação JavaME

[FONSECA, 2005]

Page 9: JavaME - Aula 1

Estrutura básica de classes

[FONSECA, 2005]

Page 10: JavaME - Aula 1

Estrutura expandida de classes

MIDP 2.0 ou superiorComum a todas as versões do MIDP

Page 11: JavaME - Aula 1

Expandindo mais ainda...

Page 12: JavaME - Aula 1

Muita hora nessa calma...

•Apesar da grandequantidade de classes, elassão de muito fácil uso. Emgeral, basta apenas chamaro construtor da classe, setaralguns métodos e depoisinformar ao Display paramostrá-la na tela;

•Os Commands sãoessenciais. Você podeadicionar Commands emqualquer tela. Eles regem anavegação da sua aplicação.Basta implementar ométodo commandAction()da interfaceCommandListener.

Page 13: JavaME - Aula 1

Persistência de Dados

•Através do RMS (RecordManagement Store), umesquema dearmazenamento bastantesimples do JavaME;

•Uma aplicação podeacessar múltiplos RecordStores e cada um poderter N registros.

• Possui recursosinteressantes, comonavegar pelos registrosatravés de umRecordEnumeration,filtrando-os da maneiraque achar conveniente(RecordFilter) eordenando-os tambémcomo quiser(RecordComparator).

Page 14: JavaME - Aula 1

Persistência de Dados

Forma de armazenamento dos Record Stores

Page 15: JavaME - Aula 1
Page 16: JavaME - Aula 1

Tecnologias utilizadas

•Game Builder(Não)

• Mobility

•Visual Mobile

Designer (Não, é a

baba é?)

Page 17: JavaME - Aula 1

NetBeans 6.5 (Full ou Mobility)

•Suporte completo a plataforma

JavaME;

•Ferramenta RAD para navegação

de telas com o Visual Mobile

Designer;

•Ferramenta RAD para o design

dos jogos com oGame Builder.

Page 18: JavaME - Aula 1

Emuladores

Sun Java Wireless Toolkit (JWT)

MotoDEV SDK

Nokia S40/S60 SDK

Page 19: JavaME - Aula 1

Emuladores

Sun Java Wireless Toolkit (JWT)

MotoDEV SDK

Nokia S40/S60 SDK

Page 20: JavaME - Aula 1

Exemplo 1:Olá Mundo!

Page 21: JavaME - Aula 1

Exemplo 2: FuelMIDlet (Parte 1/3)

Page 22: JavaME - Aula 1

Exemplo 2: FuelMIDlet (Parte 2/3)

Page 23: JavaME - Aula 1

Exemplo 2: FuelMIDlet (Parte 3/3)

Page 24: JavaME - Aula 1

Exemplo 3: PhoneBookMIDlet (Parte 1/3)

Page 25: JavaME - Aula 1

Exemplo 3: PhoneBookMIDlet(Parte 2/3)

Page 26: JavaME - Aula 1

Exemplo 3: PhoneBookMIDlet (Parte 3/3)

Page 27: JavaME - Aula 1

Mas esses exemplos estão muito feios...

•Vamosmelhorá-los!

•SplashScreen herdando deCanvas;

•Uso deRecordFilter/RecordComparator noExemplo 3;

•Trocar os componentes de alto nível(Alert, Form, List) por telas de baixonível herdando deCanvas.