I vantaggi e le caratteristiche dello sviluppo mobile ibrido

di A. Cochior, FullStack Developer @ Corley - whitepaper 2020

Le applicazioni ibride si basano su tecnologie web ospitate all’interno di un contenitore mobile nativo.

Operano in maniera del tutto analoga alle app native: vengono distribuite sugli store iOS e Android e godono di una buona interazione con i componenti del dispositivo.

Il punto di forza delle applicazioni ibride è la condivisione della stessa code base tra le diverse piattaforme native e il web, il che permette un notevole risparmio di costi e di tempo, dovendo infatti sviluppare una sola applicazione che verrà poi distribuita su Android, iOS ed eventualmente anche il web (accesso desktop).

CF

Tuttavia la scelta di adottare un pattern ibrido offre il meglio di sé per specifiche tipologie di applicazioni. Scopriamo il perchè.

Il punto di forza delle applicazioni ibride è la condivisione della stessa code base tra le diverse piattaforme native e il web

La svolta mobile

Prima di analizzare il contesto ibrido facciamo un passo indietro. Tutti sappiamo che la fruizione di contenuti digitali si sta spostando sempre di più verso il contesto mobile al punto che oltre la metà degli accessi ad internet avviene ad oggi tramite smartphone e tablet.

Gli stessi motori di ricerca stanno privilegiando nei propri algoritmi di indicizzazione i contenuti fruibili da mobile, portando così le aziende ad adottare una filosofia gestionale e di pubblicazione Mobile First.

Protagoniste di questa svolta sono sicuramente le app native, ovvero applicazioni appositamente studiate per il mobile che permettono di accedere nativamente alle funzionalità del dispositivo utilizzato.

La nascita di Web App e PWA

Negli ultimi anni, per avvicinare gli utenti al contesto mobile, si è dato un forte impulso allo sviluppo di app responsive basate su tecnologie web, come le Single Page Application.

Le SPA sono applicazioni web che non hanno bisogno di alcuna installazione siccome vengono eseguite direttamente nel browser, e che hanno rappresentato un salto tecnologico e qualitativo importante per lo sviluppo internet di nuova generazione.

Tuttavia la distanza tra SPA e dispositivo mobile è enorme: non potendo superare i confini di esecuzione dettati dal browser, le single page application non possono offrire particolari interazioni con il dispositivo.

Per sopperire a queste mancanze le funzionalità delle web application sono state estese dalla tecnologia delle Progressive Web App (PWA).

Le PWA sono dunque l’anello di giunzione tra pagine web e app mobile

Le PWA utilizzano le più moderne tecnologie web per adattarsi alla filosofia del “progressive enhancement”, ovvero fornire una User Experience sempre più simile a quella di un’applicazione installabile da uno store e pensata per interagire con specificatamente con la piattaforma Andorid/iOS.

CF

Esse estendono le funzionalità web aggiungendo alcune funzionalità interessanti tra le quali la fruizione dei contenuti offline, la possibilità di ricevere notifiche push e l’interazione con sistemi di geolocalizzazione: tutti utili strumenti di interazione (e quindi potenzialmente di marketing) per coinvolgere in maniera più diretta gli utenti finali dell’applicazione.

Le PWA sono dunque l’anello di giunzione tra pagine web e app mobile: oltre ad avere accesso a parte delle funzionalità mobile, queste si possono infatti installare ed appariranno all’utente in maniera analoga ad altre normali applicazioni.

Il grosso limite in cui incorrono le PWA è l'utilizzo dell’hardware del device: mentre alcune funzionalità basilari sono comunque disponibili, ce ne sono moltre altre con le quali non è possibile interagire. Oltre a ciò non esiste una specifica ottimizzazione per le piattaforme.

Si generano così dei (potenziali) problemi di performance, specie per utilizzi che coinvolgono operazioni complesse o animazioni massive.

Allora bisogna sviluppare solo app native?

Per sopperire ai problemi legati alle performance e all'interazione con l’hardware del devica è possibile optare per il classi sviluppo di app native: queste vengono sviluppate in maniera mirata per una specifica piattaforma (iOS, Android) e permettono dunque il completo accesso a tutte le funzionalità in maniera ottimizzata o di ottenere il massimo in termini di prestazioni.

Un altro vantaggio delle applicazioni native è che queste sono distribuibili attraverso gli store ufficiali: oltre alla semplicità di accesso che implica, ciò estende anche la visibilità del proprio prodotto ad un mercato più ampio.

Il rovescio della medaglia di avere un'applicazione appositamente costruita per una specifica piattaforma è il fatto che richiederà uno sviluppo dedicato per ognuna di queste.

