{"id":407166,"date":"2023-11-21T00:41:44","date_gmt":"2023-11-20T23:41:44","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=407166"},"modified":"2023-11-21T00:41:48","modified_gmt":"2023-11-20T23:41:48","slug":"kotlin-multiplatform-es-estable-y-esta-listo-para-la-produccion","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/es\/kotlin\/2023\/11\/kotlin-multiplatform-es-estable-y-esta-listo-para-la-produccion\/","title":{"rendered":"Kotlin Multiplatform es estable y est\u00e1 listo para la producci\u00f3n"},"content":{"rendered":"<p><strong>En un movimiento muy esperado, Kotlin Multiplatform, una tecnolog\u00eda de c\u00f3digo abierto desarrollada por JetBrains que permite a los desarrolladores compartir c\u00f3digo entre plataformas manteniendo los beneficios de la programaci\u00f3n nativa, se ha vuelto estable y ahora est\u00e1 100 % listo para su uso en producci\u00f3n.<\/strong><\/p>\n<p><strong>Siga leyendo para obtener m\u00e1s informaci\u00f3n sobre la evoluci\u00f3n de Kotlin Multiplatform (KMP), c\u00f3mo puede optimizar el proceso de desarrollo y qu\u00e9 recursos educativos est\u00e1n disponibles para aprovechar al m\u00e1ximo esta tecnolog\u00eda.<\/strong><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Empezar\" href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Empezar<\/a><\/p>\n<h2 class=\"wp-block-heading\">Comparta el c\u00f3digo como <em>usted<\/em> quiera, con confianza<\/h2>\n<p>Dise\u00f1ado con un enfoque central en la flexibilidad y la adaptabilidad, Kotlin Multiplatform (KMP) difumina las fronteras entre el desarrollo multiplataforma y el nativo. Permite a los desarrolladores reutilizar tanto c\u00f3digo como deseen, escribir c\u00f3digo nativo cuando sea necesario e integrar sin problemas el c\u00f3digo Kotlin compartido en cualquier proyecto.<\/p>\n<p>Desde el primer lanzamiento de KMP, su flexibilidad ha atra\u00eddo a <a href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/case-studies.html\" target=\"_blank\" rel=\"noreferrer noopener\">muchas empresas destacadas<\/a>, como Netflix, Philips, McDonald&#8217;s, 9GAG y Baidu. Muchos equipos ya han aprovechado la capacidad de KMP para integrarse gradualmente, as\u00ed como su bajo riesgo de adopci\u00f3n. Algunos de ellos comparten partes cr\u00edticas aisladas de su c\u00f3digo Kotlin existente para mejorar la estabilidad de sus aplicaciones. Otros, con el objetivo de reutilizar la mayor cantidad de c\u00f3digo posible sin comprometer la calidad de la aplicaci\u00f3n, comparten toda la l\u00f3gica de la aplicaci\u00f3n en dispositivos m\u00f3viles, escritorio, web y televisi\u00f3n manteniendo las interfaces de usuario nativas.<\/p>\n<p>Dado que KMP se usa ampliamente en producci\u00f3n desde su lanzamiento en Alpha, JetBrains ha podido recopilar una gran cantidad de comentarios y perfeccionar la tecnolog\u00eda para brindar una mejor experiencia de desarrollo multiplataforma en la versi\u00f3n estable, lo que incluye lo siguiente.<\/p>\n<p><strong>Garant\u00edas de compatibilidad estricta<\/strong><\/p>\n<p>El n\u00facleo de la tecnolog\u00eda de Kotlin Multiplatform consta de muchas partes, como la compatibilidad con el compilador, las funcionalidades del lenguaje, las API de bibliotecas, los IDE, las herramientas de compilaci\u00f3n y m\u00e1s. Todas estas cubren los casos de uso m\u00e1s populares para compartir c\u00f3digo y son estables en Kotlin 1.9.20. \u00abEstable\u00bb significa que evolucionaremos esas partes siguiendo <a href=\"https:\/\/kotlinlang.org\/docs\/components-stability.html\" target=\"_blank\" rel=\"noreferrer noopener\">reglas de compatibilidad<\/a> estrictas, para que pueda usarlas con confianza en su c\u00f3digo.<\/p>\n<p>Si vamos m\u00e1s all\u00e1 del n\u00facleo, KMP tambi\u00e9n cuenta con algunas partes m\u00e1s avanzadas en las que seguimos trabajando. Las clases expect\/actual son un ejemplo de esa funcionalidad (no deben confundirse con las <em>funciones<\/em> expect\/actual, que est\u00e1n completamente estables en Kotlin 1.9.20). Estas funcionalidades est\u00e1n marcadas espec\u00edficamente como no estables, y Kotlin le informar\u00e1 cuando las est\u00e9 utilizando. Preste atenci\u00f3n a las advertencias de experimentalidad y a la documentaci\u00f3n correspondiente para tomar una decisi\u00f3n informada acerca de usar o no dichas funcionalidades en sus proyectos.<\/p>\n<p><strong>Mejor experiencia del usuario en la configuraci\u00f3n de la compilaci\u00f3n<\/strong><\/p>\n<p>Para simplificar la configuraci\u00f3n y mantenimiento del proyecto, hemos introducido la <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#template-for-configuring-multiplatform-projects\" target=\"_blank\" rel=\"noreferrer noopener\">plantilla de jerarqu\u00eda predeterminada<\/a>. Esta nueva funcionalidad del complemento de Gradle de Kotlin configura de forma autom\u00e1tica los conjuntos de fuentes de Kotlin para escenarios populares y reduce la cantidad de c\u00f3digo duplicado en los scripts de compilaci\u00f3n t\u00edpicos.<\/p>\n<p>Para ayudarle a diagnosticar malas configuraciones y errores de compilaci\u00f3n, KMP incluye un par de mejoras en la versi\u00f3n estable:<\/p>\n<ul>\n<li>Se a\u00f1adieron aproximadamente 50 diagn\u00f3sticos al complemento Gradle para Kotlin, lo que ayuda a detectar incidencias comunes de la compilaci\u00f3n y proporciona consejos r\u00e1pidos sobre c\u00f3mo solucionarlos.<\/li>\n<li>La <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#improved-output-for-gradle-errors-in-xcode\" data-type=\"link\" data-id=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#improved-output-for-gradle-errors-in-xcode\" target=\"_blank\" rel=\"noopener\">mejora en la salida de errores de Gradle en Xcode<\/a> hace que las incidencias de compilaci\u00f3n en las partes nativas de su proyecto sean m\u00e1s visibles.<\/li>\n<\/ul>\n<p><strong>Mejoras en<\/strong> <strong>rendimiento de compilaci\u00f3n y en tiempo de ejecuci\u00f3n<\/strong><\/p>\n<p>Adem\u00e1s de otras mejoras en estabilidad y robustez, seguimos mejorando el rendimiento de KMP:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#full-support-for-the-gradle-configuration-cache-in-kotlin-multiplatforml\" target=\"_blank\" rel=\"noreferrer noopener\">La compatibilidad con la cach\u00e9 de configuraci\u00f3n de Gradle<\/a> acelera el proceso de compilaci\u00f3n al reutilizar los resultados de la fase de configuraci\u00f3n para las siguientes compilaciones.<\/li>\n<li>La vista previa del <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew19.html#preview-of-custom-memory-allocator\" target=\"_blank\" rel=\"noreferrer noopener\">asignador de memoria personalizado en Kotlin\/Native mejora<\/a> el rendimiento en tiempo de ejecuci\u00f3n del gestor de memoria de Kotlin\/Native.<\/li>\n<li>La nueva <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#incremental-compilation-of-klib-artifacts\" target=\"_blank\" rel=\"noreferrer noopener\">compilaci\u00f3n incremental experimental de artefactos \u00abklib\u00bb<\/a> acelera la compilaci\u00f3n de Kotlin\/Native.<\/li>\n<li>Trasladar <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#reimplementation-of-compiler-cache-management-in-the-compiler\" target=\"_blank\" rel=\"noreferrer noopener\">la gesti\u00f3n de la cach\u00e9 del compilador Kotlin\/Native<\/a> desde el complemento de Gradle de Kotlin al propio compilador permite realizar mejoras adicionales en los tiempos de compilaci\u00f3n y la flexibilidad de la cach\u00e9 del compilador.<\/li>\n<\/ul>\n<p><strong>Gracias a todos estos avances, Kotlin Multiplatform se puede utilizar sin dudarlo para compartir c\u00f3digo en producci\u00f3n en Android, iOS, escritorio (JVM), lado del servidor (JVM) y web, incluso en los escenarios de utilizaci\u00f3n m\u00e1s conservadores.<\/strong><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Empezar\" href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Empezar<\/a><\/p>\n<h2 class=\"wp-block-heading\">Utilice la potencia del creciente ecosistema de Kotlin Multiplatform<\/h2>\n<p>La evoluci\u00f3n de Kotlin Multiplatform no se limita a la tecnolog\u00eda en s\u00ed misma, sino que se extiende a su pr\u00f3spero ecosistema cultivado por miles de desarrolladores de Kotlin en todo el mundo. Desde la versi\u00f3n beta, el n\u00famero de bibliotecas de KMP se ha multiplicado, lo que ofrece muchas herramientas para redes, almacenamiento de datos, aritm\u00e9tica, an\u00e1lisis y m\u00e1s, y esto permite un desarrollo de aplicaciones \u00e1gil y seguro.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"2800\" height=\"995\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/Libraries-2800x995.png\" alt=\"\" class=\"wp-image-401835\" \/><\/figure>\n<p><strong>El equipo de Android en Google contin\u00faa apoyando a los usuarios de KMP<\/strong> al proporcionar las <a href=\"https:\/\/developer.android.com\/kotlin\/multiplatform\" target=\"_blank\" rel=\"noreferrer noopener\">versiones experimentales multiplataforma de las bibliotecas Jetpack<\/a>, y ya han hecho que las bibliotecas Collections, Data Store, Annotations y Paging sean compatibles con Kotlin Multiplatform.<\/p>\n<p>El ecosistema de KMP tambi\u00e9n ofrece una variedad de herramientas para la experiencia de desarrollo en iOS, entre las que destaca <a href=\"https:\/\/touchlab.co\/tryskie\" target=\"_blank\" rel=\"noreferrer noopener\">SKIE<\/a>, desarrollada por Touchlab. Genera c\u00f3digo Swift que ofrece una capa de API compatible con Swift, de modo que conecta tipos importantes de Kotlin e implementa una interoperabilidad de corrutinas fluida.<\/p>\n<h2 class=\"wp-block-heading\">\u00a1Obtenga a\u00fan m\u00e1s libertad para compartir c\u00f3digo con Compose Multiplatform!<\/h2>\n<p><a href=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noreferrer noopener\">Compose Multiplatform<\/a>, un moderno marco de trabajo de IU declarativo multiplataforma desarrollado por JetBrains, es una parte importante del siempre creciente ecosistema de KMP. Con Compose Multiplatform, ahora tiene una flexibilidad total para compartir c\u00f3digo. Comparta solo una parte de la l\u00f3gica, toda la l\u00f3gica de la aplicaci\u00f3n o tanto la l\u00f3gica como la IU, seg\u00fan los requisitos de su proyecto y su equipo:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"466\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/image.png\" alt=\"\" class=\"wp-image-401808\" \/><\/figure>\n<p>Compose Multiplatform para Android y escritorio (JVM) ya est\u00e1 en la versi\u00f3n estable, mientras que la compatibilidad con iOS est\u00e1 actualmente en versi\u00f3n Alpha y la compatibilidad con la web (Wasm) es experimental.<\/p>\n<h2 class=\"wp-block-heading\">Explore el futuro de Kotlin Multiplatform<\/h2>\n<p>JetBrains contin\u00faa mejorando el desarrollo multiplataforma con Kotlin, con el objetivo de convertirlo en la mejor opci\u00f3n para compartir c\u00f3digo entre plataformas:<\/p>\n<ul>\n<li>Las futuras actualizaciones para la tecnolog\u00eda principal de Kotlin Multiplatform mejorar\u00e1n la experiencia de desarrollo en iOS, lo que incluye la interoperabilidad directa entre Kotlin y Swift, as\u00ed como la compatibilidad con SwiftPM.<\/li>\n<li>El pr\u00f3ximo hito para Compose Multiplatform en iOS es la compatibilidad beta en 2024.<\/li>\n<li>JetBrains est\u00e1 desarrollando Kotlin\/Wasm activamente para facilitar el desarrollo web moderno con KMP, con el objetivo de lanzar la versi\u00f3n Alpha de Compose Multiplatform para web (Wasm) el pr\u00f3ximo a\u00f1o.<\/li>\n<\/ul>\n<p>\u00a1Y eso no es todo! En las pr\u00f3ximas semanas, \u00a1prep\u00e1rese para emocionantes anuncios sobre la evoluci\u00f3n de las herramientas de Kotlin Multiplatform!<\/p>\n<h2 class=\"wp-block-heading\">Comience a usar Kotlin Multiplatform<\/h2>\n<p>Comience su viaje con nuestros amplios recursos educativos f\u00e1ciles de usar.<\/p>\n<p>Participe en nuestra <strong>serie de seminarios web de noviembre sobre Kotlin Multiplatform<\/strong> para obtener informaci\u00f3n directamente de los expertos de JetBrains. Explore las funcionalidades de Kotlin Multiplatform, cree las aplicaciones KMP con interfaces de usuario nativas y compartidas, y descubra consejos y trucos para el desarrollo en iOS:<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Registrar\" href=\"https:\/\/info.jetbrains.com\/kotlin-webinars-2023.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Registrar<\/a><\/p>\n<p>El nuevo <strong>Kotlin Multiplatform Development Portal<\/strong> ofrece documentaci\u00f3n detallada, gu\u00edas de inicio y tutoriales paso a paso que cubren todos los aspectos de la creaci\u00f3n de aplicaciones con Kotlin Multiplatform y Compose Multiplatform:<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Empezar\" href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Empezar<\/a><\/p>\n\n\n<p><em>Art\u00edculo original en ingl\u00e9s de:<\/em><br><\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":1086,"featured_media":407186,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[6706,6436,76],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/407166"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/comments?post=407166"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/407166\/revisions"}],"predecessor-version":[{"id":407201,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/407166\/revisions\/407201"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media\/407186"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media?parent=407166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/categories?post=407166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/tags?post=407166"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/cross-post-tag?post=407166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}