I migliori strumenti per lo sviluppo di applicazioni mobili

Il successo dell'adozione di una nuova tecnologia dipende spesso dai suoi strumenti di sviluppo. Buoni strumenti aiutano i nuovi sviluppatori a iniziare più facilmente e rendono più produttivi gli sviluppatori esperti. Ad esempio, il successo dell'ambiente di programmazione Microsoft è strettamente associato al successo dei suoi strumenti di Visual Studio.

La tecnologia J2ME (Java 2 Platform, Micro Edition) è ancora relativamente nuova. Forti strumenti di sviluppo, in particolare IDE, aiuteranno notevolmente l'adozione di J2ME tra gli sviluppatori di applicazioni wireless. In questo articolo, recensisco quattro prodotti IDE J2ME:

  • Borland JBuilder 7 Enterprise con MobileSet 3
  • Sun ONE (Open Network Environment) Studio 4 Mobile Edition di Sun Microsystems
  • Metrowerks CodeWarrior Wireless Studio 7
  • JVise di S5 Systems (basato sulla tecnologia IBM Eclipse)

Panorama degli strumenti di sviluppo J2ME

Dispositivi wireless diversi hanno limitazioni diverse in termini di dimensioni della memoria, dimensioni dello schermo, metodi di input e velocità di elaborazione. Inoltre, le implementazioni J2ME dei fornitori potrebbero contenere API aggiuntive specifiche del fornitore che sfruttano speciali funzionalità hardware / OS sottostanti.

Il mercato diversificato dei dispositivi si traduce naturalmente in strumenti di sviluppo diversificati. Ogni fornitore di dispositivi dispone del proprio SDK, emulatori di dispositivi e strumenti di analisi delle prestazioni. Alcuni SDK sono persino dotati di strumenti per la gestione del progetto di compilazione e per la modifica del codice sorgente. Un esempio è il J2ME Wireless ToolKit (J2MEWTK) di Sun. J2MEWTK contiene un'implementazione di riferimento di J2ME / MIDP (Mobile Information Device Profile) e dispone di più emulatori di dispositivi che vengono eseguiti su piattaforme Unix / Linux e Windows. J2MEWTK ha anche strumenti per il profilo delle prestazioni e monitor di utilizzo della memoria reale. Tutti questi strumenti possono essere amministrati da un pannello di controllo centrale chiamato kToolBar. kToolBar può anche creare e impacchettare programmi JAR / Jad pronti per la distribuzione da directory di sviluppo. Tuttavia, padroneggiare tutti questi strumenti e testare le applicazioni su tutti gli emulatori può rivelarsi noioso.

Un IDE J2ME semplifica lo sviluppo integrando gli SDK del fornitore di dispositivi con altri strumenti. Gli sviluppatori possono quindi avere un'interfaccia IDE unificata per tutti gli SDK supportati. Gli IDE migliorano anche la produttività degli sviluppatori e la qualità delle applicazioni consegnabili.

Chi dovrebbe usare un IDE?

Non consiglio gli IDE agli sviluppatori inesperti. Tali sviluppatori devono imparare diverse cose contemporaneamente: il linguaggio Java, le API e i pacchetti J2ME, l'IDE stesso. Le caratteristiche pratiche di un IDE possono facilmente oscurare ciò che sta realmente accadendo sotto il cofano. Potresti finire per sviluppare una serie di abilità legate a un IDE specifico. Gli IDE possono aiutare, tuttavia, se sai già cosa stai facendo. Possono automatizzare molti processi noiosi per uno sviluppatore esperto.

Guida dell'acquirente IDE J2ME

