Najlepsze narzędzia do tworzenia aplikacji mobilnych

Pomyślne przyjęcie nowej technologii często zależy od jej narzędzi programistycznych. Dobre narzędzia ułatwiają nowym programistom rozpoczęcie pracy i zwiększają produktywność doświadczonych programistów. Na przykład sukces środowiska programistycznego Microsoft jest ściśle powiązany z sukcesem jego narzędzi Visual Studio.

Technologia J2ME (Java 2 Platform, Micro Edition) jest wciąż stosunkowo nowa. Silne narzędzia programistyczne, zwłaszcza IDE, znacznie ułatwią przyjęcie J2ME wśród twórców aplikacji bezprzewodowych. W tym artykule opiszę cztery produkty J2ME IDE:

  • Borland JBuilder 7 Enterprise z MobileSet 3
  • Sun ONE (otwarte środowisko sieciowe) firmy Sun Microsystems Studio 4 Mobile Edition
  • Oprogramowanie Metrowerks CodeWarrior Wireless Studio 7
  • JVise firmy S5 Systems (oparte na technologii IBM Eclipse)

Krajobraz narzędzi programistycznych J2ME

Różne urządzenia bezprzewodowe mają różne ograniczenia w zakresie rozmiaru pamięci, rozmiaru ekranu, metod wprowadzania danych i szybkości obliczeniowej. Ponadto implementacje J2ME dostawców mogą zawierać dodatkowe interfejsy API specyficzne dla dostawców, które wykorzystują specjalne podstawowe funkcje sprzętu / systemu operacyjnego.

Zróżnicowany rynek urządzeń w naturalny sposób skutkuje zróżnicowanymi narzędziami programistycznymi. Każdy dostawca urządzenia ma własny zestaw SDK, emulatory urządzeń i narzędzia do analizy wydajności. Niektóre zestawy SDK mają nawet własne narzędzia do zarządzania projektami kompilacji i edycji kodu źródłowego. Jednym z przykładów jest bezprzewodowy zestaw narzędzi J2ME firmy Sun (J2MEWTK). J2MEWTK zawiera referencyjną implementację J2ME / MIDP (Mobile Information Device Profile) i ma wiele emulatorów urządzeń działających na platformach Unix / Linux i Windows. J2MEWTK ma również narzędzia do profili wydajności i monitory rzeczywistego wykorzystania pamięci. Wszystkimi tymi narzędziami można zarządzać z centralnego panelu sterowania o nazwie kToolBar. kToolBar może również budować i pakować gotowe do wdrożenia programy JAR / Jad z katalogów programistycznych. Jednak opanowanie wszystkich tych narzędzi i testowanie aplikacji na wszystkich emulatorach może okazać się żmudne.

J2ME IDE ułatwia programowanie poprzez integrację zestawów SDK dostawców urządzeń z innymi narzędziami. Programiści mogą wtedy mieć ujednolicony interfejs IDE dla wszystkich obsługiwanych zestawów SDK. IDE zwiększają również produktywność programistów i jakość dostarczanych aplikacji.

Kto powinien używać IDE?

Nie polecam IDE początkującym programistom. Tacy programiści muszą nauczyć się kilku różnych rzeczy naraz: języka Java, interfejsów API i pakietów J2ME, samego IDE. Wygodne funkcje IDE mogą łatwo przesłaniać to, co naprawdę dzieje się pod maską. Możesz skończyć z opracowaniem zestawu umiejętności powiązanych z określonym IDE. IDE mogą jednak pomóc, jeśli już wiesz, co robisz. Mogą zautomatyzować wiele żmudnych procesów dla doświadczonego programisty.

Przewodnik kupującego J2ME IDE

