con moderne pratiche e tecnologie web,
è assolutamente possibile ottenere praticamente / percepibilmente come una buona prestazione come nativo,
ma richiede uno sforzo, diversamente dallo sviluppo di app native (non webview / DOM UI) in cui le ricevi gratis senza preoccupazioni / sforzi.
- are there any established software development methods and practices to follow? defined software requirements?
Sì, consulta e utilizza gli RAIL e PRPL modelli / modelli di sviluppo web.
- do you have any recommended software architecture and design?
- usa una moderna libreria UI del componente dichiarativo (ad es. React)
- pre-rendering del DOM per stringhe / file HTML statici in background
- libreria UI bootstrap da file HTML / HTML statico pre-rendering
- ha un flusso di dati unidirezionale, non un collegamento dati bidirezionale
- utilizzare un singolo archivio dati normalizzato (ad es. Redux)
- salva e idrata il negozio
- includilo con il file HTML pre-renderizzato (dichiari lo stato con json nel tag script)
- usa una struttura dati immutabile lungo
con il confronto / controllo di riferimento della libreria UI (ad esempio immutable.js)
- non caricare l'intera app all'avvio
- utilizza la strategia di suddivisione del codice integrata con il router della libreria UI
- non fare richiesta di rete all'avvio, prelettura in background e cache per l'avvio.
- se si usa redux / any caching significa update store
- e pre-rendering se pre-rendering
- se i dati sono obsoleti, avere una buona UX da recuperare dopo l'avvio, quindi toccare per aggiornare l'interfaccia utente
- usa il componente lista di scorrimento infinita / virtuale
- usa l'osservabile per modellare l'asincronicità. (ad esempio rxjs)
- ad es. richieste Ajax cancellabili (risposte droppabili).
- ad esempio quando l'utente cambia idea e annulla / torna all'interfaccia utente
- se stai usando l'opzione Redux su Redux-observeable