SlideShare ist ein Scribd-Unternehmen logo
1 von 80
Downloaden Sie, um offline zu lesen
Desenvolvimento de aplicações para
       dispositivos móveis




      FAGOC – 10 de Outubro de 2008
   Juarez Junior – Mobile Software Expert
      juarez.junior.mobile@gmail.com
Palestrante
• Juarez Alvares Barbosa Junior
  –   SCMAD - Sun Certified Mobile Application Developer
  –   ForumNOKIA Poster of The Month – Abril de 2006
  –   SCAJ/SCPJ2/SCWCD/SCBCD e SCEA I
  –   ForumNOKIA Champion 2006, 2007, 2008, 2009
  –   Accredited Symbian Developer
Agenda
•   Mobilidade
•   Convergência
•   Plataformas Mobile
•   Symbian Platform
•   BREW
•   JME
•   Plataformas Nokia
•   Ferramentas de Desenvolvimento Nokia
•   Outras ferramentas
•   Tendências / Novidades
Mobilidade
• 3 objetos importantes (top of mind)
  – Carteira
  – Chaves
  – Celular
Convergência
• Tudo-em-um (All-in-one)
  –   Câmera Fotográfica (3.2 GSM, 7.0 WCDMA)
  –   MP3 Player
  –   Telefone
  –   Rádio FM / Mobile TV (DVB-H)
  –   Navegador Web
  –   Email
  –   Mensagens SMS
  –   Organizador
  –   Conectividade
Plataformas Mobile
• Symbian Platform – S60 / UIQ / OMAP – Symbian C++
   – http://www.symbian.com/
   – http://www.s60.com/life
   – http://www.uiq.com/
• Qualcomm BREW – C, C++, (Java?)
   – http://brew.qualcomm.com/brew/en/
• Microsoft Windows Mobile - .NET Mobile
   – http://www.microsoft.com/windowsmobile/default.mspx
• NTT FOMA – JME – iAppli, iMode, DoJA
   – http://www.doja-developer.net/
Plataformas Mobile
• RIM BlackBerry – JME
  – http://www.blackberry.com/developers/index.shtml
• PalmOS – JME
  – http://www.vikdavid.com/mobile/
• (Vendor) Mobile Linux, OSDL, Maemo, LiMo – C,
  C++
  – http://www.osdl.org/lab_activities/mobile_linux
• Sun JME – Java Platform
  – http://java.sun.com/javame/
Plataformas Mobile
• Android (Google) / Open Handset Alliance
  – http://code.google.com/android/index.html
• iPhone (Apple)
  – http://developer.apple.com/iphone/index.action
• Symbian Foundation
  – http://www.symbianfoundation.org/
Plataforma Symbian
• Plataforma Symbian - Symbian OS, Symbian C++,
  cadeia de ferramentas
• Symbian OS - otimizado para dispositivos móveis
• Symbian C++: linguagem C++ específica - Open API
• UI Frameworks – S60, S80, UIQ
• Symbian e S60
   – http://www.symbian.com/
   – http://www.s60.com/life
Symbian OS - Pearl
• SmartPhones
  –   Keypad
  –   Display médio – QVGA
  –   Walkman, Camera
  –   Rádio FM
Symbian OS - Crystal
• Enterprise Class
  – Teclado QWERTY
  – Display grande
  – WLAN, Bluetooth
Symbian OS - Quartz
• Tablets, Touch-pads
  –   Touch-screen
  –   Geralmente sem teclado
  –   Display médio – QVGA
  –   Symbian Series 90
Plataforma Symbian - Ferramentas
• Carbide.C++ Express (FREE)
  – http://forum.nokia.com/main/0,6566,034-1001,00.
    html
• Metrowerks CodeWarrior
• Visual C++
• Borland C++ Builder Mobile Edition
BREW
• BREW: Binary Runtime Environment for Wireless
• Tecnologia e Modelo de Negócio da Qualcomm
  (CDMA)
• Linguagens C, C++ e Java
• Desenvolvimento apenas para celulares
  – Geralmente com linguagem C++
  – No Brasil – VIVO - CDMA
BREW
• VIVO - Celulares de vários fabricantes, mas o
  suporte Java é limitado
BREW
• VIVO - Celulares de vários fabricantes, mas o
  suporte Java é limitado
Android
• Google – Muito interessante mas de certa forma um
  “Java ME” proprietário representa maior
  fragmentação da base de hardware instalada e
  maior desafio para o desenvolvedor
• Open Handset Alliance
• T-Mobile G1 (HTC) - http://www.t-mobileg1.com/
• Mais devices entrando no mercado – Motorola, HTC,
  LG, outros)
Android




• T-Mobile G1
iPhone (Apple)
• Processo de obtenção do SDK é burocrático e
  empresa deve ser elegível
• Amadurecendo, ainda limitado se comparado com
  outras plataformas
• iPhone 3G - http://www.apple.com/br/iphone/
• Único fabricante de aparelhos é a Apple
• Dev Center -
  http://developer.apple.com/iphone/index.action
iPhone (Apple)
JME – Histórico inicial
• 1999
  – Junho - Release da versão EA da KVM para PalmOS durante o
    JavaOne
• 2000
  – Maio - CLDC 1.0 (JSR 30) spec e RI liberadas incluindo a KVM
  – • Junho - MIDP 1.0 (JSR 37) liberada para public review,
    implementação EA 1
  – • Verão - LG Telecom executa o primeiro deploy J2ME no mundo
    (Korea)
  – • Setembro - Spec MIDP 1.0, RI liberada, proposta para a Java
    APIs for Bluetooth (JSR 82)
  – • Novembro – Nokia anuncia primeiro handset com Java, o
    Nokia 9210 (PersonalJava+JavaPhone API built-in, MIDP como
    add-on)
