SlideShare a Scribd company logo
1 of 53
Download to read offline
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009




                         Wprowadzenie do J2ME

                                 Marcin Stachniuk
                               mstachniuk@gmail.com

                              Politechnika Wrocławska
                                 Wydział Elektroniki
           Studenckie Koło Naukowe Informatyki Systemów Autonomicznych
                               i Adaptacyjnych ISA2


                                29 października 2009




Marcin Stachniuk                                                    Wprowadzenie do J2ME      1/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Plan prezentacji


  1   Wprowadzenie

  2   Pierwszy kod

  3   Jakie środowisko?
        NetBeans
        Eclipse

  4   Uruchomienie aplikacji

  5   Podsumowanie



  Marcin Stachniuk                                                    Wprowadzenie do J2ME      2/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Plan prezentacji


  1   Wprowadzenie

  2   Pierwszy kod

  3   Jakie środowisko?
        NetBeans
        Eclipse

  4   Uruchomienie aplikacji

  5   Podsumowanie



  Marcin Stachniuk                                                    Wprowadzenie do J2ME      3/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

The Java Platform




  http://java.sun.com/javame/technology/index.jsp


  Marcin Stachniuk                                                     Wprowadzenie do J2ME      4/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

The Connected Limited Device Configuration




  http://java.sun.com/javame/technology/index.jsp



  Marcin Stachniuk                                                     Wprowadzenie do J2ME      5/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

CLDC 1.0 vs CLDC 1.1



  CLDC 1.0
     ”odchudzona” java 1.3
        pakiety: java.io, java.lang, java.util
        brak obsługi liczb zmiennoprzecinkowych

  CLDC 1.1 (JSR-139)
        obsługa liczb zmiennoprzecinkowych
        klasy Double i Float
        rozszerzona klasa Thread




  Marcin Stachniuk                                                    Wprowadzenie do J2ME      6/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

CLDC 1.0 vs CLDC 1.1



  CLDC 1.0
     ”odchudzona” java 1.3
        pakiety: java.io, java.lang, java.util
        brak obsługi liczb zmiennoprzecinkowych

  CLDC 1.1 (JSR-139)
        obsługa liczb zmiennoprzecinkowych
        klasy Double i Float
        rozszerzona klasa Thread




  Marcin Stachniuk                                                    Wprowadzenie do J2ME      6/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Mobile Information Device Profile cz. 1


  MIDP 1.0
     http
        GUI
        RMS Record Management Store

  MIDP 2.0
     https
        Mobile Media API (MMAPI)
        The Game API (Sprite, TiledLayer)
        Obrazy RGB
        Full Screen Mode


  Marcin Stachniuk                                                    Wprowadzenie do J2ME      7/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Mobile Information Device Profile cz. 1


  MIDP 1.0
     http
        GUI
        RMS Record Management Store

  MIDP 2.0
     https
        Mobile Media API (MMAPI)
        The Game API (Sprite, TiledLayer)
        Obrazy RGB
        Full Screen Mode


  Marcin Stachniuk                                                    Wprowadzenie do J2ME      7/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Mobile Information Device Profile cz. 2



  MIDP 2.1
     poprawiona wersja 2.0

  MIDP 3.0
     LIBlety
        uruchamianie wielu midletów
        bezpieczeństwo




  Marcin Stachniuk                                                    Wprowadzenie do J2ME      8/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Mobile Information Device Profile cz. 2



  MIDP 2.1
     poprawiona wersja 2.0

  MIDP 3.0
     LIBlety
        uruchamianie wielu midletów
        bezpieczeństwo




  Marcin Stachniuk                                                    Wprowadzenie do J2ME      8/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                29 października 2009

Plan prezentacji


  1   Wprowadzenie

  2   Pierwszy kod

  3   Jakie środowisko?
        NetBeans
        Eclipse

  4   Uruchomienie aplikacji

  5   Podsumowanie



  Marcin Stachniuk                                                    Wprowadzenie do J2ME      9/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

C++ I




1         #include <iostream>
2
3         using namespace std;
4
5         int main(int argc, char **argv)
6         {
7                cout << ’’Hello World’’ << endl;
8         }




    Marcin Stachniuk                                                    Wprowadzenie do J2ME     10/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Java SE I