Ho valutato gli IDE J2ME di questo articolo in base ai seguenti aspetti:

  • Funzionalità generali di produttività: ho valutato queste funzionalità vantaggiose per tutti i progetti di sviluppo Java, non quelle specifiche per J2ME. Queste funzionalità includono editor, project manager, debugger, designer di architettura e strumenti di documentazione, oltre a strumenti per tecniche di programmazione avanzate (refactoring, test di unità e così via).
  • Integrazione SDK di terze parti: il supporto per più SDK è una funzionalità fondamentale per qualsiasi IDE J2ME. Ma i fornitori di IDE hanno difficoltà a tracciare e integrare il supporto per ogni singolo SDK. La specifica UEI (Unified Emulator Interface) standardizza l'interfaccia di programmazione tra SDK e IDE. È garantito che gli SDK e gli IDE compatibili con UEI funzionino tra loro. Nella mia valutazione, discuto quali SDK supportano gli IDE immediatamente, se gli IDE supportano UEI e quanto sia difficile passare da un SDK a un progetto.
  • Strumenti di post-compilazione: le applicazioni J2ME sono applicazioni mobili che richiedono un elevato livello di sicurezza e prestazioni. L'offuscamento del codice può impedire alle persone di decodificare i file di classe e ridurre le dimensioni del codice. Speciali tecniche di ottimizzazione sono disponibili presso i fornitori IDE e i loro partner. Le applicazioni J2ME possono anche essere post-elaborate e ottimizzate per dispositivi di distribuzione in base alle risorse disponibili per tipi di dispositivi specifici. Questi strumenti di post-elaborazione, offuscamento e ottimizzazione rientrano in questa categoria di post-compilazione.
  • Supporto per l'implementazione over-the-air (OTA): le applicazioni J2ME vengono spesso distribuite su reti wireless pubbliche. Le specifiche J2ME OTA standardizzano il processo di rilevamento, download, autenticazione, autorizzazione, verifica ed esecuzione di un'applicazione Java mobile. Le specifiche OTA richiedono meta file formattati correttamente sul lato server e Java Application Manager (JAM) sul lato del dispositivo mobile. Il server richiede anche configurazioni speciali per supportare i metatipi OTA. Il processo OTA può diventare piuttosto complesso con l'imminente rilascio di MIDP 2.0. Un IDE dovrebbe aiutare a generare automaticamente quei meta file. Un buon IDE dovrebbe anche integrare client JAM conformi a OTA per testare la distribuzione all'interno dell'IDE.
  • Sviluppo di applicazioni mobili end-to-end: i dispositivi J2ME non sono abbastanza potenti per elaborare o archiviare da soli grandi quantità di informazioni; Le applicazioni J2ME sono spesso thick client per alcuni server delle applicazioni aziendali di backend. Pertanto, un IDE di prim'ordine dovrebbe consentire agli sviluppatori di creare interi progetti end-to-end. Ciò riduce al minimo i costi di apprendimento e gli sforzi di coordinamento del progetto.
  • Documentazione ed esercitazioni: lo sviluppo di applicazioni mobili Java è un processo sofisticato che coinvolge molti aspetti dell'ingegneria del software. Gli IDE forniscono strumenti per automatizzare molte attività; tuttavia, a causa della complessità intrinseca del processo di sviluppo, i programmatori inesperti spesso trovano difficile utilizzare correttamente queste funzionalità. Tutorial e case study dettagliati si dimostrano essenziali per l'adozione efficiente di un IDE.
  • Costruttori di GUI (interfaccia utente grafica) J2ME: alcuni IDE dispongono di strumenti RAD (sviluppo rapido di applicazioni) che consentono agli sviluppatori di creare visivamente interfacce utente mobili. Questi strumenti attirano gli sviluppatori del mondo desktop, quelli che hanno familiarità con gli strumenti RAD J2SE (Java 2 Platform, Standard Edition). Tuttavia, utilizza i costruttori di GUI visuali J2ME con cautela: poiché i dispositivi wireless differiscono nelle dimensioni dello schermo, lo stesso design dell'interfaccia utente potrebbe apparire in modo diverso su vari dispositivi. Ad esempio, un palmare Palm può visualizzare quattro pulsanti di comando di seguito. Ma un telefono cellulare potrebbe chiederti di scegliere da un elenco di quattro comandi quando fai clic su un pulsante Menu. Quindi quello che vedi nel generatore di GUI potrebbe non essere quello che alla fine ottieni su un particolare dispositivo.

