Domanda

Di recente ho iniziato a sviluppare un prototipo di app J2ME. Ho notato quanto sia difficile sviluppare un'interfaccia utente di bell'aspetto. Prendi in considerazione lo sviluppo di un'app in J2ME per la prenotazione di voli che interagiscono con il servizio web.

Un sito web per prenotare voli sarà facile da sviluppare con una bella interfaccia utente e sarà possibile accedervi dal browser su un telefono. Capisco che non tutti i portatili hanno un browser, ma tutti quelli nuovi e quelli in arrivo hanno un browser e hanno anche un grande schermo.

È una buona idea sviluppare una tale applicazione in j2me che deve parlare con il servizio web perché funzioni? O j2me è adatto solo per app standalone?

È stato utile?

Soluzione

Vantaggi di J2ME:

  • Può accedere alle risorse del telefono, come file system, rubrica e GPS. L'ultimo è molto importante nelle applicazioni cartografiche.
  • È possibile creare interfacce utente più ricche. Potrebbe essere difficile come dici tu, ma ci sono molte librerie GUI che potrebbero aiutarti. Al contrario, l'interfaccia utente per un browser mobile (non puoi fare affidamento sul funzionamento di CSS e javascript) sarebbe molto scarsa.
  • Maggiore flessibilità sulla logica di comunicazione. È possibile crittografare / decrittografare i dati, comprimerli, utilizzare i servizi Web SOAP. Con il browser, la soluzione migliore sarebbe sviluppare servizi REST.

Svantaggi di J2ME:

  • Le midlet devono essere firmate. Questo ha un certo costo e ci sono situazioni in cui anche un'app firmata non funzionerà correttamente in telefoni specifici.
  • Lo sviluppo di un midlet per l'esecuzione in tutti i tipi di telefoni è un incubo. Al contrario, un'applicazione Web mobile ben progettata verrebbe visualizzata correttamente in tutti i telefoni recenti.
  • Devi avere un canale per distribuire la tua applicazione. Le persone dovrebbero scaricarlo e farsi pagare per la larghezza di banda richiesta. Dovresti prenderti cura dei clienti arrabbiati che hanno problemi con l'applicazione. Le cose sono più facili con un sito web.
  • Le app J2ME vengono inevitabilmente confrontate con le applicazioni native (iPhone, Windows Mobile, Symbian). Rispetto a questi, sono molto poveri e molti troverebbero che pagare per loro o addirittura usarli non è giustificato.

La mia conclusione: al giorno d'oggi i veri smartphone stanno diventando più popolari e conquistano una quota di mercato sempre crescente. In queste circostanze, i vantaggi di J2ME non possono davvero superare le sue restrizioni. L'unica eccezione che mi viene in mente è se è necessario sviluppare un'applicazione GPS. Per tutti gli altri casi, un sito Web mobile è un'idea migliore.

Altri suggerimenti

Ci sono molte di incomprensioni e semplici dichiarazioni errate nelle risposte precedenti.

Ti consiglio di fare la tua ricerca da solo. Oggi PUOI sviluppare app davvero belle con J2ME senza scrivere il tuo framework GUI. Dai un'occhiata a LWUIT davvero. Ad esempio hanno una tastiera virtuale come una delle loro funzionalità touch screen e questo lo hai su dispositivi come l'N97 che a sua volta non ha una tastiera virtuale. A proposito usando LWUIT hai una porta Blackberry e Android inclusa se qualcuno se ne frega.

Anche le app al giorno d'oggi diventano il centro della scena su molte piattaforme, non solo sull'iPhone. Guarda i recenti sviluppi in questo settore come OVI, RIM, Samsung, SE, Orange World, che iniziano tutti con negozi di app.

" Far sì che le persone utilizzino un sito Web sul proprio telefono cellulare è più facile che far loro scaricare un'applicazione. " questo è solo un reclamo senza prove. non puoi dirlo così. Dipende da molti altri fattori. - Perché gli utenti dovrebbero digitare nuovamente l'URL del tuo cellulare nello schermo piuttosto piccolo?

Comunque, questa risposta è probabilmente troppo tardi, quindi non scriverò molto di più. Il settore della telefonia mobile sta cambiando rapidamente in questo momento, ma non esiste ancora un'alternativa a J2ME per lo sviluppo multipiattaforma. Forse in futuro con browser migliori e tecnologie di widget.

Solo una breve nota, applicazioni come google maps o gmail mobile probabilmente non usano i servizi Web per parlare con la loro parte server. Un WebService ha molte spese generali, specialmente se si considera che gli utenti di dispositivi mobili sono generalmente valutati in base alla quantità di dati che trasmettono. Il modo migliore per eseguire la comunicazione tra l'app client e la sua parte server è utilizzare i dati binari su una connessione socket.

