Skip to main content

L’ambito dello sviluppo di app mobile presenta delle peculiarità e delle problematiche specifiche rispetto allo sviluppo di altri applicativi. Molto spesso, nella definizione dei modelli e delle logiche di comunicazione con i sistemi back-end, le dinamiche del mobile non vengono gestite in modo ottimale, rendendo laborioso e impegnativo il lavoro per gli sviluppatori.
In Intesys abbiamo scelto di integrare nel nostro processo di sviluppo software la Specifica OpenAPI, soluzione efficace per semplificare, velocizzare e standardizzare lo sviluppo mobile. Vediamo assieme come funziona la soluzione che abbiamo adottato.

Le sfide dell’integrazione mobile con i sistemi back-end

La quasi totalità di applicazioni che troviamo sugli store interagisce con dei sistemi di back-end che operano secondo lo standard REST e comunicano tramite request e response, il cui contenuto è in formato JSON.

Chi si occupa di definire i modelli e le logiche di comunicazione dei sistemi back-end è talvolta all’oscuro delle problematiche di integrazione con il mobile, quali:

  • Smartphone con processori o capacità di rete inferiori rispetto al mondo desktop;
  • Connettività in 3G/4G con qualità altalenante o assenza improvvisa di essa;
  • Necessità di id univoci per accesso puntuale alle informazioni senza la possibilità di scaricare grosse quantità di dati.

Oltre a queste problematiche, è importante ricordare che per il mobile è necessario implementare non solo i metodi per accedere ai servizi back-end, ma anche le strutture per immagazzinare i dati ottenuti per le diverse piattaforme. La definizione di questi modelli può essere realizzata diversamente a seconda delle piattaforme Android o iOS e in base ai diversi membri dei team.
Tutto ciò causa differenze di comportamento dell’app più o meno evidenti, ma in ogni caso indesiderate.

A causa delle complessità nella gestione dello sviluppo mobile, in passato ci siamo ritrovati spesso ad utilizzare servizi non ottimali che ci hanno portato a ricorrere alla progettazione di API strutturate e standardizzate, che non cambiano al variare della tecnologia e dei componenti utilizzati e permettono di favorire il dialogo tra gli applicativi e i sistemi back-end, consentendo il loro riutilizzo per scopi diversi.

La progettazione strategica delle API abilita la creazione di valore nei progetti mobile grazie alla scalabilità e alla manutenibilità garantita da risorse standardizzate e riutilizzabili.

OpenAPI per la standardizzazione delle API

Per velocizzare lo sviluppo mobile e la qualità dei nostri progetti, abbiamo scelto di integrare la Specifica OpenAPI, soluzione efficace e immediata che consente di standardizzare le API generando automaticamente la documentazione di metodi, parametri e modelli.

OpenAPI è un format di descrizione di API per servizi RESTful, che opera tramite il seguente processo:

  1. si definiscono le API per l’accesso ai servizi tramite un linguaggio di mark-up specializzato per le comunicazioni REST, astraendo quindi da un linguaggio di programmazione specifico,
  2. il software OpenAPIGenerator legge tale definizione e ne genera una implementazione specifica.

Seguendo questa specifica, viene generata una libreria di comunicazione per i linguaggi tra i numerosi disponibili come Swift, Kotlin, C, C++, C#, Dart, Java, JavaScript, Objective-C e tanti altri. Queste librerie contengono inoltre i framework standard per la comunicazione di rete di iOS (Alamofire) e di Android (Retrofit) e riducono le procedure di comunicazione con il back-end a una semplice invocazione di un metodo, senza necessariamente richiedere una conoscenza approfondita dei framework o dello standard REST.

Il risultato sono delle librerie di progetti Android e iOS liberamente modificabili, generate tramite OpenAPI Generator grazie ad una serie di modelli anch’essi editabili. Personalizzando tali modelli, il nostro team mobile è riuscito ad ottenere alcune caratteristiche desiderate, tra cui:

  • per quanto riguarda Android, sono stati creati dei template specifici in modo che venissero utilizzate Coroutines (un sistema per trattare in maniera asincrona delle invocazioni a metodi asincroni) al posto di ReactiveX;
  • relativamente a iOS, sono stati creati dei template specifici tali da consentire l’inserimento e l’utilizzo di dati fittizi per simulare le risposte del sistema di back-end anche se lo sviluppo di questo non è ancora stato completato.

OpenAPI nel caso Dolomiti SuperSki

L’efficacia di questo approccio è confermata dai nostri più recenti progetti mobile, in particolare quello realizzato per l’App di Dolomiti SuperSki (MyDolomiti), realizzata secondo la seguente procedura:

  1. Definizione delle API da parte del team mobile e back-end,
  2. Condivisione e versionamento delle API tramite un sistema di merge review su GitLab per assicurarsi che su tutte le piattaforme non vi siano cambiamenti che possano causare comportamenti non attesi o indesiderati,
  3. Dopo l’approvazione del merge review, viene avviato il generatore che implementa una libreria iOS e una libreria Android. A questo punto le due piattaforme hanno i metodi di comunicazione e i modelli allineati, evitando comportamenti difformi o disallineamento tra piattaforme.

L’esperienza ha mostrato la capacità di OpenAPI di portare ottimi benefici, rendendolo uno strumento efficace e indispensabile nei nostri progetti mobile per ottenere una maggiore standardizzazione dello sviluppo delle API e per l’aumento della qualità del software.

Scopri di più sulle Architetture IT basate sulle API

No Article rating
0 Reviews
Cosa ne pensi dell'articolo?
  1. Amazing
  2. Good
  3. Bad
  4. Meh
  5. Pff
Alberto Cappellina
Senior Mobile Developer

Sviluppatore J2EE dal 2006, nel 2010 Alberto ha indirizzato il suo percorso verso l’ambito mobile, lavorando per quotidiani e società IoT internazionali nella creazione di app. Oggi Alberto è uno dei protagonisti del team mobile di Intesys.

NEWSLETTER