Oceniłem IDE J2ME tego artykułu pod kątem następujących aspektów:

  • Ogólne cechy produktywności: Oceniłem te funkcje, które są korzystne dla wszystkich projektów programistycznych Java, a nie tych specyficznych dla J2ME. Funkcje te obejmują edytor, menedżer projektów, debugger, projektant architektury i narzędzia do tworzenia dokumentacji, a także narzędzia do zaawansowanych technik programowania (refaktoryzacja, testowanie jednostkowe itd.).
  • Integracja z pakietami SDK innych firm: obsługa wielu zestawów SDK jest podstawową funkcją każdego środowiska IDE J2ME. Jednak dostawcy IDE mają trudności ze śledzeniem i integracją wsparcia dla każdego pojedynczego zestawu SDK. Specyfikacja Unified Emulator Interface (UEI) standaryzuje interfejs programowania między zestawami SDK i IDE. Gwarantujemy, że zestawy SDK i IDE zgodne z UEI będą ze sobą współpracować. W mojej ocenie omawiam, jakie SDK są obsługiwane przez IDE po wyjęciu z pudełka, czy IDE obsługują UEI i jak trudno jest przełączać się między SDK w projekcie.
  • Narzędzia po kompilacji: aplikacje J2ME to aplikacje mobilne, które wymagają wysokiego poziomu bezpieczeństwa i wydajności. Maskowanie kodu może uniemożliwić ludziom odwrotną inżynierię plików klas i zmniejszyć rozmiar kodu. Dostawcy IDE i ich partnerzy udostępniają specjalne techniki optymalizacji. Aplikacje J2ME można również poddawać postprocesowaniu i optymalizować pod kątem urządzeń wdrożeniowych w oparciu o zasoby dostępne dla określonych typów urządzeń. Te narzędzia do przetwarzania końcowego, zaciemniania i optymalizacji należą do tej kategorii po kompilacji.
  • Obsługa wdrażania OTA (Over-the-Air): aplikacje J2ME są często wdrażane w publicznych sieciach bezprzewodowych. Specyfikacje J2ME OTA standaryzują proces wykrywania, pobierania, uwierzytelniania, autoryzacji, weryfikacji i wykonywania mobilnej aplikacji Java. Specyfikacje OTA wymagają odpowiednio sformatowanych plików meta po stronie serwera i Java Application Manager (JAM) po stronie urządzenia mobilnego. Serwer wymaga również specjalnych konfiguracji do obsługi typów meta OTA. Proces OTA może stać się dość złożony wraz z nadchodzącą wersją MIDP 2.0. IDE powinno pomóc w automatycznym generowaniu tych plików meta. Dobre środowisko IDE powinno również integrować klientów JAM zgodnych z OTA, aby przetestować wdrożenie w środowisku IDE.
  • Tworzenie kompleksowych aplikacji mobilnych: urządzenia J2ME nie są wystarczająco wydajne, aby samodzielnie przetwarzać lub przechowywać duże ilości informacji; Aplikacje J2ME są często grubymi klientami dla niektórych serwerów aplikacji zaplecza korporacyjnego. Dlatego pierwszorzędne środowisko IDE powinno umożliwiać programistom tworzenie całych kompleksowych projektów. Minimalizuje to koszty nauki i wysiłki związane z koordynacją projektu.
  • Dokumentacja i samouczki: Tworzenie aplikacji mobilnych w języku Java to złożony proces obejmujący wiele aspektów inżynierii oprogramowania. IDE zapewniają narzędzia do automatyzacji wielu zadań; Jednak ze względu na wewnętrzną złożoność procesu tworzenia, początkujący programiści często mają trudności z prawidłowym korzystaniem z tych funkcji. Samouczki i szczegółowe studia przypadków okazują się kluczowe dla skutecznego wdrożenia środowiska IDE.
  • Konstruktorzy J2ME GUI (graficzny interfejs użytkownika): Niektóre środowiska IDE mają narzędzia RAD (szybkie tworzenie aplikacji), które umożliwiają programistom wizualne tworzenie mobilnych interfejsów użytkownika. Te narzędzia są atrakcyjne dla programistów ze świata komputerów stacjonarnych - osób zaznajomionych z narzędziami RAD J2SE (Java 2 Platform, Standard Edition). Należy jednak zachować ostrożność przy korzystaniu z wizualnych kreatorów graficznego interfejsu użytkownika J2ME: ponieważ urządzenia bezprzewodowe różnią się rozmiarami ekranu, ten sam projekt interfejsu użytkownika może wyglądać inaczej na różnych urządzeniach. Na przykład palmtop PDA może wyświetlać cztery przyciski poleceń w rzędzie. Jednak telefon komórkowy może poprosić Cię o wybranie z listy czterech poleceń po kliknięciu przycisku Menu. Więc to, co widzisz w kreatorze GUI, może nie być tym, co ostatecznie otrzymasz na konkretnym urządzeniu.

