Sto lavorando a un prodotto che verrà distribuito a molte organizzazioni diverse (scenario ideale, decine). Ogni implementazione del sistema (composto da applicazioni native per iOS e Android) coinvolgerà la seguente:Come gestire la distribuzione di app per dispositivi mobili con piattaforma bianca?
- Branding specifiche per l'organizzazione (vale a dire una nuova pelle)
- integrazione con il sistema di autenticazione e utente del database dell'organizzazione
- Alcune funzioni personalizzate a seconda delle esigenze dell'organizzazione
In altre parole, le funzionalità di base rimarrà la stessa in tutte le distribuzioni, ma ogni istanza avrà un aspetto diverso, gancio in un diverso sistemi di autenticazione, e hav e alcune funzionalità abilitate/disabilitate.
La mia domanda: Quale sarebbe la migliore strategia per la gestione delle nostre basi di codice 2 mobili (iOS & Android) al fine di minimizzare le duplicazioni e semplificare il processo di distribuzione?
Le tre soluzioni che stiamo discutendo sono:
Creare una libreria di base che viene condiviso tra tutte le istanze (come progetto sotto-progetto/biblioteca, o un modulo git), e aggiungere un sottile strato in alto con il marchio e tutti i dettagli di configurazione.
Mantenere un ramo Git con la funzionalità di base e creare un nuovo ramo per ogni distribuzione che contiene il codice aggiuntivo.
Fai qualcosa di completamente diverso che suggerisca una persona più intelligente sullo stackoverflow.
Quale suona meglio per te? Grazie in anticipo per qualsiasi feedback!!
I'ld go per l'opzione 1.Le filiali GIT renderanno la manutenzione molto più difficile rispetto alle librerie dai sottomoduli GIT - ma questo è solo perché adoro i sottomoduli per funzionalità che devono rimanere intatte e, su base per uso/necessità, possono essere facilmente aggiornate. – Till
Ow, e che ne dici di una sorta di feed di configurazione che imposta alcuni dei dati più dinamici al volo una volta avviata l'app. Offre la massima flessibilità almeno per le risorse: una mela troppo brutta non consente le librerie dinamiche (utilizzate tramite download). – Till
@bmat Quale approccio hai scelto? Sono nella stessa situazione qui. – Latrova