Programmazione delle app mini

In questo capitolo, voglio esaminare le lezioni apprese tramite la ricerca di mini app dal punto di vista di uno sviluppatore web o rispondere alla domanda che cosa significa sviluppare questa modalità.

Anziché reinventare la ruota e costringere gli sviluppatori a creare un'altra implementazione dei paradigmi di UI comuni come schede, accordioni, caroselli e così via, le mini app vengono fornite con una selezione predefinita di componenti che possono essere ampliati in caso di necessità. Anche sul web esistono molte opzioni, alcune delle quali ho elencato nel capitolo sui componenti delle mini app. In un mondo ideale, le librerie di componenti sul web erano costruite in modo da poterle combinare liberamente. In pratica, troppe volte c'è un certo vincolo riguardo a un sistema di progettazione da acquistare quando utilizzi un componente, oppure la libreria dei componenti viene distribuita in modo che sia tutto o niente, ma nessun singolo componente può essere facilmente aggiunto a un progetto. Tuttavia, esistono componenti atomici che puoi utilizzare isolati oppure librerie come componenti-generici che sono stati rimossi appositamente. Cercare un modello usando questi metodi sembra una buona idea.

Modello-vista-vista-modello

Il pattern architettura model-view-viewmodel (MVVM), che facilita la separazione dello sviluppo della Graphic User Interface (la vista) tramite un linguaggio di markup dallo sviluppo della logica di backend (il modello), significa che la visualizzazione non dipende da una specifica piattaforma del modello. Sebbene esista alcuni svantaggi documentati, in generale funziona molto bene per le applicazioni che presentano la complessità delle mini app. Può brillare soprattutto con le ricche librerie di modelli (vedi il prossimo capitolo).

Pensare alle pagine

Il debug delle mini app mostra che si tratta essenzialmente di applicazioni di più pagine (MPA). Questo presenta molti vantaggi, tra cui, ad esempio, la possibilità di creare instradamenti banali e di applicare stili per ogni pagina senza conflitti. Gli utenti hanno applicato correttamente le architetture MPA alle app web progressive. Pensare nelle pagine consente anche di gestire risorse come i file CSS e JavaScript di ogni pagina e altri asset come immagini e video. Ma soprattutto, creare questo modo significa avere la suddivisione del codice basata su route senza costi se non carichi altro. In questo caso, per definizione, ogni pagina carica unicamente ciò che deve funzionare.

Processo di compilazione

Le app mini non hanno un processo di compilazione visibile. Sul web, i moderni strumenti di creazione come Snowpack sfruttano il sistema di moduli integrato di JavaScript (noto come ESM) per evitare lavori inutili e rimanere veloci a prescindere dalle dimensioni di un progetto. Anche se siamo ancora agli inizi, tecnologie come i Web Bundle possono essere aggiunte facilmente al processo di compilazione.

Funzionalità potenti

La piattaforma web ha recentemente acquisito molte nuove funzionalità. Ora è possibile accedere ai dispositivi tramite Bluetooth, USB, HID, serial e NFC. Laddove le mini app vengono eseguite in WebView e dipendono da un bridge JavaScript, sul web queste potenti funzionalità sono disponibili direttamente, perciò non puoi programmare tramite un'API fornita dal bridge JavaScript, ma nell'API del browser senza un attore intermedio.

Ringraziamenti

Questo articolo è stato esaminato da Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent e Keith Gu.