Personalmente penso che sia davvero difficile realizzare un'applicazione J2ME coerente e affidabile che verrà eseguita su un ampio set di telefoni cellulari. In base alla mia esperienza, svilupperei un'applicazione J2ME (anziché un'applicazione Web) se è un requisito rigoroso, ad esempio per poter visualizzare le prenotazioni senza essere connessi alla rete. Ci sono altri costi associati alle applicazioni J2ME: le applicazioni devono essere scaricate, all'utente verrà chiesto se all'applicazione è consentito connettersi alla rete quando tenta di farlo (ci sono eccezioni per questo caso, ma credo che l'applicazione debba essere firmata da società di terze parti - più $$$ coinvolti), dovrai mantenere diverse versioni dell'applicazione in esecuzione su una varietà di telefoni cellulari (più complessità per l'applicazione) e così via ...

Pensaci in questo modo: se sviluppassi qualcosa di simile per un computer, costruiresti un'applicazione desktop o un'applicazione web? Con i cellulari di oggi (molti dei quali possono accedere a siti full-html con javascript - che significa ajax), la proposta della domanda è valida.

Penso che una buona regola empirica dovrebbe essere: Se ciò che stai cercando di ottenere può essere fatto con un sito Web mobile, vai al sito Web.

IMHO, le app dovrebbero essere utilizzate solo se non possono sfruttare l'hardware mobile - come posizione, suono, video, 3d, immagini ecc ...

Anche se i costi di sviluppo dell'app fossero insignificanti (di solito non lo sono), dovresti offrire alcune funzionalità davvero sorprendenti per far sì che gli utenti affrontino il problema del download.

(Tutto ciò è essenzialmente vero per J2ME / BREW. L'iPhone è un po 'diverso poiché le app sono al centro dell'attenzione)

Una cosa degna di nota: l'unico modo standard per distribuire una MIDlet è tramite download OTA, quindi non ti aspetteresti che un telefono compatibile con J2ME non abbia un browser web.

I browser Web mobili come Webkit e Opera stanno migliorando più velocemente di J2ME (almeno fino a quando MIDP3.0 non inizierà la spedizione, se mai).

Indipendentemente dalla piattaforma scelta, dovrai testare il tuo servizio su molti dispositivi. Non penso che passare da J2ME a webapp faccia una grande differenza in questo senso, perché i produttori di telefoni continuano a cambiare i binari che vanno nei firmware dei telefoni.

Far sì che le persone utilizzino un sito Web sul proprio telefono cellulare è più semplice che far loro scaricare un'applicazione. a meno che l'applicazione non sia già installata al momento dell'acquisto del telefono, ovvero.

Potresti voler guardare a LWUIT per una GUI J2ME migliore e più facile.

Una cosa che J2ME realizzerà per un servizio di prenotazione di voli è la durata della batteria non richiedendo il trasferimento costante dei dati di rete, grazie ai meccanismi di archiviazione locali.

ci sono molte fantastiche app j2me che (devono) parlare con i servizi web. basti pensare alle app google, come gmail mobile e maps per dispositivi mobili. sono più veloci e più facili da usare rispetto all'utilizzo dei servizi tramite il browser del cellulare. quindi se riesci a progettare una buona app, ne vale sicuramente la pena.

EDIT: inoltre, un'app j2me rende possibili funzionalità che non possono essere fornite da un'applicazione Web: integrazione con le funzioni del telefono (rubrica, calendario), "chiama questo numero", posizione API, ecc.

Penso che per le app aziendali, o più cose orientate al testo / ai dati, un sito web / wap mobile potrebbe essere più facile da mantenere, dal momento che non dovrai occuparti di inviare gli aggiornamenti dei client ai telefoni.

Per le app ad alta intensità di interfaccia utente (mappe, giochi, ecc.), le app client sono probabilmente la strada da percorrere, quindi puoi gestire la maggior parte dell'elaborazione e del rendering sul lato client.

Entrambe le opzioni sono tuttavia difficili, poiché ci sono così tanti problemi di compatibilità con i telefoni. Puoi essere ottimizzato restringendo i tipi di telefoni che desideri supportare per la tua app. Se ritieni che la maggior parte dei tuoi clienti saranno telefoni iPhone o Android, puoi scegliere come target tali piattaforme (con app client o Web) ed evitare completamente il j2me della vecchia scuola.

Odio WebApps sui telefoni. Sono lenti e non funzionano in un ambiente semi-connesso.

Le app J2ME possono eseguire backup locali, backup bluetooth, condivisione di dati bluetooth tra 2 telefoni e una migliore interfaccia utente reattiva. Tuttavia, ciò richiede denaro, abilità, tempo ecc.

La mia principale lamentela con MIDP è però spingere gli aggiornamenti del software e agitare il mixaggio in tempo reale. Tecnicamente questi sono possibili nell'ambito di MIDP ma i goon al volante non sono molto creativi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top