Etiqueta: Android Studio

  • Unidad 1 — Tema 2: Configura tu entorno KMP sin morir en el intento

    Unidad 1 — Tema 2: Configura tu entorno KMP sin morir en el intento

    En el artículo anterior de la serie (Unidad 1 — Tema 1), exploramos por qué Kotlin Multiplatform no es otro clon de Flutter o React Native, sino un enfoque enfocado en compartir lógica de negocio pura conservando interfaces nativas. Sin embargo, antes de poder saborear los beneficios de esta arquitectura, hay un peaje inevitable que pagar: poner en marcha nuestras herramientas de trabajo.

    Todos hemos estado ahí. Encuentras una nueva tecnología espectacular, te entusiasmas con la documentación, decides crear tu primer proyecto y… ¡pum! Cientos de errores de dependencias, variables de entorno que faltan y problemas de compatibilidad. Es el famoso «funciona en mi máquina», pero al revés.

    Configurar un entorno de desarrollo para Kotlin Multiplatform (KMP) solía dar algo de respeto porque obliga a convivir a dos gigantes que históricamente se han llevado mal: el ecosistema de Google (Android) y el de Apple (iOS).

    Afortunadamente, el entorno ha madurado al máximo y hoy tenemos asistentes oficiales, plantillas modernas y herramientas de diagnóstico que ayudan mucho cuando algo falla. Vamos a configurar tu entorno The Right Way (de la forma correcta).

    1. Prerrequisito físico: El dilema del hardware

    Para desarrollar código compartido de KMP y probar la parte de Android, puedes usar Windows, Linux o macOS. Sin embargo, si quieres compilar y ejecutar la versión de iOS, la regla de Apple sigue siendo estricta: necesitas una Mac. El compilador de iOS (Xcode) solo corre sobre macOS.

    2. Las herramientas base (La interfaz visual)

    Para tener el entorno definitivo, necesitamos instalar tres piezas de software esenciales. Asegúrate de tenerlas actualizadas:

    • Android Studio: Sigue siendo el centro de control visual absoluto para los proyectos KMP. Es donde escribirás la inmensa mayoría de tu código compartido en Kotlin.
    • Xcode: Es el entorno oficial de Apple. KMP lo necesita obligatoriamente bajo el capó para usar sus compiladores y lanzar los simuladores de iPhone. Una vez instalado, ábrelo al menos una vez para aceptar los términos de la licencia e instalar sus componentes internos.
    • El Plugin de Kotlin Multiplatform: Dentro de Android Studio, ve a Settings -> Plugins, busca e instala Kotlin Multiplatform. Este plugin añade las plantillas de proyectos y te permitirá algo maravilloso: presionar el botón de «Play» en Android Studio y ejecutar la app tanto en el emulador de Android como en el simulador de iOS de forma directa.

    3. El entorno moderno: CLI y automatización

    Hoy en día no podemos configurar un entorno pensando solo en que un humano va a hacer «clic» en una pantalla. El desarrollo asistido por Inteligencia Artificial y agentes autónomos exige herramientas de línea de comandos robustas.

    Disponer de las utilidades nativas de comandos conectadas en tu sistema te permitirá ejecutar tareas Gradle de forma directa, arrancar emuladores de Android de forma autónoma desde tu terminal, instalar la app compilada desde tu módulo KMP y ejecutar pruebas automatizadas de extremo a extremo sin necesidad de mover el ratón. Tener tus rutas y herramientas CLI enlazadas en la consola es el pase de oro para la eficiencia y automatización del desarrollo moderno.

    4. Diagnóstico asistido: kdoctor

    Para evitar que pases horas adivinando por qué tu configuración falla, KDoctor sigue siendo una herramienta útil de consola que escanea tu sistema de arriba a abajo, encuentra qué le falta a tu configuración y te da pistas muy concretas para solucionarlo. Hoy no suele ser el flujo principal de entrada a KMP, porque el plugin y la documentación oficial cubren gran parte del camino, pero sí es un excelente apoyo cuando algo no cuadra.

    Cómo instalarlo y ejecutarlo (en tu terminal de Mac):

    brew install kdoctor
    kdoctor

    KDoctor analizará tu Sistema Operativo, tu versión de Java (JDK), Android Studio y Xcode. Te devolverá un reporte donde verás un check verde [✓] si todo está bien, o un error [✗] con la solución exacta en texto plano que debes copiar y pegar en tu terminal para arreglarlo. Si el asistente del plugin no te deja claro qué está fallando, aquí suele aparecer la pista que faltaba.

    5. El Checklist definitivo de variables de entorno

    Abre el archivo de configuración de tu terminal (.zshrc o .zprofile en Mac) y asegúrate de exportar correctamente las rutas del SDK, las herramientas de Java y los binarios de comandos para que tanto tú como los procesos de automatización de tu sistema puedan encontrarlos:

    export ANDROID_HOME=$HOME/Library/Android/sdk
    export JAVA_HOME=/Applications/Android Studio.app/Contents/jbr/Contents/Home
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin

    Para asegurar que Xcode sea totalmente accesible desde la consola por los procesos automatizados de compilación, ejecuta también este comando una vez:

    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

    6. Enfoque Sénior: El dilema de la Mac y alternativas de compilación remota

    Tener que comprar una Mac física solo para compilar e iniciar un simulador de iOS suele ser un obstáculo para muchos desarrolladores individuales y equipos pequeños orientados a Android. A nivel profesional, existen tres alternativas viables si necesitas compilar el binario nativo de iOS (.framework) sin contar con hardware Apple local:

    • Servidores de compilación en la nube (CI/CD): Herramientas como Codemagic, GitHub Actions (utilizando runners de macOS) o Bitrise permiten compilar el módulo de iOS en cada push de Git de manera desatendida.
    • Alquiler de Macs en la nube: Servicios como MacinCloud o MacStadium proporcionan acceso vía Escritorio Remoto a equipos Mac dedicados por una tarifa mensual muy competitiva.
    • Desacoplamiento total: Si trabajas en un equipo donde solo algunos programadores desarrollan la UI de iOS, puedes distribuir el módulo KMP como un paquete precompilado de Swift Package Manager (SPM) o integrarlo con otros mecanismos soportados por el proyecto. De este modo, los desarrolladores de Swift reducen la necesidad de compilar Kotlin continuamente en sus equipos.

    Para profundizar

    Si quieres entender a fondo la configuración oficial y las herramientas recomendadas, revisa estos enlaces:

    Conclusión

    Configurar el entorno de KMP ya no es una odisea de dependencias rotas. El ecosistema actual combina asistentes en IDE, Gradle, Xcode, integración mediante Swift Package Manager cuando encaja, y herramientas de apoyo como kdoctor para diagnosticar incidencias concretas. CocoaPods sigue siendo válido en proyectos que ya lo usan o en integraciones específicas; simplemente ya no es la única ruta que suele aparecer primero en un proyecto nuevo. El resultado es un entorno moderno, más limpio y mucho más predecible.

    Ahora que tu máquina tiene el entorno idóneo y los prerrequisitos de compilación están claros, el siguiente paso lógico es crear tu primer proyecto multiplataforma. En el próximo artículo, Unidad 1 — Tema 3: Estructura de un proyecto KMP: ¿Dónde vive mi código compartido?, abriremos el capó del monorepo generado por el Gradle Wizard para entender la jerarquía de SourceSets y cómo interactúan las dependencias comunes y de plataforma.