Alcuni pensieri:
Ha una buona specificazione - Non sono doctrinaire riguardo alle specifiche. Probabilmente non creerò una specifica scritta scritta quando lavoro su un progetto di una sola persona che non è troppo grande. Tuttavia, se hai qualcosa che deve essere implementato su due piattaforme, hai assolutamente bisogno di una specifica. Avere un singolo documento che definisce esattamente cosa fa l'applicazione e usarlo come sorgente per entrambe le versioni. In questo modo, non usciranno mai sincronizzati l'uno con l'altro.
Mantenere aggiornate le specifiche. Evita di apportare modifiche ad hoc a una versione o l'altra. Assicurati inoltre che le specifiche siano chiare su eventuali differenze tra le due applicazioni.
Gestisci una lista di bug - Ogni volta che scopri un bug, inseriscilo nell'elenco dei bug. A meno che il bug sia qualcosa di molto specifico della piattaforma (al punto che non ha senso sull'altra piattaforma), verifica che entrambe le piattaforme funzionino correttamente prima di chiudere un determinato bug.
Usa codice comune se possibile - Questo è difficile, dato che lo sviluppo di iOS è principalmente C / C ++, mentre Android è principalmente Java. Tuttavia, è possibile avere parti C / C ++ di un programma Android. Vedi questa domanda StackOverflow . Probabilmente vale la pena considerare se si possa inserire la funzionalità di base in una singola libreria C o C ++. Ovviamente, meno lavori devi duplicare, meglio è.
Utilizza un progetto comune - Metti funzionalità comuni in una libreria che funziona allo stesso modo su entrambe le piattaforme. Fatelo anche se non potete usare una base di codice comune: pensatela come una singola libreria implementata in due lingue. Per quanto è pratico, usa gli stessi oggetti, funzioni, interfacce, algoritmi, ecc. Quando iOS e Android fanno le cose in modo diverso, metti le differenze dietro uno strato di astrazione. Il vantaggio di questo è, devi solo capire un modo di fare le cose quando si aggiunge una nuova funzionalità.
Non forzare questo: se il modo naturale di eseguire un determinato compito differisce un bel po 'tra le piattaforme, allora segui ciò che ha più senso. Assicurati che il tuo codice abbia una buona separazione tra le cose simili e le diverse cose.
Sviluppa in parallelo : non lasciare che una versione si avvicini molto all'altra. Apportare modifiche incrementali in entrambe le versioni, quindi creare e testare entrambi. Se il codice in questione è abbastanza simile, provate anche ad avere entrambe le versioni aperte l'una accanto all'altra. Ci vorrà un po 'di disciplina per farlo, ma nel fare le cose in questo modo, penso che potrai massimizzare il vantaggio di avere un codice simile in entrambe le app.