JME – Histórico inicial
• 2001
  – • Janeiro - NTT DoCoMo disponibiliza o iAppli (baseado no
    CLDC) no Japão
  – • Fevereiro - CLDC RI 1.0.2 liberada (melhorias KVM);
  – • Abril - MIDP 2.0 (JSR 118) e Wireless Messaging API (JSR 120)
  – propostas
  – • Maio – Nextel é a primeira operadora a disponibilzar o J2ME
    (com MIDP) nos EUA
  – • Junho - Mobile Media API 1.0 (JSR 135) proposta
  – • Julho - CLDC 1.1 (JSR 139) proposta
  – • Novembro – Primeiro telefone Nokia Series 60 anunciado, o
    Nokia 7650
Introdução ao JME
• JME – Java Micro Edition
  – Plataforma de desenvolvimento de aplicações Java
    para dispositivos móveis, wireless, micro-dispositivos,
    embedded devices
  – MID – Mobile Information Device - MIDlets
  – IM – Information Module - IMlets
  – MIDlets – aplicações que executam nos MIDs
  – IMlets – aplicações que executam nos IMs
  – http://java.sun.com/javame/
Introdução ao JME
• Sistemas Operacionais
  – Vendor OS – Nokia OS, Motorola OS, SavaJe OS (LG)
  – Symbian OS (Java ME, S60, UIQ) – Open APIs
  – Linux, OSDL Mobile Linux (TODO) – closed APIs
• Java VMs
  – Kilobyte Virtual Machine
  – CLDC HI - Hotspot Implementation
  – SavaJe CDC JVM (Swing – JSR-209 - Advanced
    Graphics and UI Opt Pack for JME), CDC JVMs (AWT,
    eSWT)
Introdução ao JME
• Configurations
   – Configuração mínima englobando classes,
     características da JVM, conectividade e GUI, conforme
     categoria do dispositivo
   – CDC – Connected Device Configuration
   – CLDC – Connected Limited Device Configuration
• Profiles
   – No topo das configurações, APIs específicas conforme
     perfil de uma categoria de dispositivos
   – MIDP - Mobile Information Device Profile
   – IMP - Information Module Profile
Arquitetura JME – Software Stack
• Configurations, Profiles, Optional Packs, OEM
  APIs (específicas do fabricante), APIs nativas
  (podem ser open, dependendo do SO)
Introdução ao JME
• Optional Packages
   – Pacotes de extensão provendo APIs específicas endereçando
     vários aspectos – pode ter várias APIS e implementar todas ou
     algumas
      •   Segurança, JavaCard
      •   WebServices
      •   SIP – Session Initiation Protocol
      •   Bluetooth
      •   MMS – Multimedia Messaging System
      •   SMS – Short Messaging System
      •   3D – Mobile 3D API
      •   PIM
      •   FileConnection (filesystems)
      •   Sensors
      •   I18N - Internationalization
Introdução ao JME
• Configurations, Profiles, Opt Packs, seus MIDlets
  – Configuração mínima englobando classes,
    características da JVM, conectividade e GUI, conforme
    categoria do dispositiv
     •   Nokia OS ou Symbian OS
     •   CLDC 1.0 ou 1.1
     •   MIDP 2.0
     •   JSR-75, JSR-82, JSR-135, JSR-179
     •   JSR-180, etc.
     •   MIDlets do desenvolvedor
Introdução ao JME
• JME Software Stack
  – Configurations: CLDC 1.0, 1.1, CDC 1.0, CDC 1.1
  – Profiles: MIDP 1.0, MIDP 1.1, IMP 1.0, IMP-NG, FP,
    PP, PBP
  – Optional Packs: Bluetooth (JSR-82), MMAPI (JSR-
    135), WMA (JSRS 120 e 205), WebServices (JSR-
    172), 3D-M3G (JSR-184), PIM and FileConnection
    (JSR-75), Location API (JSR-179), Mobile
    Internationalization API (JSR-238), SIP API for JME
    (JSR-180), SATSA (JSR-177), S2DVG (JSR-226),
    AMMS (JSR-234), MIA (JSR-238), outros
  – JTWI (JSR-185), MSA for CLDC (JSR-248)
MSA – JSR-248 e 249
• MSA – Mobile Service Architecture
   –   JSR-248 - Mobile Service Architecture for CLDC
   –   JSR-249 - Mobile Service Architecture Advanced
   –   JSR-232 - Mobile Operational Management
   –   Loadable APIs – Middleware for JME
   –   Advanced Core APIs
   –   eSWT
   –   On-Device Debugging
   –   FP 1.1
