Saltar al contenido
K
Antes de empezarConcepto15 min Introductorio

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.

La lista de Pokémon en Android
Android · la lista, con el estilo propio de Android
La ficha de Bulbasaur en Android
Android · la ficha, con el texto de PokeAPI en tu idioma
La lista de Pokémon en iOS
iOS · la misma lista, con el estilo propio de iOS
La ficha de Bulbasaur en iOS
iOS · la misma ficha, con el vocabulario de Apple
Los ajustes en iOS
iOS · los ajustes, que en iOS son una lista y en Android una pantalla con hojas

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

RequisitoPor 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 libreslas 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, mejorAndroid 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:

CuentaCosteCuándo hace falta
Apple ID (la cuenta con la que entras en la App Store y en iCloud; ahora Apple la llama «Apple Account»)gratisen Instalar Xcode y el simulador, para descargar Xcode
Supabase (un servicio de internet que guarda las cuentas de usuario)gratisdesde Preparar Supabase, y la app funciona sin ella
Apple Developer Program99 USD/añosolo 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 USDsolo para publicar, que este curso no hace

Cómo está hecha cada lección

Cada tema nuevo sigue los mismos pasos:

  1. La explicación, desde cero. Qué es, qué problema resuelve y para qué se usa, casi siempre con una comparación del mundo real.
  2. 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.
  3. 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.
  4. 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 -version
Ver solución

La salida depende de cada Mac. Estas son las respuestas posibles:

OrdenSi responde…SignificaQué lección lo arregla
xcodebuild -versionXcode 26.2 y una línea Build version …Xcode ya estáninguna: ya lo tienes
xcodebuild -versionun error o la ventana de herramientasfalta XcodeInstalar Xcode y el simulador
xcodebuild -versionotro número de versión (por ejemplo Xcode 16.4)tienes otro Xcodela lección de Xcode te dice si hace falta actualizar: Instalar Xcode y el simulador
java -versionopenjdk version "17.0.12" …ya tienes un JDK 17ninguna: ya lo tienes
java -versionUnable to locate a Java Runtime u otra versiónfalta el JDK 17 o hay otroJDK 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. 1.Las pantallas de Android y de iOS no se parecen. ¿Por qué?

  2. 2.¿Qué haces en el ejercicio de práctica de cada lección?

  3. 3.¿Por qué hace falta un Mac con Apple Silicon?

  4. 4.¿Qué necesitas saber de programación para empezar?

  5. 5.La cuenta de Supabase es gratuita y hace falta desde la lección «Preparar Supabase». ¿Qué pasa si no la creas?

Faltan 5 de 5