1         public class Main {
2                public static void main(String [] args) {
3                       System.out.println(’’Hello World’’);
4                }
5         }




    Marcin Stachniuk                                                    Wprowadzenie do J2ME     11/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Java ME I



 1         import javax.microedition.midlet.*;
 2
 3         public class MyMidlet extends MIDlet {
 4             public void startApp() {
 5             }
 6
 7               public void pauseApp() {
 8               }
 9
10               public void destroyApp(boolean unconditional) {
11               }
12         }




     Marcin Stachniuk                                                    Wprowadzenie do J2ME     12/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Cykl życia aplikacji I




  http://developers.sun.com/mobility/midp/articles/fsm/



   Marcin Stachniuk                                                     Wprowadzenie do J2ME     13/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Java ME I

     Listing 1.

 1         import javax.microedition.lcdui.*;
 2         import javax.microedition.midlet.*;
 3
 4         public class Midlet extends MIDlet {
 5             public void startApp() {
 6                 TextBox textBox = new TextBox(’’Moj Pierwszy Midlet’’,
 7                                       ’’Hello World!’’, 20, 0);
 8                 Display display = Display.getDisplay(this);
 9                 display.setCurrent(textBox);
10                 System.out.println(’’Hello World!’’);
11             }
12
13               public void pauseApp() {
14               }
15
16               public void destroyApp(boolean unconditional) {
17               }
18         }

     Marcin Stachniuk                                                    Wprowadzenie do J2ME     14/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Listing 1 w działaniu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     15/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Java ME I

     Listing 2.

 1         import javax.microedition.lcdui.*;
 2         import javax.microedition.midlet.*;
 3
 4         public class Midlet extends MIDlet implements CommandListener {
 5             public void startApp() {
 6                 TextBox textBox = new TextBox(’’Moj Pierwszy Midlet’’,
 7                                       ’’Hello World!’’, 20, 0);
 8                 Command exitCommand = new Command(’’Koniec’’, Command.EXIT, 1);
 9                 textBox.setCommandListener(this);
10                 textBox.addCommand(exitCommand);
11                 Display display = Display.getDisplay(this);
12                 display.setCurrent(textBox);
13                 System.out.println(’’Hello World!’’);
14             }
15
16               public void pauseApp() {
17               }
18

     Marcin Stachniuk                                                    Wprowadzenie do J2ME     16/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Java ME II



19               public void destroyApp(boolean unconditional) {
20               }
21
22               public void commandAction(Command c, Displayable d) {
23                   if (c.getCommandType() == Command.EXIT) {
24                       destroyApp(false);
25                       notifyDestroyed();
26                   }
27               }
28         }




     Marcin Stachniuk                                                    Wprowadzenie do J2ME     17/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Listing 2 w działaniu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     18/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Plan prezentacji


  1   Wprowadzenie

  2   Pierwszy kod

  3   Jakie środowisko?
        NetBeans
        Eclipse

  4   Uruchomienie aplikacji

  5   Podsumowanie



  Marcin Stachniuk                                                    Wprowadzenie do J2ME     19/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Integrated Development Environment - IDE



  Podstawowe środowisko:
        Java Platform Micro Edition Software Development Kit 3.0

  Najpopularniejsze środowiska:
        NetBeans
        Eclipse
        IntelliJ IDEA
        Vi / Vim ;)




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     20/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans 6.7.1




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     21/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans download




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     22/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans Nowy Projekt




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     23/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans Nazwa Projektu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     24/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans Wybranie Platformy




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     25/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans Finish




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     26/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans Utworzony Midlet




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     27/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

NetBeans Uruchomienie MIDletu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     28/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse




   Marcin Stachniuk                                                    Wprowadzenie do J2ME     29/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse download




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     30/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Nowy Projekt




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     31/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Nazwa Projektu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     32/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Właściwości Projektu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     33/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Ustawienia Projektu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     34/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Dodanie Nowego Midletu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     35/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Nazwa Nowego Midletu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     36/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Tworzenie Midletu koniec




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     37/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Utworzony Midlet




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     38/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Eclipse Uruchomienie Midletu




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     39/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Plan prezentacji


  1   Wprowadzenie

  2   Pierwszy kod

  3   Jakie środowisko?
        NetBeans
        Eclipse

  4   Uruchomienie aplikacji

  5   Podsumowanie



  Marcin Stachniuk                                                    Wprowadzenie do J2ME     40/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