Introdução ao JME
• MIDlet Suites
  – JAR (Java Application Archive) e JAD (Java
    Application Descriptor)
  – O MIDlet suite engloba:
     •   MIDlets, classes secundárias
     •   Recursos (imagens, icones, sons, arquivos
     •   Arquivo manifest.MF
     •   Arquivo JAD com informações para o AMS / JAM
Introdução ao JME
• MIDlet Suites – processo desenvolvimento
Introdução ao JME
• Ciclo de vida básico de um MIDlet
Introdução ao JME
• Sequência de eventos
Introdução ao JME
• HelloMIDlet
   import javax.microedition.midlet.*;
     import javax.microedition.lcdui.*;
     public class HelloMIDlet extends MIDlet {
     // The display for this MIDlet
     private Display display;
     // TextBox to display text
     TextBox box = null;
     public HelloMIDlet () {
     }
     public void startApp() throws MIDletStateChangeException {
     display = Display.getDisplay(this);
     box = new TextBox("MGJUG 2006", "Olá MGJUG!", 20, 0);
     display.setCurrent(box);
     }
Introdução ao JME
• HelloMIDlet
   /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
     public void pauseApp() {
     }
     /**
     * Destroy must cleanup everything not handled by the garbage
     collector.
     * In this case there is nothing to cleanup.
     */
     public void destroyApp(boolean unconditional) throws
     MIDletStateChangeException {
     }
     }
Introdução ao JME
• HelloMIDlet
Introdução ao JME
• Ciclo de vida modificado - PushRegistry
Introdução ao JME
• JTWI (JSR-185) – Java Technology for The
  Wireless Industry
  – Melhorar a compatibilidade, interoperabilidade e
    esclarecer pontos obscuros de algumas JSRs
  – Obrigatórias: MIDP 2.0 e WMA 1.1
  – Opcionais: MMAPI 1.1
  – Configurations: CLDC 1.0 mínimo, CLDC 1.1
Introdução ao JME
• JTWI (JSR-185) – Java Technology for The
  Wireless Industry
Introdução ao JME
• CLDC 1.0 (JSR-30)
  –   Subconjunto do núcleo do J2SE 1.3.1, tipos de dados, coleções, I/O
  –   Conjunto limitado de exceções
  –   Sem custom classloader
  –   Sem thread groups, sem daemon threads
  –   Sem finalização
  –   Sem reflexão
  –   Sem JNI
  –   Verificação de classes em duas fases (off-device, on-device)
  –   Modelo Sandbox
  –   Pacotes java.* e javax.microedition.* são reservados
  –   Classloading apenas apenas de conteúdo do JAR (MIDlet suite)
  –   GCF básico
  –   Suporte Unicode 3.0 e ISO Latin-1
Introdução ao JME
• CLDC 1.1 (JSR-139)
  – Suporte ponto-flutuante, incluindo os wrappers Float e Double e
    métodos sin, cos, tan
  – Adição de weak references
  – Thread.getName(), NoClassDefFoundError, Boolean.TRUE,
    Boolean.FALSE, Date.toString(), String.equalsIgnoreCase(),
    Thread.interrupt()
  – Melhorias nas classes Calendar, Date and TimeZone
  – Aumento de memória de 160 KB para 192 KB
Introdução ao JME
• MIDP 2.0 (JSR-118)
  – Modelo de aplicação/execução
  – GUI API
  – RMS (Record Management Storage) API
  – Protocolos de rede e recursos avançados, incluindo conexões
    seguras
  – Gaming API, Media API
  – Políticas de Segurança, Code Signing, modelo Trusted
  – Deployment de aplicações e provisão OTA (Over The Air)
NOKIA Developer Platforms
• JME software stack
Tendências / Novidades
• eSWT – embedded Standard Widget Toolkit
   –   Subconjunto do Eclipse SWT
   –   Native look-and-feel
   –   Free Layout
   –   Controles avançados (MultiPageDialog, Browser, etc)
   –   JSR-222 (SVG Graphics) e JSR-258 (Mobile UI Customization)
   –   http://www.eclipse.org/ercp/
   –   Atualmente WM2003 e Symbian Series 80
Tendências / Novidades
• LWUIT – LightWeight User Interface Toolkit
   – Modelo similar ao Java AWT/Swing (eventos)
   – Temas, transições, animações, aparência plugável
   – Projeto no Java.net - https://lwuit.dev.java.net/
Tendências / Novidades
• LWUIT – LightWeight User Interface Toolkit
   – Componentes poderosos (exemplos abaixo)
   –   Swing Like MVC (Model View Controller)
   –   PLAF (Pluggable Look And Feel) & Themes
   –   Fonts
   –   Touch Screen
   –   Animations & Transitions
   –   Rich widgets
   –   3D Integration (Optional)
   –   Painters
   –   Modal Dialogs
   –   External Tools
   –   I18N/L10N
   –   SVG Integration (Optional)
SCMAD
• SCMAD - Sun Certified Mobile Application Developer
   –    Section 1: JTWI (JSR 185) and Overview of JTWI-Compliant Wireless
       Applications
   –    Section 2: CLDC 1.0 and 1.1
   –    Section 3: Security (Both CLDC and MIDP)
   –    Section 4: Networking
   –    Section 5: Application Model, Delivery, Lifecycle, and Provisioning
   –    Section 6: MIDP Persistent Storage
   –    Section 7: Push Registry
   –    Section 8: MIDP User Interface (UI) API
   –    Section 9: MIDP Game API
   –    Section 10: Media Using MIDP 2.0 and the MMAPI 1.1
   –    Section 11: Wireless Messaging API 1.1
   –   http://www.sun.com/training/catalog/courses/CX-310-110.xml
SCMAD
• SCMAD - Sun Certified Mobile Application Developer
   – JSR 185 - Java Technology for the Wireless Industry (JTWI)
   – JSR 30 - Connected Limited Device Configuration (CLDC) 1.0
   – JSR 139 - Connected Limited Device Configuration (CLDC) 1.1
   – JSR 118 - Mobile Information Device Profile 2.0 (MIDP). MIDP
     2.0 superceded MIDP 1.0
   – JSR 120 - Wireless Messaging API(WMA) 1.1
   – JSR 135 - Mobile Media API (MMAPI) 1.1
• Mobile JSRs – JCP
   – http://jcp.org/en/jsr/tech?listBy=1&listByType=platform
Introdução ao JME
• CLDC 1.0 GCF – Generic Connection Framework
Introdução ao JME
• MIDP 1.0/ 2.0 GCF
Introdução ao JME
• MIDP UI API – LCDUI – High e Low level
Introdução ao JME
• MIDP – High-level UI API
Introdução ao JME
• MIDP – Low-level UI API
Introdução ao JME
• MIDP 2.0 – Game API
Introdução ao JME
• WMA (JSR-120) – Wireless Messaging API
Introdução ao JME
• MMAPI (JSR-135) – Mobile Media API
Introdução ao JME
• MMAPI (JSR-135) – Mobile Media API
Extras
NOKIA Developer Platforms
• ForumNOKIA – http://forum.nokia.com
  – Forum de discussão, intercâmbio de informações,
    apoio e suporte técnico ao desenvolvimento móvel
  – Projetos envolvendo tecnologia JME, Symbian C++,
    S60, UIQ, Maemo Linux, Python, Flash Lite
    ActionScript, Perl – S60 Browser JS engine
  – Mais de 2 milhões de desenvolvedores mundialmente
  – Forum Nokia Poster of The Month
  – Forum Nokia Champion
NOKIA Developer Platforms
• S60, Series 30, Series 40, Series 80, Series 90, Maemo
   – Series 40 – feature phones (JME, sem API nativa)
   – S60 – Smartphones (API nativa Symbian C++, JME)
   – Series 80 – Enterprise class (API nativa Symbian
     C++, JME) – Flash e Python
NOKIA Developer Platforms
NOKIA Developer Platforms
• S60, Series 40, Series 80
NOKIA Developer Tools
•   Carbide.j – Java Development Tool
•   Nokia SDKs – Device, Prototype, Concept, Platform
•   NCF – Nokia Connectivity Framework
•   Maemo Tools
•   Carbide.C++ Express - S60/Symbian C++ Development
    Tool
NOKIA Developer Tools
• Carbide.j – Java Development Tool
   – Stand-alone, integração com Eclipse, NetBeans, Jbuilder
   – NCF – Nokia Connectivity Framework (Lite e Full)
   – Create Class, Create Pack, Sign Pack, Deploy, Emulators, Screen e Flow
     Designers, Audio Converters, DRM Editor, WebServices Client Tool
NOKIA Developer Tools
•   Nokia SDKs – Platform SDK (Series 40, S60, Series 80), Device SDK,
    Concept SDK
NOKIA Developer Tools
• Carbide.j – Java Development Tool
   – http://forum.nokia.com/main/0,6566,034-2,00.html
NOKIA Developer Tools
• Series 40 Platform SDKs
   – Emulator dos devices Series 40
   – Mesma implementação dos devices para as APIs Java
   – Múltiplas instâncias e suporte a conectividade
   – Agiliza diagnóstico e antecipa problemas

• S60 Platform SDKs, for Java
   – Emulator dos devices MIDP Series 60
   – Mesma implementação dos devices para as APIs Java
   – Suporte a conectividade
NOKIA Developer Tools
• S80 Platform SDKs, for Java
   – Emulator dos devices MIDP Series 80 e PP
   – Mesma implementação dos devices para as APIs Java
   – Suporte a conectividade

• Nokia Connectivity Framework
   – Suporte a conectividade com GUI amigável
   – Gerenciamento de ambientes de teste e simulação
   – Tracing e Auto-detection
NOKIA Developer Tools
• Nokia SDKs – Prototype SDK
   – Developer Platforms e Devices: Series 40, S60, Series 80, Nokia
     7710, vários UI sizes
   – Performance
   – Múltiplas instâncias e suporte a conectividade
   – Aplicações exemplo
NOKIA Developer Tools
• NCF - Nokia Connectivity Framework
NOKIA Developer Tools
•   Maemo – Nokia 770 Internet Tablet (Linux)
     – http://www.maemo.org/?mplink=promo-01
     – http://www.nokia.com/770
NOKIA Developer Tools
• Carbide.C++ Express (Symbian C++ / S60)
Tendências / Novidades
• High-end
  – Nokia N92 – DVB-H
Tendências / Novidades
• N92
Tendências / Novidades
• V820 - ISDB
Tendências / Novidades
• N92
Muito Obrigado!
• Slides e dúvidas - juarez.junior
• Agradecimentos
  – Prof. Clayton Vieira Fraga Filho - FAGOC
  – Felipe Carneiro e Fabricio de Luca - UJUG
  – Ron Liechty – Nokia – Forum Nokia Community
    Manager
  – Waldir Andrade Trevizano - FAGOC
  – FAGOC
Trademarks and Copyrights
• As marcas registradas (trademarks) e direitos
  autorais (copyrights) para as tecnologias são
  propriedade das empresas apresentadas no
  tutorial – Maio de 2006.

Weitere ähnliche Inhalte

Ähnlich wie Desenvolvimento aplicacoesdispositivosmoveis

20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_juniorJuarez Junior
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveisigorpimentel
 
Curso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosCurso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosLeonardo Melo Santos
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1Talita Carvalho
 
Aplicações Móveis com J2ME
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2MEelliando dias
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Appliedmarcelobeckmann
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfJoberthSilva
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfJoberthSilva
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!Leonardo De Moura Rocha Lima
 
Desenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEDesenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEWaldir R. Pires Jr
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFGiordano Bruno Vieira
 
Desenvolvimento de aplicações para Celular com Java ME
Desenvolvimento de aplicações para Celular com Java MEDesenvolvimento de aplicações para Celular com Java ME
Desenvolvimento de aplicações para Celular com Java MEMaurílio Silva
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
 
Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)elliando dias
 
Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004elliando dias
 

