italia / 18app

Official mobile app for 18app
https://www.18app.italia.it/
GNU General Public License v3.0
32 stars 19 forks source link

Gestire le differenze tra app di test e app di produzione tramite simboli di compilazione #47

Closed ncarandini closed 5 years ago

ncarandini commented 5 years ago

Attualmente l'app utilizza diverse cose che devono variare tra app di test e app di produzione:

  1. Instabug, che non deve esserci nell'app di produzione RTM ma che a mio parere deve restare anche nell'app di produzione almeno fino alla fine del ciclo di Beta release.
  2. IdP di Test Agid, che non deve esserci nell'app di produzione
  3. Endpoint dei servizi, che variano tra app di test e app di produzione

Inoltre, mentre è relativamente facile gestire con la compilazione condizionale il secondo e terzo punto, per quanto riguarda il primo punto è piuttosto ostico perché c'è da impostare in modo condizionale anche l'uso di tutta una serie di plugin che sono necessari per far funzionare Instabug e i permessi di Android e iOS (Instabug richiede il permesso RECORD_AUDIO).

Per tale motivo utilizzerei la compilazione condizionale sulo per i punti 2 e 3 per i quali utilizzerei il simbolo di compilazione TEST.

ncarandini commented 5 years ago

Per implementare la build delle due app ho mantenuto l'impostazione Release per la build dell'app di produzione, e ho creato una nuova impostazione chiamata Test per l'app di test.

Nei singoli progetti (.NET Standard, Android e iOS), relativamente alla build Test ho impostato i simboli di compilazione condizionale TEST e modificato il codice in modo da impostare la presenza o meno dell'IdP di test (AgID) e l'impostazione dei relativi endpoint.

ncarandini commented 5 years ago

Per quanto riguarda invece Instabug, credo che il modo migliore di procedere è di mantenerlo sino al completamento della beta release dell'app di produzione e di creare una branch di release in cui togliere manualmente Instabug. Se poi dovesse servire si potrebbe automatizzare lo switch (Instabug Si/No) in un momento successivo, magari in concomitanza con la creazione di una CI/CD build chain.

ncarandini commented 5 years ago

Per il momento chiudo l'issue con il commit 14971071