FJ-55 - Java para pequenos dispositivos em Java Micro Edition

A API do MIDP 1.0 e 2.0 é pequena e relativamente simples. Difí­cil é entender todos os seus detalhes e se acostumar a programar com tão poucos recursos e pequenas variações que muitas vezes fogem do padrão da plataforma.

Os conceitos da CLDC, pré-verificação, obfuscação, o jad o deploy e problemas do dia-a-dia são apresentados com detalhes. Traga o seu celular ou palm para ver suas próprias aplicações rodando num dispositivo real!

Utilizamos o ambiente eclipse + plugin EclipseME.org, que será incorporado como plugin oficial do Eclipse em breve. Mesmo com a utilização do plugin também veremos passo a passo os comandos a serem utilizados através do WTK (utilizando javac, preverify, java) para não ficar dúvidas sobre o que o EclipseME faz.

Uma interessante aplicação distribuí­da será desenvolvida durante o curso, misturando Java ME e Java EE, com o objetivo de uma central de motoboys controlar as encomendas que devem ser retiradas; os motoboys avisam a central de que uma encomenda já foi entregue, sem precisar telefonar, apenas utilizando a aplicação que iremos fazer para o celular (esse por sua vez se conectará ao servidor para avisar que a aplicação foi entregue). O curso é muito completo, onde veremos a grande maioria das classes da API do MIDP, além de passar pela API opcional WMA para receber e enviar SMSs (e outros).

Faça já sua reserva

Informações

Carga Horária: 20 horas aula

Pré-requisitos: Curso FJ-11 ou equivalente com conhecimento comprovado de orientação a objetos, classes abstratas, interfaces, polimorfismo, threads, e java.lang.

Próximas Turmas

Início Término Período
26/01 30/01 Noturno (19:00 as 23:00)
Entre em contato para saber as próximas datas.
Entre em contato para saber as próximas datas.

Indicação de bibliografia
Bibliografia na Livraria Tempo Real

Conteúdo detalhado do FJ-55

Como aprender Java

  1. Falando em Java
  2. O que é realmente importante?
  3. O treinamento
  4. Convenções de Código
  5. Sobre os exercícios
  6. Sobre os treinamento
  7. Indicação de bibliografia extra
  8. Tirando dúvidas

Java ME

  1. O que é Java ME
  2. CLDC
  3. MIDP
  4. Pacotes Opcionais e Extensões

Configurando o Ambiente e primeiro Hello

  1. Nosso Ambiente
  2. Toolkits e Emuladores
  3. Instalação do WTK
  4. Configuração do Eclipse
  5. Hello World
  6. Testando nosso Hello World
  7. Exercícios
  8. Netbeans Mobility Pack
  9. Para saber mais: Pré-verificação

Ciclo de Vida de um MIDlet

  1. Ciclo de vida de um MIDlet
  2. Estado Pausado
  3. Estado Ativo
  4. Estado Destruído

Distribuindo a aplicação Java ME

  1. Distribuindo em formato JAR
  2. Descritor JAD
  3. Testando JAD e JAR
  4. Como distribuir para o cliente

MIDP Básico

  1. Displayable
  2. TextBox
  3. Alert
  4. List
  5. Ticker
  6. Exemplo: Lista de compras

Commands

  1. O que são Comandos
  2. Criando Comandos
  3. Tratando Comandos
  4. Removendo
  5. Incrementando a Lista de Compras

Formulários

  1. Form
  2. Item
  3. TextField
  4. Exercícios
  5. StringItem
  6. Exercícios
  7. ImageItem
  8. Exercícios
  9. DateField
  10. Exercícios
  11. ChoiceGroup
  12. Exercícios
  13. Gauge
  14. Exercícios
  15. Exercicio de Pesquisa de Opinião

Canvas

  1. Canvas e a API baixo nível
  2. Hello World com Canvas
  3. Desenhando com Graphics
  4. Formas geométricas
  5. Desenhando Imagens e Strings
  6. Fontes
  7. Exemplo
  8. Clipping
  9. Eventos no Canvas
  10. Tratadores de eventos
  11. Códigos de teclas
  12. Exercício: Spinner

CustomItem

  1. Items customizados
  2. Exercícios

RecordStore

  1. Registros e RecordStore
  2. Criando e apagando um RecordStore
  3. Gravando um registro no RecordStore
  4. Salvando a nossa lista de compras

Conectividade e WebServices

  1. Introdução
  2. JSON
  3. Exercícios
  4. HttpConnection
  5. Enviando Dados
  6. Recebendo Dados
  7. Exercícios
  8. WebServices
  9. Exercícios

Wireless Messaging API

  1. WMA
  2. Criando a aplicação
  3. Enviando um SMS
  4. PushRegistry

Dia-a-dia

  1. Programar no dia a dia pode ser diferente....
  2. Obfuscação e o ProGuard
  3. Memória e Orientação a objetos
  4. Consumo de memória, cpu etc
  5. Debug
  6. Threads
  7. Bugs: emulador versus máquinas de verdade
  8. Exemplo: Outros Emuladores
  9. Exercícios opcionais

Apêndice - Game API

  1. Introdução
  2. As classes da Game API
  3. Começando com a GameCanvas e a MIDlet
  4. Exercícios: LabirintoCanvas e LabirintoMIDlet
  5. Carregando as imagens
  6. Uma Sprite para o personagem
  7. Um TiledLayer para o cenário
  8. Colocando os layers em ordem com LayerManager
  9. Exercícios: Mostrando algumas coisas na tela
  10. Um mapa completo
  11. Exercícios: mostrando o labirinto
  12. O laço do jogo
  13. Exercícios: O laço
  14. Tratando Eventos do teclado
  15. Exercícios: implementando o tratamento de eventos
  16. Preparando a parede para colisões
  17. Tratando colisões com a parede
  18. Exercícios: Colisões
  19. Próximos passos
  20. Impondo limites
  21. Exercícios: Limites no cenário
  22. Rolagem do cenário
  23. Exercício: Implementando a tela rolante
  24. Desafios
  25. Testando em outros emuladores

Apêndice: Câmera com MMAPI

  1. Mobile Media API
  2. Capturando imagens da Câmera
  3. Exibindo as imagens da Câmera
  4. Eventos
  5. Tirando a Foto
  6. Exercícios

Apêndice: FAQ

  1. Como leio arquivos do celular? (PIM API)
  2. Como usar o bluetooth do dispositivo? (JSR 82)
  3. Como acessar o GPS? (Location API)
  4. Quais KVM's temos no mercado?
  5. Persistência simplificada com Floggy