Como arquitecto de software iOS (full-stack), ¿cuáles son las herramientas, tecnologías que debe conocer y dominar?

Ok un consejo: suelta al ninja. No tomo en serio a las personas que usan ese “título” y no soy el único. La palabra “experto” está perfectamente bien. A menos que escriba un código mientras usa un gi negro y realice sabotajes y asesinatos por la noche, no es un ninja. 🙂

Un desarrollador de pila completa es aquel que puede trabajar en el servidor (back-end), el cliente (front-end) y el protocolo entre los dos. Por lo general, esto significa que la persona ha tenido varias posiciones anteriores haciendo diferentes trabajos de cliente y servidor y ha desarrollado una variedad de habilidades, conocimientos y experiencia.

Para iOS eso significaría un desarrollador competente de iOS con un par de proyectos de buen tamaño en su haber. Para el servidor, bueno, depende. Hay muchas formas de escribir el código del servidor: php, python, node.js, erlang, ruby ​​e incluso lenguajes como Swift o C. (Sé que he omitido muchas posibilidades, esto es muy bueno). stack generalmente tiene algunos calificadores sobre qué. Muy pocas personas serán competentes en todo, e incluso si te encuentras con un veterinario que lo sabe todo, tendrán un par de idiomas que favorecerán.

Luego está la base de datos. Cualquier desarrollador de pila completa necesita conocer alguna base de datos. Nuevamente, hay una gran variedad de opciones: PostGres, MySQL si lo desea, Neo4j y más. ¿Qué pasa con los sistemas de almacenamiento en caché? Hay opciones allí también.

En resumen “full-stack” tiene que ser calificado. Nadie lo sabe todo. Sé de sistemas de producción que usan TODOS los ejemplos anteriores. Entonces, ¿esta es realmente una cuestión de qué comunidad técnica y lingüística quieres formar parte?

Veo que full-stack se usa más en el mundo web donde hay un conjunto particular de cosas comunes: Javascript, algún paquete JS (¿angular quizás?), HTML5, Node.JS (Javascript nuevamente) y Postgres. Pero fuera de esto, el mundo puede crecer.