Verso applicazioni sempre più veloci, e oltre!

Written by on Mercoledì 27 Novembre 2013

Verso applicazioni sempre più veloci, e oltre!

cc jkbrooks85 / Flickr

Da quando abbiamo lanciato GoodBarber, il nostro obbiettivo è sempre stato quello di offrire applicazioni con la migliore esperienza utente possibile. Oltre al nostro interesse per gli utenti finali, il nostro scopo - condiviso dall'intero settore - è quello di migliorare l'esperienza utente nell'uso dell'applicazione dal punto di vista estetico (design) e della fluidità (velocità) dell'interfaccia.

Un altro obbiettivo è quello di lasciare ai nostri utenti la massima libertà possibile nella gestione della loro applicazione. In concreto, offrendo varietà di configurazioni e facilità di implementazione delle modifiche che vengo apportate. 
É proprio per rendere l'aggiornamento il più immediato possibile che abbiamo creato un sistema di controllo remoto per l'aggiornamento delle applicazioni. Questo strumento vi permetterà ad aggiornare tutti i dati di base installati nella vostra app senza un'ulteriore invio agli store.

La combinazione di questi obbiettivi crea un'equazione complessa da risolvere. Perché più grande è la flessibilità della configurazione, più è complesso mantenere la velocità e la fluidità dell'interfaccia. E viceversa, quanto più si cerca di rendere le cose veloci, meno si è in grado di proporre configurazioni.

Dedichiamo molto impegno allo sviluppo di GoodBarber al fine di renderlo il miglior software DIY per la creazione di Beautiful App per Apple e Android (in particolare con l'aggiornamento GoodBarber 2.5 Salvador). Al tempo stesso, il team lavora anche sull'ottimizzazione delle applicazioni dopo il loro rilascio.

Come funziona il processo di lancio di un'app?

Non è possibile scaricare i vari elementi del design della vostra applicazione durante il suo funzionamento.
Questo per due motivi:
1. Rallenterebbe notevolmente l'interfaccia di visualizzazione (che, come una pagina web dovrebbe caricare la sua grafica prima di poterla visualizzare)
2. Potrebbe creare una incoerenza di visualizzazione dell'applicazione, non permettendole di funzionare offline.

Quindi, quando la vostra applicazione viene lanciata, l'app richiede ai server di GoodBarber gli elementi del design e tutti gli elementi necessari per farla funzionare bene e autonomamente. Con l'eccezione dei contenuti, che possono venire modificati e aggiornati molto più spesso.  

Per gli esperti: In questo momento l'applicazione richiede alle Settings API se tutto è corretto e se tutte le informazioni presenti nella sua cache sono aggiornate.

Questo processo di aggiornamento si presenta solo se la vostra app non è stata lanciata con un sistema multi-tasking, per evitare di rallentare il lancio per un normale utilizzo. Oltretutto, tutti gli elementi dalla vostra applicazione vengono registrati sulla cache locale al momento della compilazione. Questo permette all'applicazione di funzionare anche offline e di essere più veloce dopo la pubblicazione.

Come varia il tempo di aggiornamento?

Quando l'applicazione chiede le Settings API per l'aggiornamento, cerca tra tutti dati che le vengono inviati e li confronta uno per uno con la sua cache locale. Ciò significa che se non è stata effettuata alcuna modifica dall'ultimo aggiornamento, il processo sarà rapido. Le Settings API risponderà che non vi è alcuna modifica e l'applicazione funzionerà normalmente.

Ma se sono state effettuate modifiche importanti (come nuovi immagini, ecc...) il tempo di download per l'aggiornamento sarà più lungo. 

Vi sono due casi il cui l'aggiornamento potrebbe richiedere più tempo:
- Quando viene cambiato tutto il design dell'applicazione (Potrebbe essere un download di svariati megabyte);
- Quando l'utilizzatore è in una zona in cui il network non funziona molto bene.

In questi 2 casi, l'applicazione potrebbe decidere di interrompere l'aggiornamento (e anche il lancio) se alcuni file risultano danneggiati o se il tempo di download è troppo lungo per l'aggiornamento. 

Tutto questo accade durante il lancio dell'applicazione, quando viene visualizzato lo splash screen. Potete vedere il progresso del download sullo schermo in alto, sulla barra di avanzamento bianca.

NB: Le pubblicità vengono caricate solo dopo il processo di aggiornamento. Quindi è necessario fare attenzione che non rallentino inutilmente il lancio della app.

Monitorare e ottimizzare

Per ottimizzare il tempo di lancio il nostro team ha sviluppato nelle applicazioni una serie di strumenti di monitoraggio. Abbiamo pensato a cosa potesse essere possibile ottimizzare, pur non potendo influenzare il network del dispositivo mobile.

Contrariamente a quanto si possa pensare non è tanto la quantità di dati che impatta il tempo di download, e non dipende neanche dal tipo di connessione (Edge, 3G, 4G o WiFi). Ovviamente  più grande è il volume dei dati, maggiore sarà il tempo impiegato. Ma oggigiorno le compagnie mobile offrono network efficienti e ad alta velocità. Quindi non dovrebbero essere un problema, dato che il peso di un nuovo design per una pagina si aggira attorno ai 2,3 megabite, non di più.

Il problema è il tempo del "ping". Il ping misura il viaggio andata e ritorno che ogni richiesta da parte del'app deve fare tra il server e il terminale. Quindi più sono i file da scaricare, più volte l'applicazione richiederà informazioni al server e più lungo sarà il tempo d'attesa.

Dopo la pubblicazione di GoodBarber 2.5 Salvador, il nostro team ha trovato un modo per ottimizzare tutti questi passaggi, e da ottobre, abbiamo impostato un sistema che ci ha permesso di ridurre del 60% il tempo di aggiornamento delle app.

Il nostro obbiettivo è quello diminuire ulteriormente il tempo di attesa e continueremo a cercare un modo per farlo. In questo momento il nostro team sta lavorando all'implementazione di un CDN (Content Delivery Network). Che potrebbe dimezzare il tempo di lancio dell'app e renderla ancora più veloce, ovunque si trovi l'utente. Questo sistema verrà utilizzato anche per i contenuti dell'applicazione.

Il team di sviluppatori sta lavorando per rendere ancora più fluidità l'interfacce delle app native.
Forse non avete ancora scoperto le piccole innovazioni apportate da Alex! Tranquilli, ne parleremo nei prossimi giorni ;)



Inserisci la tua email