Attualmente il mercato è dominato principalmente da Android e iOS. Ne consegue che per poter raggiungere una ampia copertura degli utenti si rende necessario sviluppare due applicazioni che utilizzano tecnologie completamente diverse: Android, sviluppato da Google, utilizza Java mentre iOS, sviluppato da apple si basa su Objective-C/Swift.

Ciò incrementa incredibilmente i costi di sviluppo (e di competenza richiesta) perché è necessario implementare le le medesime funzionalità in due code base completamente distinte a cui, sempre più spesso, viene affiancata una web app da scrivere a sua volta con tecnologie web.

Una soluzione: le App Ibride

Pur mantenendo tutti i vantaggi delle applicazioni native, le app ibride rappresentano una soluzione cross-platform: sono infatti applicazioni scritte con tecnologie web incapsulate in un contenitore nativo.

Questo contenitore da un lato mette a disposizione della nostra app un ambiente, detto WebView, in grado di eseguire la UI in un contesto similare a quello di un browser. Dall’altro offre un'interfaccia per interagire con tutti gli strumenti che la piattaforma nativa ci mette a disposizione.

Questo ci permette di godere della flessibilità offerta delle tecnologie web eliminando qualsiasi frizione con l’hardware.

CF

Il panorama attuale ci mette a disposizione svariati framework, tra cui spiccano Ionic, Flutter e React Native. Ciascuno è caratterizzato da specifici pro e contro, da punti di forza e limitazioni, ma tutti rappresentano una soluzione completa che integra un set di UI components dedicate al contesto mobile e permette di sviluppare applicazioni orientate al mercato enterprise.

Attenzione al contesto di utilizzo

Nonostante la differenza tra ibrido e nativo si stia sempre più assottigliando, rendendo le due tecnologie indistinguibili all’utente finale, la flessibilità intrinseca dell’ibrido cela sempre dietro di sé il rischio di una più complessa ottimizzazione.

Questo si ripercuote in una, seppur esigua, differenza di prestazioni e di flessibilità nell'utilizzo delle funzionalità native.

Questi limiti risultano evidenti quando l’applicazione che sviluppiamo richiede una forte integrazione con l’hardware e con i processi nativi del dispositivo, come ad esempio nel contesto videoludico dove si notano in pieno i limiti del supporto della grafica 3d.

D'altro canto questa sorta di limitazione è ovviamente comprensibile: ricordiamoci che lo sviluppo ibrido funge da ponte (denominatore comune) tra piattaforma diverse, mentre uno sviluppo verticale su iOS o Android garantisce per definizione un maggior spazio di manovra specie nella fase di rifinitura.

Quando scegliere un’applicazione ibrida

Proprio per questi sottili limiti sopra esposti, risulta chiaro che l’ibrido da il meglio di sé nelle applicazioni pensate per la consultazione di contenuti, funzioni social o operatività gestionali, oltre laddove si rende necessario controllare i costi di sviluppo, manutenzione e di time-to-market.

Si presta meno ad utilizzi che richiedono la massima resa in termini di performance o di interazione con l’hardware, oppure ad applicazioni che presentano un’alta personalizzazione legata alla piattaforma.

Per approcciarsi al meglio al contesto ibrido, può tornare utile analizzare alcuni punti del nostro progetto mobile:

  • La nostra applicazione richiede specifiche interazioni hardware o processi in background?
  • Quale è il contesto dominante del nostro progetto? (videogame, social, contenuti, operatività…)?
  • Quali competenze mancano al mio IT per gestire correttamente diverse piattaforme mobile?
  • La mia applicazione dovrà supportare anche una versione web oriented?

A seconda delle risposte date a domande come queste possiamo indirizzare la nostra scelta tendendo così ad uno sviluppo ibrido piuttosto che uno nativo.


 


parlaci del tuo progetto o condividi le tue domande con noi!

Corley Advanced Partner di AWS

Grazie ai successi e all'impegno costanti, Corley è Advanced Consulting Partner di Amazon Web Services!

scopri di più




Domande?

inviaci tua richiesta o osservazioni in merito, saremo felici di risponderti!

 


Letta e compresa l'informativa privacy, il sottoscritto presta il proprio consenso al trattamento dei propri dati per finalità di marketing ed invio di comunicazioni promozionali di cui alla lettera b) dell'informativa, attraverso sistemi manuali ed automatizzati

Servizi di Sviluppo

Creazione sartoriale e dedicata
di applicazioni web & mobile

scopri i nostri servizi di Sviluppo