Native vs. Hybrid technologies

Attualmente, nel mondo dello sviluppo software per dispositivi mobili, si è aperto un dibattito sull’utilizzo delle tecnologie nativamente disponibili sulle varie piattaforme, in raffronto a quelle cosiddette “ibride”.I nostri studi e le nostre esperienze ci hanno permesso di isolare e definire alcuni concetti chiave intorno a questi due approcci.

Native APPS: pro e contro

Le app native sono in grado di coprire le funzionalità più avanzate e offrire, in genere, la miglior user-experience.

I PRO:

  • Pieno supporto alle gesture: multi touch , double taps, pinch, long press, …
  • Rendering grafico accelerato: transizioni fra schermate ed effetti grafici non hanno un aspetto “scattoso”
  • Accesso a tutte le funzionalità del device (camera, geolocation, cache, filesystem, …)
  • User Experience e semplicità d’uso: la piattaforma nativa rappresenta la scelta più gradita agli utenti che hanno acquisito famigliarità con il device in uso
  • Debug tools: implementazione e manutenzione sono più semplici in un ambiente di sviluppo nativo

I CONTRO:

  • Costi di sviluppo e manutenzione delle apps per ogni piattaforma
  • Know-how specifico per ogni piattaforma supportata
  • Time-to-market significativo (tempi di pubblicazione, blocchi del CQ, …)

Hybrid APPS: pro e contro

Le app ibride vengono sviluppate in un “guscio” nativo utilizzando tecnologie standard del mondo web (HTML5, Javascript e CSS3 in primis)

I PRO:

  • L’accesso alle funzionalità del device avviene tramite API esposte dalla shell nativa
  • Supporto multipiattaforma garantito dalla portabilità dei sorgenti HTML/Javascript/CSS e dalla disponibilità degli engine shell sulle piattaforme di interesse
  • Time-to-Market ridotto e, in genere, sensibile solo in fase di prima pubblicazione

I CONTRO:

  • User Experience talvolta deludente (scarsa fluidità, interfaccia non pienamente integrata: l’utente è spesso consapevole di navigare su un web site che “assomiglia” ad un’app nativa)
  • Gestione inefficiente delle sessioni, caching e operatività offline
  • In genere la scelta dell’uso di tecnologie ibride nello sviluppo di un’app è irreversibile, in quanto i comuni engine presenti su mercato non consentono di integrare agilmente casi d’uso nativi e web o di cambiare tecnologia quando necessario
  • Inefficienza della piattaforma di sviluppo Web

La nostra soluzione: Seabird BROWSER – Advanced Hybrid Engine –

A partire dalle considerazioni fatte, quindi, abbiamo sviluppato un concetto di ibrido avanzato, che sta alla base del nostro modello di offerta. Il cuore di tutto questo si chiama Seabird Browser, il potente engine di nostra concezione per lo sviluppo di app, che offre le seguenti funzionalità:

  • Totale integrazione tra moduli ibridi e nativi con navigazione fluida e storicizzata fra un layer e l’altro
  • La scelta della tecnologia (ibrida o nativa) può essere effettuata a livello di singolo caso d’uso e mutare nel corso del ciclo di vita dell’app
  • Prototipazione semplificata: un’app può essere realizzata rapidamente in modo ibrido e adottare un approccio nativo per le sole funzionalità che lo richiedano
  • Caching e sincronizzazione dei contenuti con pieno supporto a tutte le policy standard (offline, updates check, …)
  • Parziale supporto multipiattaforma anche sul layer nativo grazie alla omogeneità delle API implementate
  • Piena integrabilità di tutti I moduli funzionali Seabird client e server

Hybrid vs. Native: la posizione di Seabird