Mobile Web, Ibrido e Nativo a confronto

Questa è una domanda su cui si ragiona parecchio negli ultimi anni, i recenti sviluppi nella tecnica(dispositivi più veloci, tool di programmazione più evoluti) hanno cambiato il panorama rispetto a quello che abbiamo visto nel 2009-2010. Raccolgo in questo articolo i pro e i contro di ogni possibile via, alla luce delle tecniche a disposizione oggi e per sfatare opinioni diffuse che ad oggi non hanno più fondamento.

Innanzitutto, nessuna delle 4 modalità è perfetta ed esente da problemi, ogni approccio ha vantaggi e svantaggi, idealmente su due assi: qualità/controllo e tempi/costi, dipende dalle priorità e dal budget dell'organizzazione committente quale tradeoff sia prioritario.

HTML5: Single Page Application e web Responsive

Cordova/PhoneGap: HTML5 in applicazione nativa

Xamarin/FireMonkey: cross-platform native

altri prodotti che rientrano in questa categoria:

Nativo: migliore qualità, grossa spesa

non esiste una soluzione perfetta, la via nativa da potenzialmente risultati qualitativamente migliori ma costa dalle 4 alle 10 volte più di una soluzione bsata su web o cordova. la tua azienda ha reale necessità o altre soluzioni sono sufficienti? la tua azienda ha badget sufficiente?

il mio suggerimento prima di spendere è chiarirsi le idee vedendo dei prototipi, partendo dalle soluzioni meno impegnative e arrivando se necessario a quelle più costose e dai tempi di realizzazione più incerti, nel caso ci sia bisogno.

Sconsiglio vivamente di confrontare le proprie esigenze, magari limitate a decine o poche centinaia di utenze, con aziende digitali che investono milioni di dollari, essendo il loro core business, e hanno milioni di utenti da servire(gli ovvi paragoni con Facebook e Twitter), occorre invece concentrarsi su ciò che è possibile ottenere realisticamente con i budget a disposizione.

Una possibile soluzione è un investimento che diversifichi su più metodi di sviluppo senza legarsi eccessivamente a una sola strada. Ad esempio affiancare all'applicazione web l'applicazione cordova multipiattaforma ed eventualemnte se il budget e i ritotni lo permettono, una app nativa mirata su una piattaforma.

Un paoi di considerazioni finali: innanzi tutto ci sono ancora moltissimi clienti da servire che necessitano dell'applicazione web tradizionale e si collegano con un pc desktop, in alcuni contesti questi utenti sono numericamente importantissimi e vanno serviti al meglio, l'app mobile poi utilizza i dati esposti dal vostro sistema informativo aziendale attraverso webservice, anche detto back-end, anche questa parte della soluzione va curata ed è inprescindibile. In secondo luogo sia lo sviluppo di una soluzione web o ibrida, sia a maggior ragione la soluzione nativa, pone problemi tecnici di sviluppo/manutenzione, responsabilità e sicurezza dei dati non trascurabili, non va presa alla leggera, per cui avrete comunque bisogno per ottenere risultati di professionisti con solide basi tecniche.


Tags:
Mobile

Blog Disclaimer:

Le opinioni espresse nel mio blog sono solo questo: mie opinioni.

In nessun modo rappresento le opinioni dei miei clienti in questa sede.


Notice: Undefined variable: browserName in /var/www/taziomirandola.it/lib/Visitors.php on line 86

Notice: Undefined variable: browserName in /var/www/taziomirandola.it/lib/Visitors.php on line 96

Deprecated: strripos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in /var/www/taziomirandola.it/lib/Visitors.php on line 96

Notice: Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/taziomirandola.it/lib/Visitors.php on line 39

Fatal error: Uncaught TypeError: Argument 1 passed to safe_text() must be of the type string, null given, called in /var/www/taziomirandola.it/lib/Visitors.php on line 39 and defined in /var/www/taziomirandola.it/lib/Visitors.php:162 Stack trace: #0 /var/www/taziomirandola.it/lib/Visitors.php(39): safe_text() #1 /var/www/taziomirandola.it/lib/Visitors.php(124): Visitors::getData() #2 [internal function]: Visitors::log() #3 {main} thrown in /var/www/taziomirandola.it/lib/Visitors.php on line 162