Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba,...

5
1 Desenvolvimento de Aplicações para Dispositivos Móveis José de Ribamar Martins Bringel Filho Mestre em Ciência da Computação (UFC) [email protected] Roteiro Overview das Plataformas e Linguagens J2ME Superwaba J2ME x Superwaba Projetos do Grupo Dissertações Desenvolvimento de Aplicações para DM É um desafio a escolha da linguagem e plataforma de desenvolvimento Diversidade de dispositivos e aplicações Memória, desempenho, plataforma suportada Perfil do desenvolvedor Facilidade de desenvolvimento Recursos da linguagem e plataforma Identificar a mais indicada para uma determinada aplicação e dispositivo alvo Linguagens, plataformas e ambientes de Desenvolvimento Principais linguagens C e Java Plataformas J2ME, Superwaba, BREW Ambientes de desenvolvimento CodeWarrior, PRC-Tools, Wireless Toolkit Linguagem C Acesso direto às APIs do SO (e.g. Palm OS) Melhor desempenho Gerenciamento de memória Aplicações compactas Acesso direto aos dispositivos de comunicação IrDA, serial Ambientes de desenvolvimento CodeWarrior (Palm OS, Symbian OS), PRC-Tools (Palm OS), Falch.Net (Palm OS) Java Oferece portabilidade JVM embutida nos dispositivos Facilita a adoção do padrão APIs compactas para uma linha de dispositivos Plataformas J2ME, Superwaba

Transcript of Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba,...

Page 1: Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba, BREW Ambientes de desenvolvimento ... Acesso direto aos dispositivos de comunicação

1

Desenvolvimento de Aplicações para Dispositivos Móveis

José de Ribamar Martins Bringel FilhoMestre em Ciência da Computação (UFC)

[email protected]

Roteiro

�Overview das Plataformas e Linguagens�J2ME�Superwaba�J2ME x Superwaba�Projetos do Grupo�Dissertações

Desenvolvimento de Aplicações para DM

�É um desafio a escolha da linguagem e plataforma de desenvolvimento�Diversidade de dispositivos e aplicações

�Memória, desempenho, plataforma suportada

�Perfil do desenvolvedor�Facilidade de desenvolvimento

�Recursos da linguagem e plataforma� Identificar a mais indicada para uma determinada

aplicação e dispositivo alvo

Linguagens, plataformas e ambientes de Desenvolvimento

�Principais linguagens�C e Java

�Plataformas�J2ME, Superwaba, BREW

�Ambientes de desenvolvimento�CodeWarrior, PRC-Tools, Wireless Toolkit

Linguagem C

� Acesso direto às APIs do SO (e.g. Palm OS)� Melhor desempenho� Gerenciamento de memória� Aplicações compactas� Acesso direto aos dispositivos de comunicação

� IrDA, serial� Ambientes de desenvolvimento

� CodeWarrior (Palm OS, Symbian OS), PRC-Tools(Palm OS), Falch.Net (Palm OS)

Java

�Oferece portabilidade�JVM embutida nos dispositivos

�Facilita a adoção do padrão

�APIs compactas para uma linha de dispositivos

�Plataformas�J2ME, Superwaba

Page 2: Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba, BREW Ambientes de desenvolvimento ... Acesso direto aos dispositivos de comunicação

2

Superwaba

� JVM adaptada para DM� Desenvolvida por Guilherme Hazan

� Evolução da Waba (Rick Wild)

� Suporte aos SOs Palm OS e Windows CE� Permite a utilização de bibliotecas C e Java� Requisitos para o desenvolvimento

� Editor de texto, J2SE, SDK (software DelelopmentKit), Superwaba Virtual Machine, Emulador

J2ME

� Java Micro Edition

� Foco� dispositivos móveis em geral e aparelhos domésticos

� É dividida em perfis e configurações� Configurações

� CDC - Connected Device Configuration

� CLDC - Connected Limited Device Configuration

J2ME

�Profiles (perfis)�Personal Basis Profile – dispositivos

domésticos, principalmente televisores� PersonalJava[tm] Application Environment

– Dispositivos que rodam WinCE (a partir daversao 2.12)

� MIDP – dispositivos com baixo podercomputacional e baixa conectividade

Requisitos para o Desenvolvimento

�J2SE�J2ME Wireless Toolkit (WTK)

�Emulador�POSE (Palm OS)

�Pode ter tudo integrado em uma IDE de desenvolvimento�Sun One Studio

KVM e CLDC

� KVM (Kilobyte Virtual Machine) e CLDC (ConnectedLimited Device Configuration)� projetados para dispositivos com pouca memória e

de conexão instável� Pacotes:

� Derivados do J2SE: java.lang; java.util; java.io� Pacote específico: javax.microedition.io (Framework

de conexão)� As classes de ponto flutuante não fazem parte do

java.lang do CLDC 1.0� MathFP pode ser usado para esse propósito

MIDLets

