Programando pra
 Celular!? Java ME: o
 que é e como começar

Lucas Torri
l ucas t or r i @gm l . com
                   ai
Agenda
                  O que é?

           O que eu faço com isso?

             Como eu faço isso?

                  Cool Stuff

         Como acho mais informações?
Mercado de tel. celular no Brasil
• 164,5 milhões de aparelhos (agosto/2009)
  > Linhas de telefonia fixa: 43 milhões de telefones
• 89,61% da população brasileira possui uma linha
  móvel
• Fonte: www.anatel.gov.br
O que é Java ME?
• Java para dispositivos embarcados
O que eu faço com Java ME?
O que eu faço com Java ME/Celular?
Arquitetura Java ME
CLDC
• Connected, Limited Device “Configuration”
• Define configurações mínimas
  > Dispositivos com conexão de rede
  > Pouca memória (160 KB)
• JSR-30 (1.0) e JSR-139(1.1)
MIDP
• Mobile Information Device “Profile”
• Define um conjunto de APIs
• Aplicações chamadas de MIDlet
  > Ciclo de vida
  > UI de alto e baixo nível
  > RMS (Record Management Store)
  > Suporte HTTP
• Perfil atual dos dispositivos celulares
  > Versão 2.0
• JSR-37 (1.0), JSR-118 (2.0) e JSR-271 (3.0)
Como faço aplicações Java ME?
Como faço aplicações Java ME?
• NetBeans + WTK = Mobility Pack
NetBeans
• IDE Java
  > Ajax, C/C++, Databases, Debugger, Desktop, Editor,
    GUI Builder, Java EE, Java ME, Java SE, Javascript,
    Mobile, Profiler, Refactor, REST, Rich Client Platform,
    Ruby, SOA, SOAP, UML, Web, WSDL, XML
  > Amplo suporte a plugins
  > Desenvolvimento drag-and-drop
• Software Livre
  > Grátis!
  > Grande comunidade em volta
Java Platform Micro Edition Software
Development Kit 3.0
• Antigo Sun Wireless Toolkit (WTK)
• Implementação Java ME
   > Blu-ray Disc Java
   > CDC
   > CLDC & MIDP
       > WMA, MMAPI, JTWI, J2ME Web Services, PDAP,
         Bluetooth and OBEX, Mobile 3D Graphics
•   Emulador
•   OTA
•   Suporte a criptografia
•   Obfuscador
NetBeans Mobility Pack
• Extensão do NetBeans para Java ME
• Integração com o Wireless Toolkit
• Suporte de outros emuladores
  > Nokia, Sony Ericsson, Motorola, Siemens, ...
• Build baseado em Script Ant
• Visual Designer
demo
Como instalar?
• JAD
• JAR
O não tão básico: RMS


RecordStore rs = RecordStore.
   openRecordStore("myRecord", false);
byte b[] = someString.getBytes();
int id = rs.addRecord(b, 0, b.length);
getRecord(id, b, 0);
rs.deleteRecord(id);
rs.closeRecordStore();
O não tão básico: HTTP

HttpConnection c = (HttpConnection)
     Connector.open("http://web.site.com/");
c.setRequestMethod(HttpConnection.GET);
if (c.getResponseCode() ==
             HttpConnection.HTTP_OK) {
       InputStream in = c.openInputStream();
...
}
c.close();
Outras strings para o GCF*


"sms://+5121234567:5000"

"btspp://001AA3000C19:1;authenticate=false
;encrypt=false;master=false"

"serversocket://:10000"


                             *Específicas do aparelho
Cool Stuff: Floggy
• Framework para persistência
Person p = new Person(name, surname, ...);
PersistableManager pm =
      PersistableManager.getInstance();
int id = pm.save(p);
pm.load(p, id);
Cool Stuff: Marge
• Framework para Bluetooth
Cool Stuff: LWUIT
• Light-Weight UI Toolkit
Cool Stuff: JavaFX Mobile
• Plataforma RIA
Cool Stuff: PhoneME/Squawk
• KVMs
Outros SDKs
•   Sun Java ME SDK 3.0
•   NetBeans 6.5 IDE
•   MOTODEV Studio for Java ME
•   Nokia S60, S40, and NFC SDKs
•   BlackBerry JDE 4.7
•   Sony Ericsson SDK 2.5 for Java ME
•   LG SDK 1.2 for Java ME
•   http://java.sun.com/developer/technicalArticles/java
    me/stateoftheunion/
E agora?!
•   http://www.netbeans.org
•   http://mobility.netbeans.org/
•   http://java.sun.com/javame/index.jsp
•   http://mobileandembedded.org
E agora?!
•   http://floggy.sourceforge.net/
•   https://marge.dev.java.net/
•   https://lwuit.dev.java.net/
•   http://javafx.com/
•   http://phoneme.dev.java.net/
•   http://squawk.dev.java.net/
Mobile & Embedded – java.net
• 180 projetos
• 220.000 atividades
Programando pra
 Celular!? Java ME: o
 que é e como
 começar
 Muito Obrigado!
Lucas Torri
l ucas t or r i @gm l . com
                   ai

