Mobile App Development-Architecture / Platform: Principali problemi di rendimento: device / UI responsività [closed]

0

Attualmente sto studiando diverse alternative per creare un'applicazione mobile di messaggistica istantanea per iOS e Android, utilizzando un server XMPP (probabilmente ejabberd) come back-end. I requisiti principali sono una bella interfaccia utente e, naturalmente, buone prestazioni sulla maggior parte dei dispositivi.

Ho identificato tre diverse alternative, due delle quali includono l'uso dell'SDK Marmalade

Opzione A): usa Marmalade C ++, creando l'interfaccia utente con le librerie Marmalade come IwNUI / INUI. In questa opzione, l'interfaccia utente è creata in codice C ++. La mia ipotesi è che questo dovrebbe essere buono nelle prestazioni, tuttavia non sono sicuro di quanto sia facile ottenere un'interfaccia utente personalizzata che abbia un aspetto buono / moderno, ad esempio altre app di alta qualità. Un altro vantaggio: sceglierei iOS / Android con una base di codice.

Opzione B): anche Marmalade, che usa l'API c ++ s3eWebView per caricare pagine Web locali contenute nel pacchetto dell'applicazione. L'interfaccia utente sarebbe progettata in queste pagine Web utilizzando HTML / CSS / JavaScript. Per la logica dell'applicazione, è possibile utilizzare JavaScript o C ++, in quanto esiste un ponte JavaScript ( link ) per comunicare tra codice C ++ e codice JavaScript. Punterebbe anche su iOS / Android in un colpo solo.

Opzione C): Non-Marmalade: vai con due basi di codice. Utilizza Objective-C (ad esempio "modo standard") per iOS e Google Android SDK per Android. Costruisci l'app due volte.

Attualmente mi sto orientando verso l'opzione B, in quanto ciò consentirebbe l'uso di una base di codice e sfruttare le tecnologie HTML5 / CSS / JavaScript esistenti (particolarmente utili per l'interfaccia utente), insieme alla possibilità di utilizzare C ++. Tuttavia, la mia preoccupazione è se la risposta del dispositivo / interfaccia utente sarà accettabile con questo. Ho eseguito alcuni test preliminari per cose semplici come il caricamento di menu a tendina CSS3 in un s3eWebView tramite C ++, e questo mi sembra abbastanza reattivo (cioè il menu scende rapidamente e senza intoppi).

    
posta user2606742 01.09.2014 - 12:25
fonte

2 risposte

0

Per quanto riguarda il codice:

C ++ è già comunemente usato per la piattaforma multipla per il codice non UI, c'era una presentazione recente su come dropbox realizza questo:

link

Poiché si intende utilizzare C ++, il codice non UI può essere condiviso indipendentemente dalla decisione dell'interfaccia utente. Ciò potrebbe rendere più semplice prendere una decisione sull'interfaccia utente.

Informazioni sull'interfaccia utente:

Dovresti determinare se questo compromesso è accettabile con ulteriori ricerche.

L'ultimo miglio di creare un'app ibrida simile a un'app nativa non vale la pena di dedicarsi, poiché si avranno due problemi: 1) completare le funzionalità dell'app, 2) hackerare in tutti i tipi di funzionalità native.

Se provi le app create con uis mobile (questo sito [1]), le app realizzate con framework mobili (ionico [2], ratchet [3], altri ...) e decidono le prestazioni vanno bene, quindi esegui un app ibrida. Se ritieni di dover migliorare, anche in modo incrementale, invia semplicemente i controlli nativi.

Anche se finisci con l'intenzione di spedire i controlli nativi, puoi prototipare con HTML e successivamente capire l'interfaccia utente nativa, supponendo che il codice non UI sia disaccoppiato.

[1] link

[2] link

[3] link

    
risposta data 01.09.2014 - 22:11
fonte
0

Che cosa preferisci, utilizzando un singolo codebase per più piattaforme o completamente integrato con i requisiti e le caratteristiche di ogni piattaforma? Utilizzare direttamente le prestazioni di un'applicazione nativa o gestire la velocità e le limitazioni del webkit (rispetto al codice nativo completo)? A mio parere:

A) Non ho provato Marmalade, quindi non conosco le prestazioni o qualsiasi cosa relativa IwNUI, ma se entrambe le interfacce sono progettate allo stesso modo, potrebbe sembrare strano vedere le decisioni dell'interfaccia tipiche di iOS in Android e viceversa.

B) Simile ad A, ma con la mancanza di prestazioni. L'HTML è facile, sì, ma questo significa aggiungere un altro livello all'esecuzione dell'applicazione. Ho provato Cordova e non esiste un vero modo per abbinare davvero un'app nativa, né prestazioni né design.

C) Conosci Android e iOS abbastanza per codificarli entrambi? Se conosci solo uno di questi due, fai quell'app, monetizza e ricevi l'aiuto pagato da uno che lo sa.

Se vuoi potenziare un singolo codebase, vai su C ++ (Android ha NDK e penso che puoi farlo a modo tuo anche con iOS, forse Marmalade sarebbe sufficiente), ma assicurati di dare delle vere differenze a ogni interfaccia . In caso contrario, potrebbe sembrare un'interfaccia mal progettata in una delle piattaforme (o forse entrambe, se si desidera prendere decisioni di progettazione da entrambi)

    
risposta data 01.09.2014 - 12:41
fonte

Leggi altre domande sui tag