Ähnlich wie Desenvolvimento aplicacoesdispositivosmoveis (20)

20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveis
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Curso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosCurso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicos
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1
 
Aplicações Móveis com J2ME
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2ME
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
11 palm - kaue
11   palm - kaue11   palm - kaue
11 palm - kaue
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Applied
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
 
A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!A internet das coisas e o futuro - Java ME 8 e adiante!
A internet das coisas e o futuro - Java ME 8 e adiante!
 
Desenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEDesenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaME
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JF
 
Desenvolvimento de aplicações para Celular com Java ME
Desenvolvimento de aplicações para Celular com Java MEDesenvolvimento de aplicações para Celular com Java ME
Desenvolvimento de aplicações para Celular com Java ME
 
Introducao ao J2ME
Introducao ao J2MEIntroducao ao J2ME
Introducao ao J2ME
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
 
Mc1 JAVA
Mc1 JAVAMc1 JAVA
Mc1 JAVA
 
Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)
 
Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004
 

Mehr von Juarez Junior

Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADBOracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADBJuarez Junior
 
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...Juarez Junior
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Juarez Junior
 
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...Juarez Junior
 
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...Juarez Junior
 
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...Juarez Junior
 
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...Juarez Junior
 
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...Juarez Junior
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesJuarez Junior
 
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...Juarez Junior
 
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...Juarez Junior
 
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...Juarez Junior
 
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...Juarez Junior
 
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...Juarez Junior
 
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ThreadsDWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ThreadsJuarez Junior
 
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...Juarez Junior
 
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...Juarez Junior
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesJuarez Junior
 
DevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesDevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesJuarez Junior
 
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...Juarez Junior
 

Mehr von Juarez Junior (20)

Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADBOracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
 
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
 
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
 
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
 
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
 
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
 
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for Databases
 
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
 
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
 
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
 
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
 
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
 
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ThreadsDWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
 
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
 
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
 
DevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesDevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for Databases
 
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
 

Desenvolvimento aplicacoesdispositivosmoveis

  • 1. Desenvolvimento de aplicações para dispositivos móveis FAGOC – 10 de Outubro de 2008 Juarez Junior – Mobile Software Expert juarez.junior.mobile@gmail.com
  • 2. Palestrante • Juarez Alvares Barbosa Junior – SCMAD - Sun Certified Mobile Application Developer – ForumNOKIA Poster of The Month – Abril de 2006 – SCAJ/SCPJ2/SCWCD/SCBCD e SCEA I – ForumNOKIA Champion 2006, 2007, 2008, 2009 – Accredited Symbian Developer
  • 3. Agenda • Mobilidade • Convergência • Plataformas Mobile • Symbian Platform • BREW • JME • Plataformas Nokia • Ferramentas de Desenvolvimento Nokia • Outras ferramentas • Tendências / Novidades
  • 4. Mobilidade • 3 objetos importantes (top of mind) – Carteira – Chaves – Celular
  • 5. Convergência • Tudo-em-um (All-in-one) – Câmera Fotográfica (3.2 GSM, 7.0 WCDMA) – MP3 Player – Telefone – Rádio FM / Mobile TV (DVB-H) – Navegador Web – Email – Mensagens SMS – Organizador – Conectividade
  • 6. Plataformas Mobile • Symbian Platform – S60 / UIQ / OMAP – Symbian C++ – http://www.symbian.com/ – http://www.s60.com/life – http://www.uiq.com/ • Qualcomm BREW – C, C++, (Java?) – http://brew.qualcomm.com/brew/en/ • Microsoft Windows Mobile - .NET Mobile – http://www.microsoft.com/windowsmobile/default.mspx • NTT FOMA – JME – iAppli, iMode, DoJA – http://www.doja-developer.net/
  • 7. Plataformas Mobile • RIM BlackBerry – JME – http://www.blackberry.com/developers/index.shtml • PalmOS – JME – http://www.vikdavid.com/mobile/ • (Vendor) Mobile Linux, OSDL, Maemo, LiMo – C, C++ – http://www.osdl.org/lab_activities/mobile_linux • Sun JME – Java Platform – http://java.sun.com/javame/
  • 8. Plataformas Mobile • Android (Google) / Open Handset Alliance – http://code.google.com/android/index.html • iPhone (Apple) – http://developer.apple.com/iphone/index.action • Symbian Foundation – http://www.symbianfoundation.org/
  • 9. Plataforma Symbian • Plataforma Symbian - Symbian OS, Symbian C++, cadeia de ferramentas • Symbian OS - otimizado para dispositivos móveis • Symbian C++: linguagem C++ específica - Open API • UI Frameworks – S60, S80, UIQ • Symbian e S60 – http://www.symbian.com/ – http://www.s60.com/life
  • 10. Symbian OS - Pearl • SmartPhones – Keypad – Display médio – QVGA – Walkman, Camera – Rádio FM
  • 11. Symbian OS - Crystal • Enterprise Class – Teclado QWERTY – Display grande – WLAN, Bluetooth
  • 12. Symbian OS - Quartz • Tablets, Touch-pads – Touch-screen – Geralmente sem teclado – Display médio – QVGA – Symbian Series 90
  • 13. Plataforma Symbian - Ferramentas • Carbide.C++ Express (FREE) – http://forum.nokia.com/main/0,6566,034-1001,00. html • Metrowerks CodeWarrior • Visual C++ • Borland C++ Builder Mobile Edition
  • 14. BREW • BREW: Binary Runtime Environment for Wireless • Tecnologia e Modelo de Negócio da Qualcomm (CDMA) • Linguagens C, C++ e Java • Desenvolvimento apenas para celulares – Geralmente com linguagem C++ – No Brasil – VIVO - CDMA
  • 15. BREW • VIVO - Celulares de vários fabricantes, mas o suporte Java é limitado
  • 16. BREW • VIVO - Celulares de vários fabricantes, mas o suporte Java é limitado
  • 17. Android • Google – Muito interessante mas de certa forma um “Java ME” proprietário representa maior fragmentação da base de hardware instalada e maior desafio para o desenvolvedor • Open Handset Alliance • T-Mobile G1 (HTC) - http://www.t-mobileg1.com/ • Mais devices entrando no mercado – Motorola, HTC, LG, outros)
  • 19. iPhone (Apple) • Processo de obtenção do SDK é burocrático e empresa deve ser elegível • Amadurecendo, ainda limitado se comparado com outras plataformas • iPhone 3G - http://www.apple.com/br/iphone/ • Único fabricante de aparelhos é a Apple • Dev Center - http://developer.apple.com/iphone/index.action
  • 21. JME – Histórico inicial • 1999 – Junho - Release da versão EA da KVM para PalmOS durante o JavaOne • 2000 – Maio - CLDC 1.0 (JSR 30) spec e RI liberadas incluindo a KVM – • Junho - MIDP 1.0 (JSR 37) liberada para public review, implementação EA 1 – • Verão - LG Telecom executa o primeiro deploy J2ME no mundo (Korea) – • Setembro - Spec MIDP 1.0, RI liberada, proposta para a Java APIs for Bluetooth (JSR 82) – • Novembro – Nokia anuncia primeiro handset com Java, o Nokia 9210 (PersonalJava+JavaPhone API built-in, MIDP como add-on)
  • 22. JME – Histórico inicial • 2001 – • Janeiro - NTT DoCoMo disponibiliza o iAppli (baseado no CLDC) no Japão – • Fevereiro - CLDC RI 1.0.2 liberada (melhorias KVM); – • Abril - MIDP 2.0 (JSR 118) e Wireless Messaging API (JSR 120) – propostas – • Maio – Nextel é a primeira operadora a disponibilzar o J2ME (com MIDP) nos EUA – • Junho - Mobile Media API 1.0 (JSR 135) proposta – • Julho - CLDC 1.1 (JSR 139) proposta – • Novembro – Primeiro telefone Nokia Series 60 anunciado, o Nokia 7650
  • 23. Introdução ao JME • JME – Java Micro Edition – Plataforma de desenvolvimento de aplicações Java para dispositivos móveis, wireless, micro-dispositivos, embedded devices – MID – Mobile Information Device - MIDlets – IM – Information Module - IMlets – MIDlets – aplicações que executam nos MIDs – IMlets – aplicações que executam nos IMs – http://java.sun.com/javame/
  • 24. Introdução ao JME • Sistemas Operacionais – Vendor OS – Nokia OS, Motorola OS, SavaJe OS (LG) – Symbian OS (Java ME, S60, UIQ) – Open APIs – Linux, OSDL Mobile Linux (TODO) – closed APIs • Java VMs – Kilobyte Virtual Machine – CLDC HI - Hotspot Implementation – SavaJe CDC JVM (Swing – JSR-209 - Advanced Graphics and UI Opt Pack for JME), CDC JVMs (AWT, eSWT)
  • 25. Introdução ao JME • Configurations – Configuração mínima englobando classes, características da JVM, conectividade e GUI, conforme categoria do dispositivo – CDC – Connected Device Configuration – CLDC – Connected Limited Device Configuration • Profiles – No topo das configurações, APIs específicas conforme perfil de uma categoria de dispositivos – MIDP - Mobile Information Device Profile – IMP - Information Module Profile
  • 26. Arquitetura JME – Software Stack • Configurations, Profiles, Optional Packs, OEM APIs (específicas do fabricante), APIs nativas (podem ser open, dependendo do SO)
  • 27. Introdução ao JME • Optional Packages – Pacotes de extensão provendo APIs específicas endereçando vários aspectos – pode ter várias APIS e implementar todas ou algumas • Segurança, JavaCard • WebServices • SIP – Session Initiation Protocol • Bluetooth • MMS – Multimedia Messaging System • SMS – Short Messaging System • 3D – Mobile 3D API • PIM • FileConnection (filesystems) • Sensors • I18N - Internationalization
  • 28. Introdução ao JME • Configurations, Profiles, Opt Packs, seus MIDlets – Configuração mínima englobando classes, características da JVM, conectividade e GUI, conforme categoria do dispositiv • Nokia OS ou Symbian OS • CLDC 1.0 ou 1.1 • MIDP 2.0 • JSR-75, JSR-82, JSR-135, JSR-179 • JSR-180, etc. • MIDlets do desenvolvedor
  • 29. Introdução ao JME • JME Software Stack – Configurations: CLDC 1.0, 1.1, CDC 1.0, CDC 1.1 – Profiles: MIDP 1.0, MIDP 1.1, IMP 1.0, IMP-NG, FP, PP, PBP – Optional Packs: Bluetooth (JSR-82), MMAPI (JSR- 135), WMA (JSRS 120 e 205), WebServices (JSR- 172), 3D-M3G (JSR-184), PIM and FileConnection (JSR-75), Location API (JSR-179), Mobile Internationalization API (JSR-238), SIP API for JME (JSR-180), SATSA (JSR-177), S2DVG (JSR-226), AMMS (JSR-234), MIA (JSR-238), outros – JTWI (JSR-185), MSA for CLDC (JSR-248)
  • 30. MSA – JSR-248 e 249 • MSA – Mobile Service Architecture – JSR-248 - Mobile Service Architecture for CLDC – JSR-249 - Mobile Service Architecture Advanced – JSR-232 - Mobile Operational Management – Loadable APIs – Middleware for JME – Advanced Core APIs – eSWT – On-Device Debugging – FP 1.1
  • 31.
  • 32. Introdução ao JME • MIDlet Suites – JAR (Java Application Archive) e JAD (Java Application Descriptor) – O MIDlet suite engloba: • MIDlets, classes secundárias • Recursos (imagens, icones, sons, arquivos • Arquivo manifest.MF • Arquivo JAD com informações para o AMS / JAM
  • 33. Introdução ao JME • MIDlet Suites – processo desenvolvimento
  • 34. Introdução ao JME • Ciclo de vida básico de um MIDlet
  • 35. Introdução ao JME • Sequência de eventos
  • 36. Introdução ao JME • HelloMIDlet import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMIDlet extends MIDlet { // The display for this MIDlet private Display display; // TextBox to display text TextBox box = null; public HelloMIDlet () { } public void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); box = new TextBox("MGJUG 2006", "Olá MGJUG!", 20, 0); display.setCurrent(box); }
  • 37. Introdução ao JME • HelloMIDlet /** * Pause is a no-op since there are no background activities or * record stores that need to be closed. */ public void pauseApp() { } /** * Destroy must cleanup everything not handled by the garbage collector. * In this case there is nothing to cleanup. */ public void destroyApp(boolean unconditional) throws MIDletStateChangeException { } }
  • 38. Introdução ao JME • HelloMIDlet
  • 39. Introdução ao JME • Ciclo de vida modificado - PushRegistry
  • 40. Introdução ao JME • JTWI (JSR-185) – Java Technology for The Wireless Industry – Melhorar a compatibilidade, interoperabilidade e esclarecer pontos obscuros de algumas JSRs – Obrigatórias: MIDP 2.0 e WMA 1.1 – Opcionais: MMAPI 1.1 – Configurations: CLDC 1.0 mínimo, CLDC 1.1
  • 41. Introdução ao JME • JTWI (JSR-185) – Java Technology for The Wireless Industry
  • 42. Introdução ao JME • CLDC 1.0 (JSR-30) – Subconjunto do núcleo do J2SE 1.3.1, tipos de dados, coleções, I/O – Conjunto limitado de exceções – Sem custom classloader – Sem thread groups, sem daemon threads – Sem finalização – Sem reflexão – Sem JNI – Verificação de classes em duas fases (off-device, on-device) – Modelo Sandbox – Pacotes java.* e javax.microedition.* são reservados – Classloading apenas apenas de conteúdo do JAR (MIDlet suite) – GCF básico – Suporte Unicode 3.0 e ISO Latin-1
  • 43. Introdução ao JME • CLDC 1.1 (JSR-139) – Suporte ponto-flutuante, incluindo os wrappers Float e Double e métodos sin, cos, tan – Adição de weak references – Thread.getName(), NoClassDefFoundError, Boolean.TRUE, Boolean.FALSE, Date.toString(), String.equalsIgnoreCase(), Thread.interrupt() – Melhorias nas classes Calendar, Date and TimeZone – Aumento de memória de 160 KB para 192 KB
  • 44. Introdução ao JME • MIDP 2.0 (JSR-118) – Modelo de aplicação/execução – GUI API – RMS (Record Management Storage) API – Protocolos de rede e recursos avançados, incluindo conexões seguras – Gaming API, Media API – Políticas de Segurança, Code Signing, modelo Trusted – Deployment de aplicações e provisão OTA (Over The Air)
  • 45. NOKIA Developer Platforms • JME software stack
  • 46. Tendências / Novidades • eSWT – embedded Standard Widget Toolkit – Subconjunto do Eclipse SWT – Native look-and-feel – Free Layout – Controles avançados (MultiPageDialog, Browser, etc) – JSR-222 (SVG Graphics) e JSR-258 (Mobile UI Customization) – http://www.eclipse.org/ercp/ – Atualmente WM2003 e Symbian Series 80
  • 47. Tendências / Novidades • LWUIT – LightWeight User Interface Toolkit – Modelo similar ao Java AWT/Swing (eventos) – Temas, transições, animações, aparência plugável – Projeto no Java.net - https://lwuit.dev.java.net/
  • 48. Tendências / Novidades • LWUIT – LightWeight User Interface Toolkit – Componentes poderosos (exemplos abaixo) – Swing Like MVC (Model View Controller) – PLAF (Pluggable Look And Feel) & Themes – Fonts – Touch Screen – Animations & Transitions – Rich widgets – 3D Integration (Optional) – Painters – Modal Dialogs – External Tools – I18N/L10N – SVG Integration (Optional)
  • 49. SCMAD • SCMAD - Sun Certified Mobile Application Developer – Section 1: JTWI (JSR 185) and Overview of JTWI-Compliant Wireless Applications – Section 2: CLDC 1.0 and 1.1 – Section 3: Security (Both CLDC and MIDP) – Section 4: Networking – Section 5: Application Model, Delivery, Lifecycle, and Provisioning – Section 6: MIDP Persistent Storage – Section 7: Push Registry – Section 8: MIDP User Interface (UI) API – Section 9: MIDP Game API – Section 10: Media Using MIDP 2.0 and the MMAPI 1.1 – Section 11: Wireless Messaging API 1.1 – http://www.sun.com/training/catalog/courses/CX-310-110.xml
  • 50. SCMAD • SCMAD - Sun Certified Mobile Application Developer – JSR 185 - Java Technology for the Wireless Industry (JTWI) – JSR 30 - Connected Limited Device Configuration (CLDC) 1.0 – JSR 139 - Connected Limited Device Configuration (CLDC) 1.1 – JSR 118 - Mobile Information Device Profile 2.0 (MIDP). MIDP 2.0 superceded MIDP 1.0 – JSR 120 - Wireless Messaging API(WMA) 1.1 – JSR 135 - Mobile Media API (MMAPI) 1.1 • Mobile JSRs – JCP – http://jcp.org/en/jsr/tech?listBy=1&listByType=platform
  • 51. Introdução ao JME • CLDC 1.0 GCF – Generic Connection Framework
  • 52. Introdução ao JME • MIDP 1.0/ 2.0 GCF
  • 53. Introdução ao JME • MIDP UI API – LCDUI – High e Low level
  • 54. Introdução ao JME • MIDP – High-level UI API
  • 55. Introdução ao JME • MIDP – Low-level UI API
  • 56. Introdução ao JME • MIDP 2.0 – Game API
  • 57. Introdução ao JME • WMA (JSR-120) – Wireless Messaging API
  • 58. Introdução ao JME • MMAPI (JSR-135) – Mobile Media API
  • 59. Introdução ao JME • MMAPI (JSR-135) – Mobile Media API
  • 61. NOKIA Developer Platforms • ForumNOKIA – http://forum.nokia.com – Forum de discussão, intercâmbio de informações, apoio e suporte técnico ao desenvolvimento móvel – Projetos envolvendo tecnologia JME, Symbian C++, S60, UIQ, Maemo Linux, Python, Flash Lite ActionScript, Perl – S60 Browser JS engine – Mais de 2 milhões de desenvolvedores mundialmente – Forum Nokia Poster of The Month – Forum Nokia Champion
  • 62. NOKIA Developer Platforms • S60, Series 30, Series 40, Series 80, Series 90, Maemo – Series 40 – feature phones (JME, sem API nativa) – S60 – Smartphones (API nativa Symbian C++, JME) – Series 80 – Enterprise class (API nativa Symbian C++, JME) – Flash e Python
  • 64. NOKIA Developer Platforms • S60, Series 40, Series 80
  • 65. NOKIA Developer Tools • Carbide.j – Java Development Tool • Nokia SDKs – Device, Prototype, Concept, Platform • NCF – Nokia Connectivity Framework • Maemo Tools • Carbide.C++ Express - S60/Symbian C++ Development Tool
  • 66. NOKIA Developer Tools • Carbide.j – Java Development Tool – Stand-alone, integração com Eclipse, NetBeans, Jbuilder – NCF – Nokia Connectivity Framework (Lite e Full) – Create Class, Create Pack, Sign Pack, Deploy, Emulators, Screen e Flow Designers, Audio Converters, DRM Editor, WebServices Client Tool
  • 67. NOKIA Developer Tools • Nokia SDKs – Platform SDK (Series 40, S60, Series 80), Device SDK, Concept SDK
  • 68. NOKIA Developer Tools • Carbide.j – Java Development Tool – http://forum.nokia.com/main/0,6566,034-2,00.html
  • 69. NOKIA Developer Tools • Series 40 Platform SDKs – Emulator dos devices Series 40 – Mesma implementação dos devices para as APIs Java – Múltiplas instâncias e suporte a conectividade – Agiliza diagnóstico e antecipa problemas • S60 Platform SDKs, for Java – Emulator dos devices MIDP Series 60 – Mesma implementação dos devices para as APIs Java – Suporte a conectividade
  • 70. NOKIA Developer Tools • S80 Platform SDKs, for Java – Emulator dos devices MIDP Series 80 e PP – Mesma implementação dos devices para as APIs Java – Suporte a conectividade • Nokia Connectivity Framework – Suporte a conectividade com GUI amigável – Gerenciamento de ambientes de teste e simulação – Tracing e Auto-detection
  • 71. NOKIA Developer Tools • Nokia SDKs – Prototype SDK – Developer Platforms e Devices: Series 40, S60, Series 80, Nokia 7710, vários UI sizes – Performance – Múltiplas instâncias e suporte a conectividade – Aplicações exemplo
  • 72. NOKIA Developer Tools • NCF - Nokia Connectivity Framework
  • 73. NOKIA Developer Tools • Maemo – Nokia 770 Internet Tablet (Linux) – http://www.maemo.org/?mplink=promo-01 – http://www.nokia.com/770
  • 74. NOKIA Developer Tools • Carbide.C++ Express (Symbian C++ / S60)
  • 75. Tendências / Novidades • High-end – Nokia N92 – DVB-H
  • 79. Muito Obrigado! • Slides e dúvidas - juarez.junior • Agradecimentos – Prof. Clayton Vieira Fraga Filho - FAGOC – Felipe Carneiro e Fabricio de Luca - UJUG – Ron Liechty – Nokia – Forum Nokia Community Manager – Waldir Andrade Trevizano - FAGOC – FAGOC
  • 80. Trademarks and Copyrights • As marcas registradas (trademarks) e direitos autorais (copyrights) para as tecnologias são propriedade das empresas apresentadas no tutorial – Maio de 2006.