TL;DR - Necesitas saber cómo desarrollar tres cosas para cualquier aplicación básica full-stack. El Front-End, el Back-end y una Base de Datos.
La mayoría de las aplicaciones móviles que utilizamos hoy en día tienen dos caras. El 'Front-End' (en este caso la app móvil) se comunica con el 'Back-End' o la interfaz del servidor/nube que proporciona información a la app para que la muestre y almacena/procesa la información enviada de vuelta.
Un desarrollador full stack es alguien que puede desarrollar el stack completo (es decir, tanto el front-end como el back-end) de una aplicación.
Hay varias tecnologías que puedes aprender para poder llamarte desarrollador full-stack de iOS, sin embargo necesitas aprender al menos una tecnología de front-end y otra de back-end. Hay dos partes en el aprendizaje de cualquier "tecnología" en particular. La primera es el lenguaje y la segunda es el framework API.
Para el front-end en iOS tienes el UIKit disponible de forma nativa (y una escasez de otros frameworks dependiendo de lo que quieras construir) para el que puedes construir usando el lenguaje Swift (ni siquiera estoy mencionando Objective-C en este momento). Sin embargo, también puedes optar por desarrollar en Javascript con React Native. Sin embargo, los frameworks híbridos necesitan un poco de soporte nativo, por lo que es posible que tengas que tocar un poco de Swift de todos modos.
¡Hoy en día es posible ser un desarrollador de pila completa con el conocimiento de sólo el lenguaje Swift! Gracias a los frameworks de back end de código abierto como Perfect, Vapor y Kitura (desarrollado por IBM). Al mismo tiempo, puedes optar por desarrollar tu backend con Javascript también utilizando cualquier framework del lado del servidor (Express, Hapi) que se ejecuta en el entorno Node.js. También puedes usar Java (Spring) y Ruby (Rails) para desarrollar tu back-end.
Hay una cosa más que probablemente necesitarás usar mientras desarrollas el back-end: una base de datos. Desde los almacenes basados en SQL (MySQL, PostgreSQL) hasta los almacenes basados en NoSQL (MongoDB, CouchDB, Cassandra) tienes un número enorme de opciones aquí. Pero eso es una respuesta para otra pregunta.
Al final, todo depende de lo que usted está tratando de construir. Por ejemplo:
- Si quieres construir sólo una aplicación disponible sólo en iOS, puede que sea mejor usar Swift y los frameworks asociados.
- Si quieres que tu aplicación esté disponible tanto para Android como para iOS (y la Experiencia de Usuario no es una gran preocupación), entonces puedes usar Javascript con React Native en el front-end y Node para el back-end.
- Otros lenguajes utilizados en el back-end como Java también tienen una mayor demanda en las empresas y se utiliza ampliamente en la empresa, por lo que es una opción válida para aprender.