JBuilder 7 Enterprise con MobileSet 3

Borland JBuilder è un rinomato IDE Java con tre edizioni: Personal, Standard (SE) ed Enterprise. Tutte le edizioni di JBuilder possono essere eseguite su più piattaforme tra cui Windows, Linux, Solaris e Mac OS X. Per supportare lo sviluppo di J2ME su JBuilder, è necessario installare un modulo aggiuntivo chiamato MobileSet. Attualmente MobileSet funziona solo su Windows, ma è previsto il supporto per più piattaforme.

JBuilder Personal è disponibile gratuitamente dal sito web di Borland. JBuilder SE costa 99 (settembre 2002) e l'edizione Enterprise costa 999. Puoi scaricare licenze di prova gratuite di 30 giorni per entrambe le edizioni Standard ed Enterprise. Sebbene gratuita, l'edizione personale offre poco valore. Mancano alcune funzionalità di produttività di base. Ad esempio, non puoi nemmeno gestire il tuo codice sorgente tramite gerarchie di pacchetti, il che rende difficile lo sviluppo di grandi progetti con molte classi.

Al contrario, JBuilder 7 Enterprise offre un ricco set di strumenti che supportano la progettazione, lo sviluppo, il test e la distribuzione di applicazioni Java (in particolare applicazioni J2EE (Java 2 Platform, Enterprise Edition)). È fornito in bundle con il server delle applicazioni J2EE di Borland, il database Borland InterBase SQL e un'edizione di prova della suite Optimizeit dell'azienda, uno strumento di ottimizzazione Java. Il software in formato termoretraibile viene fornito con tre manuali di documentazione tutorial. Questi libri non solo forniscono case study sull'utilizzo di JBuilder, ma servono anche come buone risorse per l'apprendimento dello sviluppo generale di applicazioni Java.

Per sviluppare applicazioni J2ME su qualsiasi edizione di JBuilder 7, è necessario installare MobileSet, un download gratuito dal sito Web di Borland. Dopo aver eseguito il programma di installazione, MobileSet aggiunge nuove procedure guidate, ambienti di compilazione / runtime e voci di menu all'installazione esistente di JBuilder. La recensione seguente si concentra su JBuilder 7 Enterprise.

  • Caratteristiche generali di produttività: JBuilder 7 Enterprise offre funzionalità di produttività Java di prim'ordine. Ha un potente editor, compilatore e debugger. Le funzionalità più avanzate includono più JVM e supporto runtime, strumenti di visualizzazione UML (Unified Modeling Language), strumenti per la progettazione della logica dell'applicazione (ad esempio, progettisti EJB visivi (Enterprise JavaBean)), supporto per unit test integrato, strumenti di refactoring e strumenti javadoc. Per le applicazioni aziendali, JBuilder supporta la generazione automatica di archivi Web e aziendali (WAR / EAR) e la distribuzione su tutti i principali server delle applicazioni. Utilizzando JBuilder, puoi anche integrare facilmente potenti strumenti di terze parti, come CVS (Concurrent Versioning System) per la gestione del codice sorgente e Ant per build personalizzate, nel tuo progetto.
  • Integrazione SDK di terze parti: l'unica piattaforma J2ME supportata da JBuilder è MIDP. JBuilder MobileSet supporta J2MEWTK, Nokia, Siemens e Sprint PCS SDK. Ma il download di MobileSet stesso contiene solo J2MEWTK per iniziare; è necessario scaricare altri SDK separatamente. Poiché JBuilder supporta UEI, mi aspetto che supporterà la maggior parte degli SDK futuri. Lo strumento consente di passare da più JVM e ambienti di runtime in un progetto, il che semplifica lo sviluppo di più piattaforme.
  • Strumenti di post-compilazione: JBuilder MobileSet ha il supporto integrato per l'offuscamento dei file di classe tramite RetroGuard 1.1. La suite Optimizeit in bundle ottimizza ulteriormente le dimensioni e le prestazioni dell'applicazione.
  • Supporto per la distribuzione OTA: con JBuilder Enterprise, potrei facilmente generare file manifest jar e file jad per il mio progetto MIDP. I progetti possono essere distribuiti su un server remoto configurato correttamente tramite il client FTP integrato di JBuilder. Tuttavia, JBuilder non configura il server per te. È possibile testare le applicazioni distribuite utilizzando JAM lato client compatibili con OTA integrati in JBuilder.
  • Sviluppo di applicazioni mobili end-to-end: JBuilder 7 Enterprise ha eccellenti capacità per lo sviluppo di server di applicazioni backend J2EE. Puoi sviluppare applicazioni end-to-end interamente all'interno di JBuilder.
  • Documentazione ed esercitazioni: i tre libri forniti con JBuilder 7 Enterprise sono tutti disponibili gratuitamente in entrambe le versioni HTML e PDF dal sito Web Borland. Borland ha anche tutorial scaricabili MobileSet e molte altre belle documentazioni. Il supporto alla documentazione di JBuilder è eccellente.
  • Costruttori di GUI J2ME: Il MobileSet viene fornito con un costruttore di GUI MIDP; produrre codice GUI con JBuilder si rivela abbastanza semplice.

