Bienvenida
Al terminar: Saber qué app vas a construir, qué necesita tu Mac y cómo se lee cada lección.
Esto no es una colección de artículos sobre Kotlin Multiplatform (la tecnología de Kotlin que permite escribir una parte del código una sola vez y usarla en Android y en iOS). Es un paso a paso en dos partes, para alguien que no ha programado nunca y quiere aprender Kotlin y Swift (dos lenguajes de programación, es decir, dos formas de escribir instrucciones para un ordenador), y con ellos Android e iOS, de verdad.
La primera parte son los fundamentos. Construyes «Marcador», una app de fútbol amateur, dos veces: en Kotlin y Android, y en Swift e iOS. Aprendes cada lenguaje y cada plataforma escribiendo la app con tus manos, en tu propio proyecto. La segunda parte es la Pokédex: dos apps nativas (hechas con las piezas propias de cada sistema, no con un molde común) instaladas, con la firma digital que exige cada sistema para instalar una app, y con tests (pequeños programas que comprueban que tu código hace lo que debe), construidas sobre una parte común escrita una sola vez en Kotlin. Llegas a ella habiendo escrito ya la misma lógica dos veces, y sabiendo por qué querrías escribirla una sola.
La app de la segunda parte es una Pokédex. Lee los datos de PokeAPI (un servicio gratuito de internet con la información de cada Pokémon), muestra una lista que carga más a medida que bajas, con imágenes, ficha, búsqueda, favoritos que sobreviven a cerrar la app, ajustes, enlaces que la abren desde fuera, una notificación diaria y, al final, sesión con correo y contraseña que protege todo lo demás.