JAD i JAR




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     41/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Zawartość JAD



  MIDlet-1: Midlet, , Midlet
  MIDlet-Jar-Size: 1035
  MIDlet-Jar-URL: MobileApplication1.jar
  MIDlet-Name: MobileApplication1
  MIDlet-Vendor: Vendor
  MIDlet-Version: 1.0
  MicroEdition-Configuration: CLDC-1.1
  MicroEdition-Profile: MIDP-2.0




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     42/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Zawartość JAR




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     43/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Przesłanie Aplikacji




  Rysunek by Michał Walczak




   Marcin Stachniuk                                                    Wprowadzenie do J2ME     44/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Zawartość JAD - zmodyfikowana



  MIDlet-1: Midlet, , Midlet
  MIDlet-Jar-Size: 1035
  MIDlet-Jar-URL: http://myserwer.com/MobileApplication1.jar
  MIDlet-Name: MobileApplication1
  MIDlet-Vendor: Vendor
  MIDlet-Version: 1.0
  MicroEdition-Configuration: CLDC-1.1
  MicroEdition-Profile: MIDP-2.0




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     45/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Plan prezentacji


  1   Wprowadzenie

  2   Pierwszy kod

  3   Jakie środowisko?
        NetBeans
        Eclipse

  4   Uruchomienie aplikacji

  5   Podsumowanie



  Marcin Stachniuk                                                    Wprowadzenie do J2ME     46/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Czego się dzisiaj nauczyliśmy?




        Konfiguracje CLDC 1.0 i 1.1
        Profile MIDP 1.0 2.0 2.1 3.0
        Budowa programu, cykl życia aplikacji
        Środowiska IDE
        Uruchomienie Aplikacji




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     47/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Pytania




                                                ?




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     48/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                 29 października 2009

Kolejne spotkanie




  Temat: Dostęp do GUI niskiego poziomu
  Prowadzenie: Marcin Stachniuk
  Data: 5.11.2009 17.00
  Gdzie: sala 23 C-3




  Marcin Stachniuk                                                    Wprowadzenie do J2ME     49/50
Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME                          29 października 2009

Więcej informacji

        Kontakt z autorem:
        mstachniuk@gmail.com
        Strona koła naukowego ISA2
        http://autonom.ict.pwr.wroc.pl/
        Strona warsztatów:
        http://autonom.ict.pwr.wroc.pl/∼mstachniuk
        Adres tego dokumentu:
        http://autonom.ict.pwr.wroc.pl/∼mstachniuk/files/warsztaty2009/02-podstawy-2009.10.29.pdf
        NetBeans
        http://www.netbeans.org/
        Eclipse
        http://www.eclipse.org/
        Java ME Platform Overview
        http://java.sun.com/javame/technology/index.jsp
        Managing the MIDlet Life-Cycle with a Finite State Machine
        http://developers.sun.com/mobility/midp/articles/fsm/
        Java Platform Micro Edition Software Development Kit 3.0
        http://java.sun.com/javame/downloads/sdk30.jsp




  Marcin Stachniuk                                                           Wprowadzenie do J2ME       50/50

More Related Content

Similar to 01 Wprowadzenie do j2me

03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2meMarcinStachniuk
 
02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me
02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me
02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2meMarcinStachniuk
 
08 Testy Jednostkowe w j2me
08 Testy Jednostkowe w j2me08 Testy Jednostkowe w j2me
08 Testy Jednostkowe w j2meMarcinStachniuk
 
J2ME. Java dla urządzeń mobilnych. Ćwiczenia
J2ME. Java dla urządzeń mobilnych. ĆwiczeniaJ2ME. Java dla urządzeń mobilnych. Ćwiczenia
J2ME. Java dla urządzeń mobilnych. ĆwiczeniaWydawnictwo Helion
 
Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.
Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.
Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.MarcinStachniuk
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiMikołaj Olszewski
 