�Aplicações do MIDP�Ciclo de vida:

Active

Destroyed

PausedActive: o programa está rodandoPaused: o programa foi interrompido pelo dispositivoDestroyed: os recursos adquiridos pelo programa foram liberados

Estende a classe javax.microedition.midlet.MIDlet

Page 3: Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba, BREW Ambientes de desenvolvimento ... Acesso direto aos dispositivos de comunicação

3

Estrutura de um MIDlet

public class VerGastosMIDlet extends MIDlet {

public void startApp() {

}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {

}

}

MIDletSuite

�Permite o compartilhamento de arquivos de dados (e.g., RMS, txt) e imagens entre MIDlets

�MIDletSuite deve ser convertido no formato aceitável pelo dispositivo alvo�Alguns celulares suportam o .jar

�O MIDletSuite se torna um .prc no Palm OS

Ciclo de Desenvolvimento

Codificação

Dispositivo

EmuladorSincronismo

Compilação ByteCodeDesktop

Binário Alvo

Conversão

Bibliotecas Gráficas do MIDP

� javax.microedition.lcdui� É dividida em duas:

Low Api: � não é garantido o funcionamento em todos os

dispositivos� Os principais objetos são o Canvas e Graphics

� O objeto Canvas gerencia os eventos de teclado e da stylus do dispositivo

� O objeto Graphics possibilita desenhar linhas, arcos, imagens.

Exemplo da LowApiBibliotecas Gráficas do MIDP

(cont.)High Api:

� Seu funcionamento é garantido em todos os dispositivos

� Contém os objetos de interface: Form, Command, List, Gauge, ChoiceGroup, TextField, TextBox ...

� Os únicos que possuem eventos são o Command(action) e o List(select_command)

� Pode-se usar Listener para capturar mudanças de estado de alguns componentes

� Não possui controle sobre o posicionamento dos componentes

Page 4: Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba, BREW Ambientes de desenvolvimento ... Acesso direto aos dispositivos de comunicação

4

J2ME x Superwaba

RazoávelBoaDisponívelDocumentação

Licença LGPLGratuitaAlgumas são pagasCustos Máquinas virtuais

BoaBoaBoaFacilidade dedesenvolvimento

ExcelenteExcelenteRazoávelControle do layout

BMPJPGPNGSuporte a imagens

SIMDepende do dispositivoNÃOSuporte a IrDA

SIMSIMSIMSuporte a TCP/IP

SIMSIMNÃOAcesso a arquivos doSistema

NÃODepende do celularDepende do celularExecuta em celulares

SIMSIMSIMExecuta em Windows CE

SIMNÃOSIMExecuta em Palm OS

SuperwabaJ2ME/Personal JavaJ2ME/MIDP 1.0Critério

Projetos do Grupo

� MobiS� Desenvolvimento uma solução para a transmissão

segura para dispositivos móveis visando garantir a confidencialidade, integridade e autenticidade dos dados transmitidos

� MobiSware� Continuação do projeto MobiS, tem como principal

objetivo desenvolver um framework para garantir a segurança na transmissão de dados através de dispositivos móveis

Projetos (Cont...)

�Wireless Doctor�O Projeto tem como objetivo desenvolver

um sistema para controle e acompanhamento de uma clínica médica

�O sistema permite ao médico acompanhar seus clientes, sua agenda e sua parte finnaceira a partir do Desktop e de um celular P800/P900

Dissertações

� Framesec: Um framework para a provisão de segurança fim-a-fim para aplicações no ambiente de computação móvel (Bringel)

� Framepersist: Um framework de persistência de objetos para o desenvolvimento de aplicações para dispositivos móveis (Katy)

� Um Ambiente de Desenvolvimento de Aplicações Multi-Plataformas e Adaptativas para Dispositívos Móveis (Windson)

� Um Framework para o Desenvolvimento de Treinamentos Utilizando Realidade Virtual em Dispositivos Móveis (Edgar)

FRAMESEC

� Framework de aplicação para a construção de mecanismos de segurança� Confidencialidade, integridade, autenticidade e não-repúdio, bem

como suas combinações

� Definido utilizando como base a linguagem de Padrões Tropyc e padrões de projeto� Information Secrecy, Message Authentication, Message Integrity,

Sender Authentication, Secrecy with Authentication, Secrecy withSignature, Secrecy with Integrity, Signature with Appendix, e Secrecywith Signature with Appendix

� Forward-Receiver, Strategy e Null Object

Ferramenta PEARL

Page 5: Desenvolvimento de Aplicações Roteiro para Dispositivos … de... · C e Java J2ME, Superwaba, BREW Ambientes de desenvolvimento ... Acesso direto aos dispositivos de comunicação

5

Web PEARL Analyser Framepersist

�Provê uma camada de persistência para o desenvolvimento de aplicações para dispositivos móveis�Operações básicas de inclusão, exclusão,

atualização e busca de objetos, levando em consideração as limitações dos dispositivos móveis