Programando pra Celular!? Java ME: o que é e como começar

  • 1.
    Programando pra Celular!?Java ME: o que é e como começar Lucas Torri l ucas t or r i @gm l . com ai
  • 2.
    Agenda O que é? O que eu faço com isso? Como eu faço isso? Cool Stuff Como acho mais informações?
  • 3.
    Mercado de tel.celular no Brasil • 164,5 milhões de aparelhos (agosto/2009) > Linhas de telefonia fixa: 43 milhões de telefones • 89,61% da população brasileira possui uma linha móvel • Fonte: www.anatel.gov.br
  • 4.
    O que éJava ME? • Java para dispositivos embarcados
  • 5.
    O que eufaço com Java ME?
  • 6.
    O que eufaço com Java ME/Celular?
  • 7.
  • 8.
    CLDC • Connected, LimitedDevice “Configuration” • Define configurações mínimas > Dispositivos com conexão de rede > Pouca memória (160 KB) • JSR-30 (1.0) e JSR-139(1.1)
  • 9.
    MIDP • Mobile InformationDevice “Profile” • Define um conjunto de APIs • Aplicações chamadas de MIDlet > Ciclo de vida > UI de alto e baixo nível > RMS (Record Management Store) > Suporte HTTP • Perfil atual dos dispositivos celulares > Versão 2.0 • JSR-37 (1.0), JSR-118 (2.0) e JSR-271 (3.0)
  • 10.
  • 11.
    Como faço aplicaçõesJava ME? • NetBeans + WTK = Mobility Pack
  • 12.
    NetBeans • IDE Java > Ajax, C/C++, Databases, Debugger, Desktop, Editor, GUI Builder, Java EE, Java ME, Java SE, Javascript, Mobile, Profiler, Refactor, REST, Rich Client Platform, Ruby, SOA, SOAP, UML, Web, WSDL, XML > Amplo suporte a plugins > Desenvolvimento drag-and-drop • Software Livre > Grátis! > Grande comunidade em volta
  • 13.
    Java Platform MicroEdition Software Development Kit 3.0 • Antigo Sun Wireless Toolkit (WTK) • Implementação Java ME > Blu-ray Disc Java > CDC > CLDC & MIDP > WMA, MMAPI, JTWI, J2ME Web Services, PDAP, Bluetooth and OBEX, Mobile 3D Graphics • Emulador • OTA • Suporte a criptografia • Obfuscador
  • 14.
    NetBeans Mobility Pack •Extensão do NetBeans para Java ME • Integração com o Wireless Toolkit • Suporte de outros emuladores > Nokia, Sony Ericsson, Motorola, Siemens, ... • Build baseado em Script Ant • Visual Designer
  • 15.
  • 16.
  • 17.
    O não tãobásico: RMS RecordStore rs = RecordStore. openRecordStore("myRecord", false); byte b[] = someString.getBytes(); int id = rs.addRecord(b, 0, b.length); getRecord(id, b, 0); rs.deleteRecord(id); rs.closeRecordStore();
  • 18.
    O não tãobásico: HTTP HttpConnection c = (HttpConnection) Connector.open("http://web.site.com/"); c.setRequestMethod(HttpConnection.GET); if (c.getResponseCode() == HttpConnection.HTTP_OK) { InputStream in = c.openInputStream(); ... } c.close();
  • 19.
    Outras strings parao GCF* "sms://+5121234567:5000" "btspp://001AA3000C19:1;authenticate=false ;encrypt=false;master=false" "serversocket://:10000" *Específicas do aparelho
  • 20.
    Cool Stuff: Floggy •Framework para persistência Person p = new Person(name, surname, ...); PersistableManager pm = PersistableManager.getInstance(); int id = pm.save(p); pm.load(p, id);
  • 21.
    Cool Stuff: Marge •Framework para Bluetooth
  • 22.
    Cool Stuff: LWUIT •Light-Weight UI Toolkit
  • 23.
    Cool Stuff: JavaFXMobile • Plataforma RIA
  • 24.
  • 25.
    Outros SDKs • Sun Java ME SDK 3.0 • NetBeans 6.5 IDE • MOTODEV Studio for Java ME • Nokia S60, S40, and NFC SDKs • BlackBerry JDE 4.7 • Sony Ericsson SDK 2.5 for Java ME • LG SDK 1.2 for Java ME • http://java.sun.com/developer/technicalArticles/java me/stateoftheunion/
  • 26.
    E agora?! • http://www.netbeans.org • http://mobility.netbeans.org/ • http://java.sun.com/javame/index.jsp • http://mobileandembedded.org
  • 27.
    E agora?! • http://floggy.sourceforge.net/ • https://marge.dev.java.net/ • https://lwuit.dev.java.net/ • http://javafx.com/ • http://phoneme.dev.java.net/ • http://squawk.dev.java.net/
  • 28.
    Mobile & Embedded– java.net • 180 projetos • 220.000 atividades
  • 29.
    Programando pra Celular!?Java ME: o que é e como começar Muito Obrigado! Lucas Torri l ucas t or r i @gm l . com ai