Sommario:
Hai sentito? Le app HTML5 cambieranno tutto, probabilmente l' anno prossimo. Almeno questo è ciò che un lato del dibattito su HTML5 rispetto alle app native ha detto per un po '. È un messaggio che si fa strada alla ribalta ogni tanto, e lo sarà per sempre. O almeno fino a quando non accade effettivamente e tutte le migliori app sono app HTML5. Non è insolito vedere che gli sviluppatori hanno questo tipo di dibattiti e sostenitori di ciascuna parte che spiegano come la loro versione sia la versione migliore, ma quando le cose vanno oltre una discussione degli sviluppatori e nel mainstream in cui tu e io le ascoltiamo, possono renderci insensibili. Dovremmo davvero preoccuparci di quello che stiamo ascoltando?
In questo caso, si. Mentre l'utopia in cui ogni app è scritta in HTML5 e ogni utente ha la stessa esperienza è ancora una buona strada se mai accada, HTML5 in una forma ibrida è già un grosso problema. Dovremmo conoscere e comprendere tutto ciò che è un grosso problema.
Che cos'è un'app HTML5?
La prima volta che la maggior parte delle persone ha sentito parlare di HTML5 è stato quando Steve Jobs ci ha detto che sarebbe stato il futuro del Web e Flash no. La sua affermazione è stata resa vera in parte perché Apple ha bloccato l'accesso a qualsiasi tipo di lettore Flash su iOS, ma non ci è voluto un visionario di alcun tipo per sapere che stava arrivando perché HTML5 ha molto più da fare di quanto Flash abbia mai fatto. Ed è proprio così che il futuro del web è anche un buon modo per codificare le applicazioni.
HTML sta per HyperText Markup Language e siamo alla quinta revisione dello standard. Ma quando senti il termine app HTML5, sia che si tratti di un'app Web o di un'app che puoi installare sul tuo telefono, hai davvero a che fare con tre tipi di codice.
- HTML fornisce un framework in cui gli sviluppatori possono inserire il loro codice e un'applicazione può trasformarlo in qualcosa che possiamo vedere e interagire con.
- I CSS forniscono un modo per impaginare come appariranno i singoli bit di codice una volta visualizzati e visualizzati sul nostro schermo.
- JavaScript è ciò che rende tutto interattivo ed essere in grado di "fare" qualsiasi cosa.
Ciò che rende grande HTML5 è che tutto è compreso da un'applicazione che uno sviluppatore di app non ha bisogno di mantenere e funziona su qualsiasi dispositivo con uno schermo che ha la sua versione di quell'app. Stiamo parlando di un browser Web, ma non dell'app stessa. Il componente di un browser Web che può prendere tutto questo codice e renderlo in qualcosa che possiamo usare al volo è abbastanza portatile e fa parte di molte app che usi già come vista web.
Un ingegnere di Mozilla disse una volta "Il codice una volta eseguito ovunque non significa scappare. L'ottimizzazione è la chiave". Ragazzi intelligenti, quegli ingegneri di Mozilla.
Ciò significa che uno sviluppatore può scrivere il proprio codice e ottimizzarlo, quindi distribuirlo ovunque. È molto diverso dalla scrittura di codice separato per Android, iOS, macOS, Windows e HTML per webOS e BlackBerry 10. Uno sviluppatore può scrivere codice usando qualsiasi ambiente di sviluppo che scelgono, che sia Blocco note o qualcosa di complesso come Visual Studio o Adobe Dreamweaver, esegui il debug e ottimizzalo in qualsiasi browser scelgano, e funziona ancora ovunque.
Questo include anche il tuo telefono. Abbiamo visto tutti le app HTML5 utilizzate come pagina Web. Luoghi come Twitter o la versione mobile di Gmail sono eccellenti esempi di HTML5 al lavoro. Ma poiché HTML5 può essere renderizzato da un componente di visualizzazione Web, rilasciare una finestra all'interno di un frame di app di base per creare un'app effettivamente installata sul telefono è semplice e veloce. Esistono anche strumenti di terze parti che fanno tutto il lavoro per te, come Apache Cordova. Questo aiuta i nuovi sviluppatori a portare le loro idee a tutti così come agli sviluppatori esperti che ora hanno il tempo di inventare cose che non abbiamo mai visto prima. HTML5 incorporato in un'app nativa può eseguire il codice e utilizzare le risorse che ottiene da Internet, ma uno sviluppatore può anche installarli localmente e puntare il codice lì per app native offline onestà.
Ma non tutto è fantastico su HTML5.
La realtà delle app HTML5
Ecco dove le cose possono diventare confuse. Quando pensiamo a una pagina Web, spesso dimentichiamo che una pagina Web invia solo il suo codice a un motore di browser ed è il nostro dispositivo che fa il lavoro. Ciò significa cose come la geolocalizzazione, la chat audio e video in tempo reale, la grafica 3D accelerata e molto altro non solo è possibile, ma è semplice da implementare per gli sviluppatori utilizzando HTML5. Questo perché un ente normativo ha dichiarato: "Ehi ragazzi, tutti dobbiamo fare questa certa cosa in questo modo particolare, e uno sviluppatore può chiederci di farlo in questo modo".
Questo è l'obiettivo, comunque. La realtà può essere leggermente diversa e dobbiamo solo guardare la riproduzione video per un ottimo esempio del perché. Ogni browser che desideri utilizzare supporta HTML5: Chrome, Opera, Internet Explorer, Edge, Firefox e Safari sono browser HTML5 e supportano la riproduzione di video quando uno sviluppatore digita solo poche parole che puntano a un video. Qualsiasi tipo di componente di visualizzazione Web portatile di queste app farà la stessa cosa perché utilizzano lo stesso motore di rendering.
Quando non imponi le regole diventano suggerimenti; quelli che nessuno vuole seguire.
Ma non supportano tutti lo stesso tipo di video perché HTML5 è multipiattaforma, aperto e non proprietario, quindi nessuno li costringe a supportare tutti i formati. Ogg Theora è un popolare formato video supportato da tutti i browser ad eccezione di Internet Explorer, che risulta essere il browser predefinito su molti computer. H.264 è ancora più popolare, ma non è aperto o gratuito da usare, quindi Firefox non lo supporta. VP8 e WebM sono liberi di usare e aprire e ogni motore di browser li supporta, ma Internet Explorer e Safari richiedono all'utente di recuperare e installare il supporto. Tecnicamente, HTML5 supporta la riproduzione di video HD ed è super facile per uno sviluppatore implementarlo. Nel mondo reale, è supportato solo il giusto tipo di video.
YouTube riproduce tutti i video con HTML5 perché Google ha i soldi per convertire i video che carichi.
HTML5 dipende anche dall'hardware in uso e dalla capacità dello sviluppatore di scrivere il codice. La scelta della libreria JavaScript errata può comunque produrre lo stesso risultato, ma può anche portare a perdite di memoria e gestire la manipolazione DOM (Document Object Model - creata quando viene caricata una pagina o un'app) e include tutti gli elementi nella pagina o nell'app come un "documento" separato può scarsamente rendere un'app HTML5 frustrantemente lenta anche sull'hardware migliore. Sui telefoni che non sono così capaci, porta rapidamente gli utenti a disinstallare la tua app.
Questo non è l'unico problema. Quando crei un'app HTML5 che estrae tutto da Internet, devi gestire i tempi di caricamento. Ciò aggiunge la velocità di connessione di un utente all'elenco delle cose che possono far funzionare lentamente la tua app, insieme alle capacità fisiche dell'hardware (molti telefoni usano processori che non sono esattamente veloci) e l'ottimizzazione del codice. Se ci vuole un secondo per visualizzare il codice su un dispositivo degli utenti e 10 secondi per recuperarlo da Internet, avrai molti utenti infelici.
L'app di Facebook è un esempio di ciò che non va in HTML5, così come Instagram è un esempio di ciò che è giusto.
C'è un eccellente esempio di questo disponibile, ed è quasi uno di noi tutti scontenti, indipendentemente dal tipo di telefono che utilizziamo: l'app di Facebook. L'app di Facebook è fondamentalmente una visualizzazione Web incorporata in un frame che contiene i pulsanti e consente di gestire le credenziali dell'account o di inviare messaggi in un modo approvato dal sistema operativo. Tutte le cose che accadono all'interno dell'app sono fatte con HTML5, ed è fin troppo per essere gestite una volta che prendi in considerazione il recupero di tutti i suoi dati da Internet. Gli sviluppatori continuano ad aggiungere sempre più a Facebook, gli utenti pubblicano file di grandi dimensioni ospitati su luoghi al di fuori di Facebook e ci sono milioni e milioni di persone che colpiscono i server di Facebook contemporaneamente, 24 ore su 24, 7 giorni su 7. Ciò rende le app lente da aggiornare, molto affamate di energia e oggetto di molte lamentele.
Anche il sito Web mobile di Facebook è scritto in HTML5, ma è progettato per essere limitato alle risorse perché è per uso mobile. Ciò rende più veloce il caricamento del contenuto che si desidera vedere anche se tutto quel contenuto non viene visualizzato in modo altrettanto bello come è nella visualizzazione completa. È anche il motivo per cui il sito mobile e le app "lite" di Facebook che fanno riferimento funzionano molto meglio dell'app ufficiale di Facebook. E questo non è solo un problema di Facebook - ci sono molte app che avrebbero tutte le loro funzionalità supportate usando HTML5 ma sono altrettanto complesse (una parola carina per gonfiarsi perché sono in circolazione da un po 'di tempo e cambiano costantemente) come Facebook e agirebbe allo stesso modo.
Quindi voglio vedere più app HTML5 o no?
Sì! Ma non tutte le app.
HTML5 è davvero bravo in molte cose ed è un ottimo modo per uno sviluppatore di usare il proprio tempo per pensare a idee creative invece di fare il root attraverso un manuale di riferimento di Objective-C o C ++. Ma a volte, la rigida struttura dei linguaggi di sviluppo che costringe uno sviluppatore a fare le cose in un certo modo è ciò che fa funzionare meglio il risultato finale sui nostri telefoni.
Le app HTML5 possono essere un incubo come vediamo dall'app Facebook o possono essere davvero fantastiche come vediamo dal sito Gmail mobile. O Uber. O Instagram. O una delle centinaia di app HTML5 che utilizziamo ogni giorno. Non è una cosa di cui dovremmo preoccuparci, ma è assolutamente una cosa che gli sviluppatori discutono all'infinito. E ora mentre stanno discutendo e cercando di convincerti che è meglio, sai un po 'del perché stanno dicendo le cose che stanno dicendo.
Potremmo guadagnare una commissione per gli acquisti utilizzando i nostri link. Per saperne di più.