Puoi essere uno sviluppatore Android e iOS?

Puoi essere un giocatore di squash e uno di tennis? Sì, è possibile. Ma si può essere veramente bravi, come professionisti, in entrambi? No.

Si può essere sviluppatori sia in iOS che in Android, ma un tale programmatore sarà un fante di entrambe le piattaforme, maestro di nessuna.

Entrambe le piattaforme sono diverse, hanno le loro sfide di programmazione. Per essere veramente bravo, a livello professionale, ci si può concentrare solo su una piattaforma, sia Android che iOS. Ed è così che operano tutte le aziende di sviluppo mobile serie. Assumono singoli programmatori per ogni piattaforma, di solito due o tre sviluppatori Android, e due o tre sviluppatori iOS. Non è pratico avere un solo uomo che fa il lavoro di 4-6 programmatori, che è un po' l'approccio che le piccole aziende cercano di adottare, o le aziende che sono nuove allo sviluppo del software e non sanno come funziona lo sviluppo.

Lavoro come sviluppatore professionista di cellulari dal 2010. Prima ero uno sviluppatore di software in Java. Ho iniziato come programmatore sia per iOS che per Android, e nonostante abbia cercato di essere davvero bravo in entrambi, ho finito per usare solo Android. Semplicemente non era possibile diventare bravo in entrambi.

In seguito, tutte le aziende per cui ho lavorato, ho visto che avevano programmatori individuali per le singole piattaforme, come Browser, Windows, Mac, iOS e Android. Le aziende di sviluppo software non permettono nemmeno ai programmatori di una piattaforma di lavorare su un'altra, perché il risultato sarebbe solo un codice scadente. Noi condividiamo il codice, e convertiamo iOS in Android, e viceversa, ma i programmatori Android lavorano su Android, e i programmatori iOS lavorano su iOS.

Ora avendo detto tutto questo, è molto costoso per la maggior parte delle aziende assumere singoli programmatori. Quindi esistono soluzioni di terze parti per codificare in HTML5/JS e convertire il codice sia per iOS che per Android. Queste sono chiamate soluzioni non native. Il prodotto finale di questo tipo di sviluppo è limitato in funzionalità, velocità, UI può essere buono ma relativamente povero UX. Lo sviluppo non nativo è un ottimo approccio per app semplici, e per la prototipazione e il concetto. Ma una volta che l'app ha successo e inizia a generare entrate, viene codificata in modo nativo da programmatori specializzati rispettivamente in iOS e Android.

Suggerisco vivamente di non cadere nella trappola di diventare jack di entrambi i mestieri, scegliere una piattaforma e diventare maestro in essa, con una conoscenza abbastanza buona dell'altra.