Se puede ser desarrollador de Android y de iOS?

¿Puedes ser jugador de squash y de tenis? Sí que se puede. Pero, ¿puedes ser realmente bueno, como profesional, en ambos? No.

Uno puede ser desarrollador tanto en iOS como en Android, pero dicho programador será sota de ambas plataformas, maestro de ninguna.

Ambas plataformas son diferentes, tienen sus propios retos de programación. Para ser realmente bueno, a nivel profesional, uno puede centrarse sólo en una plataforma, ya sea Android o iOS. Y así es como operan todas las empresas serias de desarrollo móvil. Contratan programadores individuales para cada plataforma, normalmente dos o tres desarrolladores de Android, y dos o tres desarrolladores de iOS. No es práctico tener un tipo haciendo el trabajo de 4-6 programadores, que es un poco el enfoque que tratan de tomar las empresas pequeñas, o las empresas que son nuevas en el desarrollo de software y no son conscientes de cómo funciona el desarrollo.

He estado trabajando como desarrollador móvil profesional desde 2010. Antes de eso fui desarrollador de software en Java. Empecé como programador tanto para iOS como para Android, y a pesar de intentar ser realmente bueno en ambos, acabé sólo con Android. Simplemente no era posible ser bueno en ambos.

Más tarde, todas las empresas para las que he trabajado, vi que tenían programadores individuales para plataformas individuales, como Navegadores, Windows, Mac, iOS y Android. Las empresas de desarrollo de software ni siquiera permiten que los programadores de una plataforma trabajen en otra, porque sólo resultará en un código pobre. Compartimos código, y convertimos iOS en Android, y viceversa, pero los programadores de Android trabajan en Android, y los programadores de iOS trabajan en iOS.

Ahora habiendo dicho todo esto, es muy caro para la mayoría de las empresas contratar programadores individuales. Así que existen soluciones de terceros para codificar en HTML5/JS y convertir el código tanto para iOS como para Android. Son las llamadas soluciones no nativas. El producto final de este tipo de desarrollo es limitado en funcionalidad, velocidad, la interfaz de usuario puede ser buena, pero relativamente pobre UX. El desarrollo no nativo es un enfoque muy bueno para aplicaciones sencillas y para la creación de prototipos y conceptos. Pero una vez que la aplicación se convierte en un éxito y comienza a generar ingresos, se codifica de forma nativa por los programadores que se especializan en iOS y Android, respectivamente.

Sugiero encarecidamente no caer en la trampa de convertirse en el gato de ambos oficios, elegir una plataforma y convertirse en maestro en ella, con tener un buen conocimiento de la otra.