Programowanie na komórki
Programowanie na komórkiProgramowanie na komórki
Programowanie na komórkiAdam Sawicki
 

Similar to 01 Wprowadzenie do j2me (7)

03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
 
02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me
02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me
02 Tworzenie graficznego inferface’u użytkownika niskiego poziomu w j2me
 
08 Testy Jednostkowe w j2me
08 Testy Jednostkowe w j2me08 Testy Jednostkowe w j2me
08 Testy Jednostkowe w j2me
 
J2ME. Java dla urządzeń mobilnych. Ćwiczenia
J2ME. Java dla urządzeń mobilnych. ĆwiczeniaJ2ME. Java dla urządzeń mobilnych. Ćwiczenia
J2ME. Java dla urządzeń mobilnych. Ćwiczenia
 
Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.
Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.
Upieksz swoje testy! Testowanie jednostkowe dla sredniozaawansowanych.
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
 
Programowanie na komórki
Programowanie na komórkiProgramowanie na komórki
Programowanie na komórki
 

More from MarcinStachniuk

GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademy
GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademyGraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademy
GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademyMarcinStachniuk
 
Wroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in JavaWroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in JavaMarcinStachniuk
 
[DevCrowd] GraphQL - gdy API RESTowe to za mało
[DevCrowd] GraphQL - gdy API RESTowe to za mało[DevCrowd] GraphQL - gdy API RESTowe to za mało
[DevCrowd] GraphQL - gdy API RESTowe to za małoMarcinStachniuk
 
GraphQL - gdy API RESTowe to za mało
GraphQL - gdy API RESTowe to za małoGraphQL - gdy API RESTowe to za mało
GraphQL - gdy API RESTowe to za małoMarcinStachniuk
 
BruJUG Brussels GraphQL when RESR API is to less - lessons learned
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedBruJUG Brussels GraphQL when RESR API is to less - lessons learned
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedMarcinStachniuk
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using ShipkitMarcinStachniuk
 
Continuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgContinuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgMarcinStachniuk
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
 
GraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learnedGraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learnedMarcinStachniuk
 
Java Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologiąJava Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologiąMarcinStachniuk
 
Zarządzanie zmianami w schemacie relacyjnych baz danych
Zarządzanie zmianami w schemacie relacyjnych baz danychZarządzanie zmianami w schemacie relacyjnych baz danych
Zarządzanie zmianami w schemacie relacyjnych baz danychMarcinStachniuk
 
Inicjatywa NoSQL na przykładzie db4o
Inicjatywa NoSQL na przykładzie db4oInicjatywa NoSQL na przykładzie db4o
Inicjatywa NoSQL na przykładzie db4oMarcinStachniuk
 
Automatic mechanism data migration between relational and object database
Automatic mechanism data migration between relational and object databaseAutomatic mechanism data migration between relational and object database
Automatic mechanism data migration between relational and object databaseMarcinStachniuk
 
Zastosowanie obiektowych baz danych na przykładzie db4o
Zastosowanie obiektowych baz danych na przykładzie db4oZastosowanie obiektowych baz danych na przykładzie db4o
Zastosowanie obiektowych baz danych na przykładzie db4oMarcinStachniuk
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017MarcinStachniuk
 

More from MarcinStachniuk (20)

GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademy
GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademyGraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademy
GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademy
 
Wroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in JavaWroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in Java
 
[DevCrowd] GraphQL - gdy API RESTowe to za mało
[DevCrowd] GraphQL - gdy API RESTowe to za mało[DevCrowd] GraphQL - gdy API RESTowe to za mało
[DevCrowd] GraphQL - gdy API RESTowe to za mało
 
GraphQL - gdy API RESTowe to za mało
GraphQL - gdy API RESTowe to za małoGraphQL - gdy API RESTowe to za mało
GraphQL - gdy API RESTowe to za mało
 
BruJUG Brussels GraphQL when RESR API is to less - lessons learned
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedBruJUG Brussels GraphQL when RESR API is to less - lessons learned
BruJUG Brussels GraphQL when RESR API is to less - lessons learned
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit
 
Continuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgContinuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.org
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 
GraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learnedGraphQL - when REST API is not enough - lessons learned
GraphQL - when REST API is not enough - lessons learned
 
Java Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologiąJava Web Start – jak żyć z tą dziwną technologią
Java Web Start – jak żyć z tą dziwną technologią
 
Zarządzanie zmianami w schemacie relacyjnych baz danych
Zarządzanie zmianami w schemacie relacyjnych baz danychZarządzanie zmianami w schemacie relacyjnych baz danych
Zarządzanie zmianami w schemacie relacyjnych baz danych
 
Inicjatywa NoSQL na przykładzie db4o
Inicjatywa NoSQL na przykładzie db4oInicjatywa NoSQL na przykładzie db4o
Inicjatywa NoSQL na przykładzie db4o
 
Automatic mechanism data migration between relational and object database
Automatic mechanism data migration between relational and object databaseAutomatic mechanism data migration between relational and object database
Automatic mechanism data migration between relational and object database
 
Zastosowanie obiektowych baz danych na przykładzie db4o
Zastosowanie obiektowych baz danych na przykładzie db4oZastosowanie obiektowych baz danych na przykładzie db4o
Zastosowanie obiektowych baz danych na przykładzie db4o
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 

01 Wprowadzenie do j2me

  • 1. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Wprowadzenie do J2ME Marcin Stachniuk mstachniuk@gmail.com Politechnika Wrocławska Wydział Elektroniki Studenckie Koło Naukowe Informatyki Systemów Autonomicznych i Adaptacyjnych ISA2 29 października 2009 Marcin Stachniuk Wprowadzenie do J2ME 1/50
  • 2. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 2/50
  • 3. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 3/50
  • 4. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 The Java Platform http://java.sun.com/javame/technology/index.jsp Marcin Stachniuk Wprowadzenie do J2ME 4/50
  • 5. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 The Connected Limited Device Configuration http://java.sun.com/javame/technology/index.jsp Marcin Stachniuk Wprowadzenie do J2ME 5/50
  • 6. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 CLDC 1.0 vs CLDC 1.1 CLDC 1.0 ”odchudzona” java 1.3 pakiety: java.io, java.lang, java.util brak obsługi liczb zmiennoprzecinkowych CLDC 1.1 (JSR-139) obsługa liczb zmiennoprzecinkowych klasy Double i Float rozszerzona klasa Thread Marcin Stachniuk Wprowadzenie do J2ME 6/50
  • 7. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 CLDC 1.0 vs CLDC 1.1 CLDC 1.0 ”odchudzona” java 1.3 pakiety: java.io, java.lang, java.util brak obsługi liczb zmiennoprzecinkowych CLDC 1.1 (JSR-139) obsługa liczb zmiennoprzecinkowych klasy Double i Float rozszerzona klasa Thread Marcin Stachniuk Wprowadzenie do J2ME 6/50
  • 8. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Mobile Information Device Profile cz. 1 MIDP 1.0 http GUI RMS Record Management Store MIDP 2.0 https Mobile Media API (MMAPI) The Game API (Sprite, TiledLayer) Obrazy RGB Full Screen Mode Marcin Stachniuk Wprowadzenie do J2ME 7/50
  • 9. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Mobile Information Device Profile cz. 1 MIDP 1.0 http GUI RMS Record Management Store MIDP 2.0 https Mobile Media API (MMAPI) The Game API (Sprite, TiledLayer) Obrazy RGB Full Screen Mode Marcin Stachniuk Wprowadzenie do J2ME 7/50
  • 10. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Mobile Information Device Profile cz. 2 MIDP 2.1 poprawiona wersja 2.0 MIDP 3.0 LIBlety uruchamianie wielu midletów bezpieczeństwo Marcin Stachniuk Wprowadzenie do J2ME 8/50
  • 11. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Mobile Information Device Profile cz. 2 MIDP 2.1 poprawiona wersja 2.0 MIDP 3.0 LIBlety uruchamianie wielu midletów bezpieczeństwo Marcin Stachniuk Wprowadzenie do J2ME 8/50
  • 12. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 9/50
  • 13. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 C++ I 1 #include <iostream> 2 3 using namespace std; 4 5 int main(int argc, char **argv) 6 { 7 cout << ’’Hello World’’ << endl; 8 } Marcin Stachniuk Wprowadzenie do J2ME 10/50
  • 14. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Java SE I 1 public class Main { 2 public static void main(String [] args) { 3 System.out.println(’’Hello World’’); 4 } 5 } Marcin Stachniuk Wprowadzenie do J2ME 11/50
  • 15. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Java ME I 1 import javax.microedition.midlet.*; 2 3 public class MyMidlet extends MIDlet { 4 public void startApp() { 5 } 6 7 public void pauseApp() { 8 } 9 10 public void destroyApp(boolean unconditional) { 11 } 12 } Marcin Stachniuk Wprowadzenie do J2ME 12/50
  • 16. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Cykl życia aplikacji I http://developers.sun.com/mobility/midp/articles/fsm/ Marcin Stachniuk Wprowadzenie do J2ME 13/50
  • 17. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Java ME I Listing 1. 1 import javax.microedition.lcdui.*; 2 import javax.microedition.midlet.*; 3 4 public class Midlet extends MIDlet { 5 public void startApp() { 6 TextBox textBox = new TextBox(’’Moj Pierwszy Midlet’’, 7 ’’Hello World!’’, 20, 0); 8 Display display = Display.getDisplay(this); 9 display.setCurrent(textBox); 10 System.out.println(’’Hello World!’’); 11 } 12 13 public void pauseApp() { 14 } 15 16 public void destroyApp(boolean unconditional) { 17 } 18 } Marcin Stachniuk Wprowadzenie do J2ME 14/50
  • 18. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Listing 1 w działaniu Marcin Stachniuk Wprowadzenie do J2ME 15/50
  • 19. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Java ME I Listing 2. 1 import javax.microedition.lcdui.*; 2 import javax.microedition.midlet.*; 3 4 public class Midlet extends MIDlet implements CommandListener { 5 public void startApp() { 6 TextBox textBox = new TextBox(’’Moj Pierwszy Midlet’’, 7 ’’Hello World!’’, 20, 0); 8 Command exitCommand = new Command(’’Koniec’’, Command.EXIT, 1); 9 textBox.setCommandListener(this); 10 textBox.addCommand(exitCommand); 11 Display display = Display.getDisplay(this); 12 display.setCurrent(textBox); 13 System.out.println(’’Hello World!’’); 14 } 15 16 public void pauseApp() { 17 } 18 Marcin Stachniuk Wprowadzenie do J2ME 16/50
  • 20. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Java ME II 19 public void destroyApp(boolean unconditional) { 20 } 21 22 public void commandAction(Command c, Displayable d) { 23 if (c.getCommandType() == Command.EXIT) { 24 destroyApp(false); 25 notifyDestroyed(); 26 } 27 } 28 } Marcin Stachniuk Wprowadzenie do J2ME 17/50
  • 21. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Listing 2 w działaniu Marcin Stachniuk Wprowadzenie do J2ME 18/50
  • 22. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 19/50
  • 23. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Integrated Development Environment - IDE Podstawowe środowisko: Java Platform Micro Edition Software Development Kit 3.0 Najpopularniejsze środowiska: NetBeans Eclipse IntelliJ IDEA Vi / Vim ;) Marcin Stachniuk Wprowadzenie do J2ME 20/50
  • 24. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans 6.7.1 Marcin Stachniuk Wprowadzenie do J2ME 21/50
  • 25. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans download Marcin Stachniuk Wprowadzenie do J2ME 22/50
  • 26. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans Nowy Projekt Marcin Stachniuk Wprowadzenie do J2ME 23/50
  • 27. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans Nazwa Projektu Marcin Stachniuk Wprowadzenie do J2ME 24/50
  • 28. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans Wybranie Platformy Marcin Stachniuk Wprowadzenie do J2ME 25/50
  • 29. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans Finish Marcin Stachniuk Wprowadzenie do J2ME 26/50
  • 30. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans Utworzony Midlet Marcin Stachniuk Wprowadzenie do J2ME 27/50
  • 31. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 NetBeans Uruchomienie MIDletu Marcin Stachniuk Wprowadzenie do J2ME 28/50
  • 32. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Marcin Stachniuk Wprowadzenie do J2ME 29/50
  • 33. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse download Marcin Stachniuk Wprowadzenie do J2ME 30/50
  • 34. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Nowy Projekt Marcin Stachniuk Wprowadzenie do J2ME 31/50
  • 35. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Nazwa Projektu Marcin Stachniuk Wprowadzenie do J2ME 32/50
  • 36. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Właściwości Projektu Marcin Stachniuk Wprowadzenie do J2ME 33/50
  • 37. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Ustawienia Projektu Marcin Stachniuk Wprowadzenie do J2ME 34/50
  • 38. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Dodanie Nowego Midletu Marcin Stachniuk Wprowadzenie do J2ME 35/50
  • 39. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Nazwa Nowego Midletu Marcin Stachniuk Wprowadzenie do J2ME 36/50
  • 40. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Tworzenie Midletu koniec Marcin Stachniuk Wprowadzenie do J2ME 37/50
  • 41. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Utworzony Midlet Marcin Stachniuk Wprowadzenie do J2ME 38/50
  • 42. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Eclipse Uruchomienie Midletu Marcin Stachniuk Wprowadzenie do J2ME 39/50
  • 43. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 40/50
  • 44. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 JAD i JAR Marcin Stachniuk Wprowadzenie do J2ME 41/50
  • 45. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Zawartość JAD MIDlet-1: Midlet, , Midlet MIDlet-Jar-Size: 1035 MIDlet-Jar-URL: MobileApplication1.jar MIDlet-Name: MobileApplication1 MIDlet-Vendor: Vendor MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 Marcin Stachniuk Wprowadzenie do J2ME 42/50
  • 46. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Zawartość JAR Marcin Stachniuk Wprowadzenie do J2ME 43/50
  • 47. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Przesłanie Aplikacji Rysunek by Michał Walczak Marcin Stachniuk Wprowadzenie do J2ME 44/50
  • 48. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Zawartość JAD - zmodyfikowana MIDlet-1: Midlet, , Midlet MIDlet-Jar-Size: 1035 MIDlet-Jar-URL: http://myserwer.com/MobileApplication1.jar MIDlet-Name: MobileApplication1 MIDlet-Vendor: Vendor MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 Marcin Stachniuk Wprowadzenie do J2ME 45/50
  • 49. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 46/50
  • 50. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Czego się dzisiaj nauczyliśmy? Konfiguracje CLDC 1.0 i 1.1 Profile MIDP 1.0 2.0 2.1 3.0 Budowa programu, cykl życia aplikacji Środowiska IDE Uruchomienie Aplikacji Marcin Stachniuk Wprowadzenie do J2ME 47/50
  • 51. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Pytania ? Marcin Stachniuk Wprowadzenie do J2ME 48/50
  • 52. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Kolejne spotkanie Temat: Dostęp do GUI niskiego poziomu Prowadzenie: Marcin Stachniuk Data: 5.11.2009 17.00 Gdzie: sala 23 C-3 Marcin Stachniuk Wprowadzenie do J2ME 49/50
  • 53. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009 Więcej informacji Kontakt z autorem: mstachniuk@gmail.com Strona koła naukowego ISA2 http://autonom.ict.pwr.wroc.pl/ Strona warsztatów: http://autonom.ict.pwr.wroc.pl/∼mstachniuk Adres tego dokumentu: http://autonom.ict.pwr.wroc.pl/∼mstachniuk/files/warsztaty2009/02-podstawy-2009.10.29.pdf NetBeans http://www.netbeans.org/ Eclipse http://www.eclipse.org/ Java ME Platform Overview http://java.sun.com/javame/technology/index.jsp Managing the MIDlet Life-Cycle with a Finite State Machine http://developers.sun.com/mobility/midp/articles/fsm/ Java Platform Micro Edition Software Development Kit 3.0 http://java.sun.com/javame/downloads/sdk30.jsp Marcin Stachniuk Wprowadzenie do J2ME 50/50