środa, 4 lutego 2009

MIDP 3.0 - co nowego ?

Zabrałem się za czytanie JSR-271 czyli specyfikacji Mobile Information Device Profile w wersji 3. Na tę chwilę przygotowana jest wersja public review. Z tego co gdzieś tam usłyszałem to pod koniec połowy tego roku ma zostać wydana wersja finalna specyfikacji (informacja niepewna!).
Ok, ale jakie nowe możliwości będą miały nasze aplikacje na komóreczki ? Oto lista:
- Zwiększone wymagania sprzętowe - po pierwsze ekran 176x220 pikseli, głębia kolorów 16bit. 1 MB pamięci na MIDP, 512 KB pamięci trwałej dla zapisu danych aplikacji oraz 1 MB pamięci dla Java runtime. To wszystko oczywiście poza tym co wymaga CLDC/CDC.
- wprowadzenie LIBletów, komponentów które mogą być używane przez jeden lub więcej MIDletów. Zawierają one zbiór klas i nie mogą być uruchamiane.
- W pliku JAR mogą być teraz przechowywane dane w formacie RMS. A nawet więcej! Można pobierać dane RMS z internetu! Szkoda, że nie było tego wcześniej, bo ułatwiłoby mi inżynierkę;) W deskryptorze MIDletu musi znajdować się wpis ze ścieżką gdzie dane się znajdują. Oto przykład:
MIDlet-Data-Size: 3000
MIDlet-Persistent-Data-URL-1: data.rms overwrite encryptLocally
MIDlet-Persistent-Data-URL-2: http://vendor.com/gamedata/coolgame.rms

- w deskryptorze muszą być teraz zapisane JSRy oraz LIDlety z jakich korzysta MIDlet, jeśli można pobrać je z sieci to dodatkowo URL. Przykład:
Dependency-1: microedition.location; JCP; 1.0+; standard
Dependency-2: MapsForAll; MapsGalore, Inc.; 1.1.2; liblet
LIBlet-Dependency-JAD-URL-2: http://www.mapsgalore.com/liblets/mapsforall.jad

- możliwość uruchamiania kilku MIDletów jednocześnie. Dotychczas aby uruchomić inną aplikację, konieczne było zamknięcie poprzedniej. Teraz będzie można minimalizować programy i uruchamiać kolejne.
- spooooro zmian w bezpieczeństwie. Tutaj zapraszam do lektury specyfikacji, bo jest tego naprawdę dużo ;-)

Są jeszcze sprawy nad którymi dyskusja nadal trwa:
- czy Form może być przewijany horyzontalnie ?
- obsługa wielu ekranów powitalnych (ang. splash screen)
- wymagana obsługa SVG Tiny 1.1 i obsługa tego formatu przy tworzeniu komponentów interfejsu użytkownika
- poprawki do komponentu TabbedPane oraz obiektu nasłuchującego TabListener
- lokalizacja nazw MIDletów
- zmiana domyślnego kodowania znaków na UTF-8
- wprowadzanie adresu URL dla aktualizacji MIDletu

Oczywiście zapewniona jest zgodność wstecz ;-)

Osobiście podobają mi się zmiany. Niektóre ciekawe, inne bardzo ciekawe. Mam nadzieję, że SVG stanie się standardem oraz zostanie wprowadzony URL do aktualizacji. Znacznie by to zbliżyło MIDlety do aplikacji desktopowych. Jednak nadal mi brakuje większych (lub jakichkolwiek!) możliwości operowania telefonem - dostępu do książki telefonicznej, czy wiadomości tekstowych.
W tym roku ma się także pojawić "wersja komórkowa" JavaFX (to może być hit!). Jestem ciekaw jak to zostanie zgrane z MIDP 3.0.

Zapraszam do komentowania !

4 komentarze:

  1. Brzmi interesująco - orientujesz się może jak będzie wyglądało wdrażanie tego JSR przez producentów? Chodzi mi o ramy czasowe :)

    OdpowiedzUsuń
  2. Trudno powiedzieć, nigdzie nic nie wyczytałem, bo to wszystkie w stanie "beta" teraz jest. Z pewnością telefony motoroli będą pierwszymi które będą posiadały tego obsługę - na pierwszej stronie public review jest ich logo wiec to oni są chyba najbardziej zainteresowani.

    Pozostaje jeszcze sprawa przyjęcia przez rynek. Skoro to JSR w którym lista "udziałowców" składa się z największych producentów komórek to powinno być ok, no ale MIDP 2.1 jakoś nie stało się standardem.

    Jednak optymistycznie obstawiam, że po pół roku od wydania MIDP 3.0 będzie na każdym telefonie pojawiającym się na rynku ;-)

    OdpowiedzUsuń
  3. Piszesz "Jednak nadal mi brakuje większych (lub jakichkolwiek!) możliwości operowania telefonem - dostępu do książki telefonicznej, czy wiadomości tekstowych.".Reguluje to już JSR-75 PIM,głównym problemem jest aktualnie niechęć producentów telefonów na dostęp javy do takich danych.

    OdpowiedzUsuń
  4. true, ale jak wiadomo takie pakiety są opcjonalne i nie muszą być zaimplementowane. Fajnie by były jakby większość JSRów weszła do MIDP 3.0, wtedy by możliwości Java ME znacznie wzrosły;]

    dzięki za komentarz!

    OdpowiedzUsuń