JBuilder 7 Enterprise z MobileSet 3

Borland JBuilder to renomowane środowisko Java IDE z trzema edycjami: Personal, Standard (SE) i Enterprise. Wszystkie edycje JBuilder mogą działać na wielu platformach, w tym Windows, Linux, Solaris i Mac OS X. Aby obsługiwać programowanie J2ME w JBuilder, należy zainstalować moduł dodatkowy o nazwie MobileSet. Obecnie MobileSet działa tylko w systemie Windows, ale planowana jest obsługa większej liczby platform.

JBuilder Personal jest dostępny bezpłatnie w witrynie internetowej firmy Borland. JBuilder SE kosztuje 99 (wrzesień 2002), a wersja Enterprise kosztuje 999. Możesz pobrać 30-dniowe bezpłatne licencje próbne dla wersji Standard i Enterprise. Chociaż wersja osobista jest bezpłatna, ma niewielką wartość. Brakuje niektórych podstawowych funkcji zwiększających produktywność. Na przykład nie można nawet zarządzać kodem źródłowym za pośrednictwem hierarchii pakietów, co utrudnia tworzenie dużych projektów z wieloma klasami.

Natomiast JBuilder 7 Enterprise oferuje bogaty zestaw narzędzi wspierających projektowanie, tworzenie, testowanie i wdrażanie aplikacji Java (zwłaszcza aplikacji J2EE (Java 2 Platform, Enterprise Edition)). Jest on dostarczany w pakiecie z własnym serwerem aplikacji J2EE firmy Borland, bazą danych Borland InterBase SQL oraz wersją próbną pakietu Optimizeit Suite, narzędzia do optymalizacji języka Java. Oprogramowanie to jest dostarczane z trzema podręcznikami z dokumentacją. Te książki nie tylko zawierają studia przypadków użycia JBuilder, ale służą również jako dobre zasoby do nauki ogólnego programowania aplikacji Java.

Aby tworzyć aplikacje J2ME na dowolnej edycji JBuilder 7, należy zainstalować MobileSet, który można pobrać bezpłatnie ze strony internetowej firmy Borland. Po uruchomieniu instalatora MobileSet dodaje nowe kreatory, środowiska kompilacji / środowiska uruchomieniowego i elementy menu do istniejącej instalacji JBuilder. Poniższa recenzja skupia się na JBuilder 7 Enterprise.

  • Ogólne funkcje produktywności: JBuilder 7 Enterprise oferuje najwyższej klasy funkcje produktywności Java. Posiada potężny edytor, kompilator i debugger. Bardziej zaawansowane funkcje obejmują obsługę wielu maszyn JVM i środowiska wykonawczego, narzędzia do wizualizacji UML (Unified Modeling Language), narzędzia do projektowania logiki aplikacji (na przykład wizualni projektanci EJB (Enterprise JavaBean)), zintegrowaną obsługę testów jednostkowych, narzędzia do refaktoryzacji i narzędzia javadoc. W przypadku aplikacji korporacyjnych JBuilder obsługuje automatyczne generowanie archiwów WWW i archiwów korporacyjnych (WAR / EAR) oraz wdrażanie na wszystkich wiodących serwerach aplikacji. Korzystając z JBuilder, możesz również łatwo zintegrować z projektem zaawansowane narzędzia innych firm, takie jak CVS (Concurrent Versioning System) do zarządzania kodem źródłowym i Ant do niestandardowych kompilacji.
  • Integracja SDK innych firm: jedyną platformą J2ME obsługiwaną przez JBuilder jest MIDP. JBuilder MobileSet obsługuje zestawy SDK J2MEWTK, Nokia, Siemens i Sprint PCS. Jednak sam plik do pobrania MobileSet zawiera tylko J2MEWTK na początek; należy oddzielnie pobrać inne zestawy SDK. Ponieważ JBuilder obsługuje UEI, spodziewam się, że będzie obsługiwał większość przyszłych zestawów SDK. Narzędzie umożliwia przełączanie się między wieloma maszynami JVM i środowiskami wykonawczymi w projekcie, co upraszcza tworzenie wielu platform.
  • Narzędzia po kompilacji: JBuilder MobileSet ma wbudowaną obsługę zaciemniania plików klas poprzez RetroGuard 1.1. Dołączony pakiet Optimizeit Suite dodatkowo optymalizuje rozmiar i wydajność aplikacji.
  • Obsługa wdrażania OTA: dzięki JBuilder Enterprise mogłem łatwo wygenerować pliki manifestu jar i pliki jad dla mojego projektu MIDP. Projekty można wdrażać na odpowiednio skonfigurowanym serwerze zdalnym za pośrednictwem wbudowanego klienta FTP JBuilder. Jednak JBuilder nie konfiguruje serwera za Ciebie. Możesz testować wdrożone aplikacje za pomocą zgodnych z OTA JAM-ów po stronie klienta zintegrowanych z JBuilder.
  • Tworzenie kompleksowych aplikacji mobilnych: JBuilder 7 Enterprise ma doskonałe możliwości tworzenia serwerów aplikacji zaplecza J2EE. Możesz tworzyć kompleksowe aplikacje całkowicie w JBuilder.
  • Dokumentacja i samouczki: Wszystkie trzy książki dołączone do JBuilder 7 Enterprise są dostępne bezpłatnie w wersji HTML i PDF na stronie internetowej firmy Borland. Borland ma również do pobrania podręczniki MobileSet i wiele innych ciekawych dokumentacji. Obsługa dokumentacji JBuildera jest doskonała.
  • Konstruktorzy GUI J2ME: MobileSet jest dostarczany z konstruktorem GUI MIDP; tworzenie kodu GUI za pomocą JBuildera okazuje się być dość łatwe.