Sun ONE Studio 4 Mobile Edition

Precedentemente noto come Forte per Java, Sun ONE Studio utilizza la tecnologia NetBeans per integrare moduli esterni nell'IDE. Sun ONE Studio viene fornito con tre edizioni: Community, Mobile ed Enterprise per Java. Le edizioni Community e Mobile sono gratuite; Enterprise per Java costa 995 e dispone di sofisticate funzionalità di sviluppo e distribuzione J2EE. È possibile ottenere una licenza di prova gratuita di 60 giorni per Enterprise per Java dal sito Web di Sun.

Sun ONE Studio è distribuito online e su CD. Il CD contiene tutte le edizioni di Sun ONE Studio 4 su tutte le piattaforme supportate, nonché J2SE e J2EE. L'installazione è semplice.

Sebbene Mobile Edition sia preconfigurato con supporto J2ME, ha solo funzionalità IDE limitate. È possibile aggiungere facilmente funzionalità di sviluppo J2ME alle edizioni Community ed Enterprise per Java installando un modulo wireless J2ME. Questo modulo è conforme alle specifiche NetBeans e può essere installato con qualsiasi edizione di Sun ONE Studio. Il modulo wireless J2ME fornisce modelli, procedure guidate, voci di menu e integrazione di compilatori ed emulatori specifici per J2ME e viene fornito in bundle con J2MEWTK.

Uno dei punti di forza di Sun ONE Studio è il suo design modulare. Terze parti possono fornire facilmente componenti e integrarsi con l'IDE. Esempi di tali moduli includono modellazione UML, refactoring e test di unità.

Le edizioni gratuite di Sun ONE Studio mi hanno impressionato. Sun ONE Mobile Edition o Community Edition più il modulo wireless sono gli unici IDE J2ME gratuiti che raccomando. Forniscono funzionalità IDE importantissime per progetti grandi e complessi. Community Edition fornisce anche funzionalità di base per lo sviluppo di applicazioni lato server; è possibile sviluppare applicazioni servlet e database con questa edizione. Sun ONE Studio è l'unico IDE in questo articolo che dispone del supporto J2ME per piattaforme non Windows. I commenti seguenti si basano sulla mia esperienza con Sun ONE Studio 4 Enterprise per Java più il modulo wireless. Ma la maggior parte si applica anche alla Community Edition gratuita.