Mira las dos parejas con atención. Los datos son los mismos y las pantallas no se parecen, y eso es la decisión de fondo del curso: se comparte la lógica (las reglas y los datos: qué Pokémon hay, cuáles son tus favoritos) y la interfaz (lo que ves y tocas: pantallas, botones, listas) se escribe dos veces, una con las piezas de cada sistema.
Qué vas a construir
Marcador, la primera app, es un marcador de fútbol amateur: la lógica de un torneo (equipos, partidos, resultados) y las pantallas que la muestran. La escribes primero en Kotlin, como app de Android, y después en Swift, como app de iOS. Un proyecto es la carpeta con todos los ficheros de una app, que abre Android Studio o Xcode. Empiezas por un proyecto de Kotlin que se ejecuta en la Terminal (la app de macOS donde se escriben órdenes de texto; te la presentamos al final de esta página), sin pantallas, para aprender el lenguaje; las pantallas llegan cuando ya lo dominas.
La Pokédex, la segunda, es la app de la segunda parte: la lista, la ficha, la búsqueda y lo demás que describe el párrafo de arriba.
Los proyectos los creas tú, en tu Mac, con tu nombre y tus ficheros. Cada uno vive donde su herramienta lo propone, y por eso no están todos en el mismo sitio: Marcador de Android, en la carpeta que sugiere Android Studio al crearlo; Marcador de iOS, en una carpeta tuya llamada Marcador-Swift, que creas desde la Terminal; y la Pokédex, en otra llamada Pokedex-KMP, que elige el asistente de proyectos de Kotlin Multiplatform. Cada lección te dice cuál abrir. Al terminar cada módulo, un recuadro Fin del módulo te enseña cómo debe quedar tu proyecto en ese punto (el proyecto de referencia), para que compares con el tuyo si algo no cuadra (un fichero que falta, un test que no pasa). Se abre en el navegador y no lo necesitas para seguir.
Tus nombres mandan. Android Studio y Xcode generan algunos nombres por ti. Si al comparar con el proyecto de referencia solo cambian esos nombres, quédate con los tuyos: la guía solo te avisa si eso cambia lo que tienes que escribir.
Qué necesitas saber antes
Nada de programación. Si sabes usar tu Mac (abrir una app, descargar un fichero, moverte por las carpetas del Finder), puedes seguir la guía. No hace falta haber programado nunca, ni conocer Kotlin, Swift, Android o iOS. Cada concepto (qué es una variable, una función, una clase…) se explica desde cero la primera vez que aparece, y las palabras técnicas también: la primera vez que leas «Terminal», «compilar» o «SDK», la misma frase te dirá qué es.
Los temas que suelen caer en entrevistas llevan una caja con la pregunta y una respuesta modelo de treinta segundos.
Qué necesitas tener
| Requisito | Por qué |
|---|---|
| Mac con Apple Silicon (chip M1 o posterior; no vale un Mac con chip Intel) | una librería del curso (código que ya escribió otra persona y que tu app usa) solo funciona en Mac con chip Apple. Con un Mac de Intel, la lección de guardar datos no compila (compilar es traducir lo que escribes a un programa que el ordenador puede ejecutar; si no compila, no se puede ejecutar), y el curso no se puede completar |
| macOS compatible con Xcode 26 (el programa de Apple para crear apps de iPhone) | el proyecto usa las novedades de Apple de este año. Xcode se instala en la primera lección tras esta y la descarga es larga: déjala bajando mientras sigues. No se usa hasta las lecciones de iOS |
| unos 50 GB libres | las herramientas de Apple y de Android, los móviles simulados y lo que se descarga al compilar. Solo el compilador de Kotlin para iPhone, con la Pokédex, ocupa casi 2 GB |
| 16 GB de RAM, mejor | Android Studio, Xcode y dos móviles simulados (el de Android se llama emulador; el de iPhone, simulador) abiertos a la vez |
Y de cuentas, esto:
| Cuenta | Coste | Cuándo hace falta |
|---|---|---|
| Apple ID (la cuenta con la que entras en la App Store y en iCloud; ahora Apple la llama «Apple Account») | gratis | en Instalar Xcode y el simulador, para descargar Xcode |
| Supabase (un servicio de internet que guarda las cuentas de usuario) | gratis | desde Preparar Supabase, y la app funciona sin ella |
| Apple Developer Program | 99 USD/año | solo para sacar la app de iPhone en un fichero instalable, al final y opcional |
| Play Console (la tienda de apps de Google, para desarrolladores) | 25 USD | solo para publicar, que este curso no hace |
Cómo está hecha cada lección
Cada tema nuevo sigue los mismos pasos:
- La explicación, desde cero. Qué es, qué problema resuelve y para qué se usa, casi siempre con una comparación del mundo real.
- Un ejemplo comentado. Un trozo de código pequeño, con datos que no son de la app (una tienda, una biblioteca, una receta) y un comentario en cada línea (un comentario es una nota para personas que el ordenador ignora) que dice qué hace. Si muestra algo, debajo ves exactamente lo que sale.
- Un ejercicio de práctica. Uno por lección, pequeño, en un Playground (más abajo); en las lecciones de instalación, en la Terminal. Te dice qué hacer y qué tiene que salir, pero no cómo escribirlo. La solución está escondida hasta que pulses para verla.
- El paso en tu proyecto. Lo aprendido se aplica a tu app. Primero se dice qué fichero tocar, dónde está en el árbol (el árbol de carpetas que ves a la izquierda de Android Studio o de Xcode) y qué contiene al terminar. Nada de «añade esto» sin decir a qué fichero. El código va escondido en un recuadro Intenta primero: escríbelo tú y ábrelo solo para comparar.
Al final de la lección hay un Punto de control, con lo que debe funcionar, y un cuestionario de cinco preguntas. Y al terminar cada módulo (cada bloque de lecciones), el recuadro Fin del módulo te enseña el proyecto de referencia tal como debe quedar en ese punto, por si algo no cuadra.
Dónde practicas: los Playgrounds
Un Playground («patio de juegos») es un sitio para probar código suelto, fuera de tu app: escribes unas líneas, lo ejecutas y ves lo que sale, sin riesgo de romper el proyecto. Para Kotlin usarás el Kotlin Playground, una página web de JetBrains (los creadores de Kotlin) donde no hay que instalar nada; Tu primer proyecto en Kotlin te enseña a usarlo. Para Swift, los Playgrounds de Xcode, un tipo de fichero que Xcode crea y ejecuta; los preparas en Instalar Xcode y el simulador.
Y hay cuatro cajas grandes, de colores propios, que conviene reconocer:
Además hay cajas más cortas, y cada una se presenta sola cuando aparece. Las dos que más verás: Ojo, un aviso, e Intenta primero, que esconde el código del paso para que lo escribas tú antes de mirarlo. Al empezar una lección, Recuerda te dice de qué lección anterior viene lo que necesitas.
El orden, y qué puedes saltarte
Primero, Tu Mac, listo: Xcode, Android Studio y el JDK (un paquete de herramientas de Java, otro lenguaje de programación sobre cuya máquina funciona Kotlin; lo necesita tu código Kotlin al ejecutarse en el Mac). Después, los ocho bloques de fundamentos, que construyen Marcador: Kotlin, Android y Swift, con sus herramientas y técnicas más avanzadas; cada nombre se explica en su módulo. Y por último la Pokédex. Todo eso es el camino principal y no se salta: cada lección construye sobre el estado que dejó la anterior.
Lo que sí es opcional:
- El apéndice de Kotlin Multiplatform, con cuatro temas que no caben en el camino: convertir la lógica de Marcador para que la compartan Android e iOS (en dos lecciones), compartirla como librería, hacer varias cosas a la vez con más soltura y cuándo compartir también la interfaz.
- El material de consulta: la chuleta de interoperabilidad (cómo se hablan Kotlin y Swift) y el glosario con la tabla de versiones.
Una cosa que no vas a encontrar
Esta guía no publica la app en ninguna tienda, y no es por falta de ganas. Los identificadores son globales, las cuentas cuestan dinero, y el nombre y las ilustraciones de Pokémon no son de dominio público: publicar esto sería otra conversación, y no es una conversación técnica.
Lo que sí queda son tus dos apps, que para una entrevista o un portafolio dicen más que una ficha de tienda: dos apps nativas, un núcleo compartido con sus tests.
Reto · Ejercicio: de dónde parte tu Mac
Abre la Terminal (pulsa ⌘ + Espacio, escribe «Terminal» y pulsa Intro). Pega estas dos órdenes, una por una, y pulsa Intro tras cada una (lo que va detrás del nombre de la orden, como -version, es una opción: le dice a la orden qué hacer, aquí «dime tu versión»). Anota qué responde cada una: un número de versión o un mensaje de error. Si macOS ofrece instalar las «herramientas de desarrollo», pulsa Cancelar: llegan con Xcode. Con las dos respuestas, di qué lección de «Tu Mac, listo» te arregla cada una.
xcodebuild -version
java -versionVer solución
La salida depende de cada Mac. Estas son las respuestas posibles:
| Orden | Si responde… | Significa | Qué lección lo arregla |
|---|---|---|---|
xcodebuild -version | Xcode 26.2 y una línea Build version … | Xcode ya está | ninguna: ya lo tienes |
xcodebuild -version | un error o la ventana de herramientas | falta Xcode | Instalar Xcode y el simulador |
xcodebuild -version | otro número de versión (por ejemplo Xcode 16.4) | tienes otro Xcode | la lección de Xcode te dice si hace falta actualizar: Instalar Xcode y el simulador |
java -version | openjdk version "17.0.12" … | ya tienes un JDK 17 | ninguna: ya lo tienes |
java -version | Unable to locate a Java Runtime u otra versión | falta el JDK 17 o hay otro | JDK y verificación del entorno |
Los números exactos (26.2, 17.0.12) cambian de un Mac a otro y con el tiempo: lo que importa es la versión principal, 26 y 17.
Comprueba lo que entendiste
5 preguntas · necesitas 4 para completar la lección
1.Las pantallas de Android y de iOS no se parecen. ¿Por qué?
2.¿Qué haces en el ejercicio de práctica de cada lección?
3.¿Por qué hace falta un Mac con Apple Silicon?
4.¿Qué necesitas saber de programación para empezar?
5.La cuenta de Supabase es gratuita y hace falta desde la lección «Preparar Supabase». ¿Qué pasa si no la creas?