Sun ONE Studio 4 Mobile Edition

Sun ONE Studio, wcześniej znane jako Forte for Java, wykorzystuje technologię NetBeans do integracji zewnętrznych modułów z IDE. Sun ONE Studio jest dostępny w trzech wersjach: Community, Mobile i Enterprise for Java. Wersje Community i Mobile są bezpłatne; Enterprise for Java kosztuje 995 i ma zaawansowane funkcje programowania i wdrażania J2EE. 60-dniową bezpłatną licencję próbną na oprogramowanie Enterprise for Java można uzyskać w witrynie internetowej firmy Sun.

Sun ONE Studio jest rozprowadzane online i na płycie CD. Płyta CD zawiera wszystkie wydania Sun ONE Studio 4 na wszystkich obsługiwanych platformach, a także J2SE i J2EE. Instalacja jest łatwa.

Chociaż Mobile Edition jest wstępnie skonfigurowana z obsługą J2ME, ma tylko ograniczone funkcje IDE. Możesz łatwo dodać możliwości programistyczne J2ME do wydań Community i Enterprise for Java, instalując moduł bezprzewodowy J2ME. Ten moduł jest zgodny ze specyfikacją NetBeans i można go zainstalować z dowolną edycją Sun ONE Studio. Moduł bezprzewodowy J2ME zapewnia specyficzne dla J2ME szablony, kreatory, elementy menu oraz integrację kompilatora i emulatora i jest dostarczany w pakiecie z J2MEWTK.

Jedną z mocnych stron Sun ONE Studio jest jego modułowa konstrukcja. Firmy zewnętrzne mogą łatwo dostarczać komponenty i integrować się z IDE. Przykłady takich modułów obejmują modelowanie UML, refaktoryzację i testy jednostkowe.

Bezpłatne wydania Sun ONE Studio zrobiły na mnie wrażenie. Sun ONE Mobile Edition lub Community Edition plus moduł bezprzewodowy to jedyne bezpłatne IDE J2ME, które polecam. Zapewniają wszystkie ważne funkcje IDE dla dużych i złożonych projektów. Community Edition zapewnia nawet podstawowe funkcje programowania aplikacji po stronie serwera; w tej edycji można tworzyć serwlet i aplikacje bazodanowe. Sun ONE Studio to jedyne środowisko IDE w tym artykule, które obsługuje J2ME dla platform innych niż Windows. Poniższe komentarze są oparte na moich doświadczeniach z Sun ONE Studio 4 Enterprise for Java i modułem bezprzewodowym. Ale większość dotyczy również bezpłatnej wersji Community Edition.