Saltar al contenido
K
Desde cero, sin saber programar

Aprende Kotlin Multiplatform sobre un proyecto real

No necesitas saber programar: cada concepto se explica desde cero, con ejemplos y ejercicios. Empiezas por lo básico, con variables y funciones en Kotlin y en Swift, construyendo Marcador, una app de fútbol amateur para Android y para iOS. Después escribes una Pokédex que comparte su lógica entre las dos plataformas con Kotlin Multiplatform.

0%
completado

0 de 313 lecciones

El temario

De cero a producción · 313 de 313 lecciones listas

0

Antes de empezar

Qué vas a construir, a quién va dirigida la guía y cómo se lee cada lección.

0/1
1

Tu Mac, listo

Xcode, Android Studio y el JDK, instalados y verificados antes de escribir una línea.

0/3
2

Kotlin: el lenguaje

Escribes la lógica del torneo de Marcador en consola: variables, nulabilidad, clases, colecciones y errores.

0/33
3

Corrutinas y Flow

El partido en vivo en consola: suspend, scopes, cancelación, Flow, StateFlow y tests con tiempo virtual.

0/14
4

Android: la plataforma

La app de Marcador en Android: la Activity, la rotación, el hilo principal, el Context, los permisos y Gradle.

0/16
6

Jetpack Compose

Las pantallas de Marcador: estado, state hoisting, recomposición y efectos, sobre pantallas reales.

0/12
7

Jetpack y arquitectura

ViewModel, UiState, capas, Room, DataStore y navegación: la arquitectura que recomienda Google.

0/40
8

Swift: el lenguaje

La misma lógica del torneo, reescrita en Swift y comparada línea a línea con tu versión de Kotlin.

0/23
9

Swift: memoria y concurrencia

ARC, async/await, actores y un retain cycle a propósito que detectarás y arreglarás.

0/15
10

iOS con SwiftUI

Tu primera app de iOS y SwiftUI desde cero: vistas, estado, listas, identidad y tareas, con las mismas pantallas que en Android.

0/18
11

Arquitectura en iOS

MVVM, navegación, persistencia, pruebas y red con URLSession: dos fuentes de datos, casos de uso e inyección en todas las capas. La arquitectura de Marcador en iOS, la misma que en Android. Aquí van también los permisos y las notificaciones: en iOS dependen del ViewModel.

0/30
12

Entorno y primer proyecto

Del Mac recién estrenado al proyecto corriendo en el emulador y en el simulador.

0/8
13

Cimientos del código compartido

Logs, interop, corrutinas y ViewModels. Cada lección deja algo visible en las dos pantallas.

0/12
14

La lista de Pokémon

La primera pantalla entera: PokeAPI, tests del núcleo, paginación, errores con reintento, imágenes y las dos interfaces nativas.

0/12
15

Detalle y navegación

Dos peticiones en paralelo y un mapa de pantallas que sirve para Navigation 3 y para NavigationStack.

0/6
16

Búsqueda

PokeAPI no tiene endpoint de búsqueda. Así se resuelve: índice local, debounce y una barra nativa en cada app.

0/4
17

Favoritos con Room

Base de datos compartida, corazones en las dos apps, la migración que simula al usuario que ya tenía la app y la lista de Pokémon que sigue funcionando sin conexión.

0/16
18

Ajustes con DataStore

Preferencias compartidas, el tema aplicado desde la raíz y un «Acerca de» que cita a quien toca.

0/6
19

Deep links y compartir

Que un enlace abra el Pokémon correcto: con la app cerrada, con la app abierta y desde otro móvil.

0/3
20

El Pokémon del día

Una notificación local diaria en las dos plataformas, sin servidor y sin push.

0/6
21

Autenticación con Supabase

Registro, login y refresco de tokens hablando REST a pelo, hasta que ninguna pantalla se vea sin sesión.

0/14
22

Calidad

Tests de interfaz en las dos plataformas, depuración a través del puente, accesibilidad y dos idiomas.

0/11
23

Producción

Del build de debug al binario firmado y al formulario de cada tienda. Sin subir nada.

0/3
24

Apéndice: más allá de la app

Migrar un módulo de Marcador a KMP, publicar la librería, la memoria de Native y compartir también la UI.

0/5
25

Referencia

Chuletas para volver cuando ya no estés aprendiendo, sino trabajando.

0/2