Come deve funzionare la tua app?
Funzionalità dinamiche in un’app: La configurazione remota
Come è noto, i software web si differenziano da quelli delle applicazioni, quindi mentre nei primi si rintraccia una grande flessibilità e velocità nell’introduzione di nuove funzionalità, nei secondi il processo è un poco più articolato. In linea generale possiamo dire che il codice sorgente di un’applicazione Web risiede in un server e viene interpretato in tempo reale ogni volta che un utente usa l’applicazione; il codice sorgente delle applicazioni per i computer e per i dispositivi mobili invece va compilato, distribuito ed installato: solo in questo modo esso potrà essere eseguito.
Da qui si evince che se si vuole aggiungere una nuova funzionalità o anche semplicemente risolvere un problema, occorre ripetere il processo, in quanto bisogna nuovamente compilare ed aggiornare il codice, poi distribuirlo e far installare la nuova versione del software agli utenti.
Negli ultimi tempi Apple e Google stanno proponendo in modo automatico gli aggiornamenti, cosa che argina ma non risolve il problema perché per ciascuna modifica ad un’applicazione vi è sempre bisogno di eseguire tutto il processo di aggiornamento descritto.
Solitamente quando si sviluppa un’applicazione si mette subito in conto che ci sarà bisogno di modificarla ed aggiornarla, quindi occorre definire già in fase iniziale, vale a dire durante la prima analisi, quali sono le funzionalità da voler implementare anche nel futuro; ma vi è anche da definire a priori un piano di sviluppo, dettagliato dei tempi e dei modi.
Una tecnica che snellisce il processo di aggiornamento e modifica è la configurazione remota.
Cosa è la configurazione remota?
La configurazione remota è una tecnica attraverso la quale si può aggiornare un’applicazione da remoto. Come abbiamo detto, è utile perché funziona in maniera automatica e non invia quindi delle nuove versioni agli utenti, ma non solo. L’utilità si rintraccia soprattutto nella sua dinamicità e nelle ampie possibilità di modifica che offre.
Per esempio con la configurazione remota possiamo modificare:
- gli indirizzi dei server, utile quando si desidera rendere disponibile una nuova versione di un server;
- l’aspetto grafico, come i colori e i loghi;
- le configurazioni interne, come i sistemi di tracciamento;
- il comportamento, attraverso l’attivazione o la disattivazione di alcune determinate funzionalità;
È dunque possibile cambiare ed aggiornare anche elementi ed aspetti complessi, ma non si può trasformare completamente l’applicazione. L’unica cosa che non può mai essere cambiata e che va contro i principi degli Store è infatti la natura dell’applicazione stessa: se un’app nasce come calcolatrice, rimane calcolatrice e non può diventare una rubrica telefonica per esempio. Compiere un’azione del genere equivale ad una cancellazione immediata dell’applicazione da parte di Apple e di Google, oltre che un ban allo sviluppatore.
In ultimo, prima di vedere nello specifico come funziona la configurazione remota, facciamo presente che essa è particolarmente utile per fare i test A/B e valutare quindi quali sono le modifiche ideali per migliorare l’esperienza d’uso degli utenti.
Come funziona la configurazione remota?
Il funzionamento della configurazione remota si basa su un processo piuttosto semplice: si tratta infatti di rendere disponibile online un file di configurazione per farlo scaricare direttamente ed automaticamente dall’applicazione, la quale dovrà esser programmata per interpretare questo tipo di configurazioni e dovrà dunque avere al suo interno già un file di configurazione basica attraverso il quale avviarsi e funzionare qualora non possa accedere ad Internet e non possa scaricare il nuovo file.
Il file di configurazione deve contenere tutti i dati necessari per apportare le modifiche richieste, ma deve seguire anche tutta un’altra serie di regole che adesso vedremo nel dettaglio.
- Per motivi di sicurezza il file di configurazione deve essere disponibile esclusivamente per l’applicazione, quindi anche nel caso si abbia il suo URL, non deve essere possibile scaricarlo.
- Il download del file e la sua configurazione devono applicarsi senza alcun messaggio di avviso del tipo “Scarico la configurazione” all’avvio dell’app e non durante il suo funzionamento. Il motivo di tale punto è che condividere con gli utenti le varie configurazioni non porta alcun vantaggio ed è impensabile inoltre cambiare un’app proprio nel momento in cui essi la stanno utilizzando!
- Per non scaricare in modo eccessivo il file di configurazione occorre usare un sistema di cache, così se il file non è stato modificato l’app non lo scarica e la banda internet viene risparmiata.
- In presenza di problemi, come nel caso per esempio che il file di configurazione sia corrotto o non funzionante, fare fallback su quello interno dell’applicazione per assicurarne il funzionamento.
Pur quanta abbia un costo di sviluppo iniziale più alto, la configurazione remota è la tecnica migliore per modificare i progetti durante la loro vita, anche se vi sono da cambiare poche impostazioni. Questo consente un’ampia libertà di movimento senza che gli sviluppatori vi ci mettano mano e senza attendere i tempi di deploy ogni volta.
Le grandi aziende si stanno dotando di app basate su sistemi molto complessi, per esempio Spotify utilizza una configurazione remota che consente di modificare completamente l’aspetto ed il comportamento di ogni sezione; altre app dei più importanti quotidiani nazionali invece configurano tutte le categorie in modo dinamico in base agli eventi del periodo.
Anche noi implementiamo la configurazione remota per la maggior parte dei progetti che curiamo e questo ci permette di ottenere ottimi risultati, nonché di soddisfare completamente le richieste dei nostri clienti.