Gestione degli errori dei servizi web nelle applicazioni mobile
I telefoni cellulari mettono a portata di mano una vasta gamma di informazioni, ma la funzionalità anche delle migliori applicazioni per dispositivi mobili può essere compromessa da errori dei servizi web che si verificano durante la comunicazione con server esterni. Anche un servizio cellulare intermittente in località remote può influire negativamente sulle prestazioni delle applicazioni quando si cercano dati.
MobileTogether, la Strumento di sviluppo di applicazioni mobili multipiattaforma che utilizza un approccio a basso codice di Altova, include funzionalità che consentono agli sviluppatori di gestire in modo efficace gli errori dei servizi web nelle applicazioni mobile, evitando di sovraccaricare gli utenti finali con interruzioni impreviste dell'applicazione o con messaggi di errore poco chiari.
In un post precedente, abbiamo spiegato come gestire gli errori HTTP in una mappatura dati in MapForce. Ora, analizzeremo lo stesso servizio web in un'applicazione mobile e descriveremo la gestione degli errori in MobileTogether.

L'esempio "AirportStatus" in MapForce utilizza un codice aeroportuale di 3 lettere come input e invia una richiesta a un servizio web fornito dalla FAA (Federal Aviation Administration), che restituisce un file JSON contenente lo stato dell'aeroporto e una descrizione di eventuali ritardi in corso. Un'applicazione mobile può offrire all'utente un menu a tendina per selezionare un aeroporto, quindi chiamare lo stesso servizio web e visualizzare il risultato, come si può vedere qui su un telefono Android:

I pulsanti nella parte inferiore dell'app "Airport Status" consentono un accesso rapido a due pagine web della FAA che forniscono ulteriori informazioni, ma che non sono ottimizzate per i dispositivi mobili.
Abbiamo sviluppato questa applicazione mobile utilizzando il software MobileTogether Designer, dove il servizio web è stato integrato come fonte di dati per una pagina, basandosi su una richiesta API RESTful. La finestra di dialogo "Richiesta API MobileTogether" è molto simile a quella presente in MapForce, con definizioni dei parametri per il codice dell'aeroporto e un campo di intestazione per una risposta in formato JSON:

Il flusso di lavoro dell'applicazione è molto semplice: l'utente seleziona un aeroporto dal menu a tendina, viene eseguita una richiesta REST di tipo "Get" e la visualizzazione viene aggiornata. Queste operazioni sono gestite da un gruppo di azioni che include una funzionalità per la gestione degli errori dei servizi web nelle applicazioni mobile:

Se si verifica un errore HTTP durante l'esecuzione di questa applicazione, verrà semplicemente visualizzata una finestra di messaggio. Gli sviluppatori possono scegliere tra tre opzioni per gestire gli errori, in base alle esigenze specifiche di ciascuna applicazione:
Script di interruzione: In caso di errore, tutte le azioni successive del gruppo di azioni vengono interrotte. Questa è l'azione predefinita in caso di errore. Per continuare nonostante l'errore, selezionare l'opzione "Continua" o "Genera eccezione".
Continua: Le azioni non vengono interrotte. Invece, lo sviluppatore può definire due percorsi e scegliere quale eseguire in caso di successo (On Success) o in caso di errore (On Error).
Lancio di un'eccezione: Se viene rilevato un errore, questa opzione genera un'eccezione che viene memorizzata nella variabile dell'azione Try/Catch. La sezione "Catch" dell'azione Try/Catch viene utilizzata per specificare quale azione intraprendere in caso di errore. Se non si verifica alcun errore, l'azione successiva viene eseguita. La guida online di MobileTogether Designer include una descrizione dettagliata di Try/Catch. Abbiamo inoltre descritto Try/Catch in un articolo del blog precedente.
Controllo della visualizzazione delle informazioni nell'applicazione
L'interfaccia grafica dell'applicazione è definita come una serie di tabelle, come si può vedere in questa visualizzazione parziale della finestra "Progettazione pagina MobileTogether":

La casella combinata per la selezione dell'aeroporto si trova nella parte superiore dell'immagine, e include una descrizione delle azioni di controllo che verranno eseguite quando viene effettuata una selezione. Questa è la condizione che attiva il gruppo di azioni.


Le proprietà di visibilità di ciascun elemento consentono di personalizzare la visualizzazione in base ai dati restituiti dalla richiesta.
Testare la gestione degli errori nei servizi web nelle applicazioni mobile
Nel nostro precedente articolo sulla gestione degli errori in MapForce, abbiamo configurato una mappatura alternativa per i dati di test degli errori, che ci permetteva di restituire esplicitamente vari errori e analizzare i risultati. Si è scoperto che possiamo forzare il servizio web della FAA a restituire un errore inviando una stringa vuota invece di un codice aeroportuale valido. L'ultima voce nell'elenco delle opzioni del menu a tendina invia la stringa vuota e forza l'errore, come si può vedere qui nella versione iPhone dell'app in modalità orizzontale:

L'utente può quindi cliccare sul pulsante "OK" per chiudere il messaggio, e successivamente verificare lo stato di un altro aeroporto

Se siete nuovi utenti di MobileTogether, date un'occhiata a queste risorse altri campioni e dimostrazioni video Per una breve introduzione, oppure, potete iniziare subito a sviluppare il vostro sistema di gestione degli errori per i servizi web nelle applicazioni mobile scaricando Software MobileTogether Designer, gratuito e utilizzabile senza restrizioni.