Programmazione delle app mini

Che cosa ha funzionato bene per le mini app

In questo capitolo, voglio esaminare le lezioni che ho imparato dalla ricerca sulle mini app dal punto di vista di uno sviluppatore web o rispondere alla domanda che cosa significa sviluppare mini app.

Componenti

Anziché reinventare la ruota e chiedere agli sviluppatori di creare un'altra implementazione di paradigmi comuni dell'interfaccia utente come schede, annunci a scomparsa, caroselli e così via, le mini app vengono fornite con una selezione predefinita di componenti che è estendibile nel caso in cui tu ne abbia bisogno di altri. Sul web sono disponibili molte opzioni, alcune delle quali ho elencato nel capitolo sui componenti delle mini app. In un mondo ideale, le librerie di componenti sul web sarebbero state create in modo da poterle combinare liberamente. In pratica, troppo spesso esiste un certo vincolo per quanto riguarda un sistema di progettazione che devi acquistare quando utilizzi un componente oppure la libreria dei componenti è distribuita in modo da essere tutto o niente, ma nessun singolo componente può essere facilmente aggiunto a un progetto. Esistono però componenti atomici che puoi utilizzare singolarmente o librerie come generic-components che non hanno stile intenzionalmente. Trovare e utilizzare questi dati sembra una buona idea.

Model-view-viewmodel

Il pattern di architettura model–view–viewmodel (MVVM), che facilita la separazione dello sviluppo dell'interfaccia utente grafica (la visualizzazione) tramite un linguaggio di markup dallo sviluppo della logica di back-end (il modello), indica che la visualizzazione non dipende da alcuna piattaforma di modello specifica. Sebbene esistano alcuni svantaggi documentati del pattern, in generale funziona molto bene per le applicazioni della complessità delle mini app. Può essere particolarmente efficace con librerie di modelli avanzate (vedi il capitolo successivo).

Pensiero per pagine

Il debug delle mini app mostra che si tratta essenzialmente di applicazioni multipagina (MPA). Questo approccio presenta molti vantaggi, ad esempio consente un routing banale e uno stile per pagina senza conflitti. Gli utenti hanno applicato con successo architetture MPA alle app web progressive. Pensare in termini di pagine aiuta anche a gestire risorse come i file CSS e JavaScript di ogni pagina e altri asset come immagini e video. Soprattutto, se non carichi altro, la compilazione in questo modo ti consente di ottenere senza costi la suddivisione del codice in base ai percorsi. In questo caso, ogni pagina carica per definizione solo ciò che è necessario per il suo funzionamento.

Processo di compilazione

Le mini app non hanno una procedura di compilazione visibile. Sul web, gli strumenti di compilazione moderni come Snowpack sfruttano il sistema di moduli (noto come ESM) integrato in JavaScript per evitare lavoro non necessario e mantenere la velocità indipendentemente dalle dimensioni di un progetto. Sebbene sia ancora presto per tecnologie come i bundle web, si tratta di qualcosa che può essere facilmente aggiunto al processo di compilazione.

Funzionalità efficaci

La piattaforma web ha recentemente acquisito molte nuove funzionalità. Ora è possibile accedere ai dispositivi tramite Bluetooth, USB, HID, seriale e NFC. Se le mini app vengono eseguite in WebView e dipendono da un ponte JavaScript, sul web queste potenti funzionalità sono disponibili direttamente, quindi non programmi contro un'API fornita dal ponte JavaScript, ma contro l'API del browser senza un attore intermedio.

Ringraziamenti

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