Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvimento aplicacoesdispositivosmoveis

378 views

Published on

Published in: Technology
  • Be the first to comment

Desenvolvimento aplicacoesdispositivosmoveis

  1. 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. 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. 3. Agenda• Mobilidade• Convergência• Plataformas Mobile• Symbian Platform• BREW• JME• Plataformas Nokia• Ferramentas de Desenvolvimento Nokia• Outras ferramentas• Tendências / Novidades
  4. 4. Mobilidade• 3 objetos importantes (top of mind) – Carteira – Chaves – Celular
  5. 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. 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. 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. 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. 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. 10. Symbian OS - Pearl• SmartPhones – Keypad – Display médio – QVGA – Walkman, Camera – Rádio FM
  11. 11. Symbian OS - Crystal• Enterprise Class – Teclado QWERTY – Display grande – WLAN, Bluetooth
  12. 12. Symbian OS - Quartz• Tablets, Touch-pads – Touch-screen – Geralmente sem teclado – Display médio – QVGA – Symbian Series 90
  13. 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. 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. 15. BREW• VIVO - Celulares de vários fabricantes, mas o suporte Java é limitado
  16. 16. BREW• VIVO - Celulares de vários fabricantes, mas o suporte Java é limitado
  17. 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)
  18. 18. Android• T-Mobile G1
  19. 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
  20. 20. iPhone (Apple)
  21. 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. 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. 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. 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. 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. 26. Arquitetura JME – Software Stack• Configurations, Profiles, Optional Packs, OEM APIs (específicas do fabricante), APIs nativas (podem ser open, dependendo do SO)
  27. 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. 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. 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. 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. 31. 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
  32. 32. Introdução ao JME• MIDlet Suites – processo desenvolvimento
  33. 33. Introdução ao JME• Ciclo de vida básico de um MIDlet
  34. 34. Introdução ao JME• Sequência de eventos
  35. 35. 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); }
  36. 36. 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 { } }
  37. 37. Introdução ao JME• HelloMIDlet
  38. 38. Introdução ao JME• Ciclo de vida modificado - PushRegistry
  39. 39. 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
  40. 40. Introdução ao JME• JTWI (JSR-185) – Java Technology for The Wireless Industry
  41. 41. 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
  42. 42. 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
  43. 43. 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)
  44. 44. NOKIA Developer Platforms• JME software stack
  45. 45. 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
  46. 46. 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/
  47. 47. 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)
  48. 48. 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
  49. 49. 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
  50. 50. Introdução ao JME• CLDC 1.0 GCF – Generic Connection Framework
  51. 51. Introdução ao JME• MIDP 1.0/ 2.0 GCF
  52. 52. Introdução ao JME• MIDP UI API – LCDUI – High e Low level
  53. 53. Introdução ao JME• MIDP – High-level UI API
  54. 54. Introdução ao JME• MIDP – Low-level UI API
  55. 55. Introdução ao JME• MIDP 2.0 – Game API
  56. 56. Introdução ao JME• WMA (JSR-120) – Wireless Messaging API
  57. 57. Introdução ao JME• MMAPI (JSR-135) – Mobile Media API
  58. 58. Introdução ao JME• MMAPI (JSR-135) – Mobile Media API
  59. 59. Extras
  60. 60. 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
  61. 61. 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
  62. 62. NOKIA Developer Platforms
  63. 63. NOKIA Developer Platforms• S60, Series 40, Series 80
  64. 64. 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
  65. 65. 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
  66. 66. NOKIA Developer Tools• Nokia SDKs – Platform SDK (Series 40, S60, Series 80), Device SDK, Concept SDK
  67. 67. NOKIA Developer Tools• Carbide.j – Java Development Tool – http://forum.nokia.com/main/0,6566,034-2,00.html
  68. 68. 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
  69. 69. 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
  70. 70. 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
  71. 71. NOKIA Developer Tools• NCF - Nokia Connectivity Framework
  72. 72. NOKIA Developer Tools• Maemo – Nokia 770 Internet Tablet (Linux) – http://www.maemo.org/?mplink=promo-01 – http://www.nokia.com/770
  73. 73. NOKIA Developer Tools• Carbide.C++ Express (Symbian C++ / S60)
  74. 74. Tendências / Novidades• High-end – Nokia N92 – DVB-H
  75. 75. Tendências / Novidades• N92
  76. 76. Tendências / Novidades• V820 - ISDB
  77. 77. Tendências / Novidades• N92
  78. 78. 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
  79. 79. 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.

×