{"id":407221,"date":"2023-11-21T02:06:36","date_gmt":"2023-11-21T01:06:36","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=407221"},"modified":"2023-11-21T02:06:40","modified_gmt":"2023-11-21T01:06:40","slug":"bienvenidos-a-fleet-con-las-herramientas-de-kotlin-multiplatform","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/es\/kotlin\/2023\/11\/bienvenidos-a-fleet-con-las-herramientas-de-kotlin-multiplatform\/","title":{"rendered":"Bienvenidos a Fleet con las herramientas de Kotlin Multiplatform"},"content":{"rendered":"<p><a href=\"https:\/\/www.jetbrains.com\/kotlin-multiplatform\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform<\/a> (KMP) es una tecnolog\u00eda de c\u00f3digo abierto desarrollada por JetBrains que le permite compartir c\u00f3digo entre plataformas manteniendo los beneficios de la programaci\u00f3n nativa. Las plataformas compatibles incluyen iOS, Android, escritorio, web y otros.<\/p>\n<p>Hoy lanzamos una vista previa de la compatibilidad con Kotlin Multiplatform en <a href=\"https:\/\/www.jetbrains.com\/fleet\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fleet<\/a>, que simplifica el desarrollo de las aplicaciones multiplataforma, sum\u00e1ndose a la ya <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/10\/kotlin-support-in-jetbrains-fleet\/\" target=\"_blank\" rel=\"noreferrer noopener\">amplia compatibilidad con Kotlin<\/a> en Fleet. Tenga en cuenta que si est\u00e1 apuntando a iOS y macOS, necesitar\u00e1 Xcode.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Empezar\" href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/fleet.html?utm_source=kotlinblog&amp;utm_medium=cta&amp;utm_campaign=kmp-in-fleet\" target=\"_blank\" rel=\"noopener\">Empezar<\/a><\/p>\n<p>\u00a1Echemos un vistazo a algunas de las funcionalidades!<\/p>\n<h3 class=\"wp-block-heading\">Simplicidad<\/h3>\n<p>Al abrir un proyecto multiplataforma, Fleet crear\u00e1 autom\u00e1ticamente configuraciones de ejecuci\u00f3n para las plataformas Android y\/o iOS, seg\u00fan lo declarado en el archivo de compilaci\u00f3n del proyecto. Puede utilizar estar configuraciones para ejecutar su aplicaci\u00f3n en un dispositivo virtual Android o en el simulador iOS.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1344\" height=\"519\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/RunConfigurations-1.png\" alt=\"Herramientas de Kotlin Multiplatform en Fleet: Configuraciones de ejecuci\u00f3n autogeneradas para Android y\/o iOS\" class=\"wp-image-403391\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Programaci\u00f3n pol\u00edglota<\/h3>\n<p>Dado que Fleet es un IDE pol\u00edglota, no es necesario cambiar a un editor diferente ni comprometer la usabilidad al trabajar con el c\u00f3digo nativo en su proyecto multiplataforma. Al editar c\u00f3digo Swift, cuenta con la misma funcionalidad que esperar\u00eda en Kotlin y Java, as\u00ed como una compatibilidad total con proyectos de Xcode.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1666\" height=\"850\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/PloyglotProgramming-1.png\" alt=\"Herramientas de Kotlin Multiplatform en Fleet: programaci\u00f3n multilenguaje\" class=\"wp-image-403402\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Navegaci\u00f3n por el c\u00f3digo<\/h3>\n<p>Fleet admite la navegaci\u00f3n interlenguaje entre Swift y Kotlin. Por ejemplo, cuando utiliza la acci\u00f3n <strong>Show Usages<\/strong> en una funci\u00f3n de Kotlin, cualquier invocaci\u00f3n desde el c\u00f3digo Swift aparecer\u00e1 en los resultados. Si hay una coincidencia, se muestra el archivo asociado.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageNavigation.png\" alt=\"Navegaci\u00f3n entre Swift y Kotlin interlenguaje\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageNavigationLooping.gif\"><\/p>\n<h3 class=\"wp-block-heading\">Refactorizaci\u00f3n<\/h3>\n<p>La refactorizaci\u00f3n en Fleet tambi\u00e9n es interlenguaje. En el ejemplo siguiente, si utilizamos <strong>Rename Refactoring<\/strong> en el tipo MainViewController, la refactorizaci\u00f3n se aplicar\u00e1 en ambos m\u00f3dulos de Kotlin y Swift.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageRefactoringLooping.png\" alt=\"Refcatorizaci\u00f3n entre Swift y Kotlin interlenguaje\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageRefactoringLooping.gif\"><\/p>\n<h3 class=\"wp-block-heading\">Depuraci\u00f3n<\/h3>\n<p>La depuraci\u00f3n en Fleet tambi\u00e9n es interlenguaje. Puede utilizar un punto de interrupci\u00f3n en el c\u00f3digo Swift, ver los valores y la pila de llamadas en ese entorno, ingresar a una llamada de Kotlin y luego continuar seg\u00fan sea necesario.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/FleetDebuggingCut.png\" alt=\"Refactorizaci\u00f3n entre Swift y Kotlin interlenguaje\" data-gif-src=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/Kotlin\/fleet-debugging-cut.gif\"><\/p>\n<h2 class=\"wp-block-heading\">Un \u00fanico IDE<\/h2>\n<p>Como quiz\u00e1s sepa o haya experimentado, la creaci\u00f3n de aplicaciones Kotlin Multiplatform a menudo ha implicado la necesidad de utilizar varios IDE en combinaci\u00f3n. Esto se mantiene cuando se dirige a dispositivos m\u00f3viles, ya que se requieren Android Studio y Xcode. Sin embargo, nuestro objetivo con Fleet es ofrecer un IDE individual donde pueda desarrollar aplicaciones sin necesitar cambiar de herramientas (Xcode a\u00fan tendr\u00e1 que instalarse al dirigirse a los dispositivos de Apple, pero no ser\u00e1 necesario para el trabajo diario).<\/p>\n<h2 class=\"wp-block-heading\">Modelo de precios<\/h2>\n<p>Durante el periodo de vista previa, Fleet, incluso las herramientas de Kotlin Multiplatform, permanecer\u00e1 gratuito. Una vez que lancemos las herramientas, anticipamos que el modelo de precios se alinea con el de Fleet. Proporcionaremos m\u00e1s informaci\u00f3n acerca de la fecha de lanzamiento.<\/p>\n<h2 class=\"wp-block-heading\">Nuestro compromiso con IntelliJ IDEA e IntelliJ Platform<\/h2>\n<p>Fleet utiliza el motor de procesamiento de c\u00f3digo IntelliJ para Swift y toda nuestra compatibilidad con Kotlin y, en consecuencia, continuaremos ofrecer la compatibilidad con Kotlin en IntelliJ IDEA e IntelliJ Platform (as\u00ed tambi\u00e9n Android Studio). Adem\u00e1s, contamos con una base cada vez mayor de desarrolladores que utilizan Kotlin en IntelliJ IDEA y queremos asegurarle que la innovaci\u00f3n y la compatibilidad continuar\u00e1n en esta plataforma.<\/p>\n<p>Dicho esto, el p\u00fablico objetivo para IntelliJ IDEA permanecer\u00e1 principalmente el de los desarrolladores del lado del servidor que apuntan a la JVM. Aunque ser\u00e1 posible abrir, navegar y crear proyectos Kotlin Multiplatform en IntelliJ IDEA y Android Studio, otras funcionalidades, como las configuraciones de ejecuci\u00f3n espec\u00edficas de la plataforma, las funcionalidades de Compose Multiplatform y muchas otras cosas que facilitan el desarrollo multiplataforma solo ser\u00e1n compatibles en Fleet.<\/p>\n<h2 class=\"wp-block-heading\">Primeros pasos<\/h2>\n<p>Para comenzar con el desarrollo de Kotlin Multiplatform y probar todas las funcionalidades interesantes en las que hemos estado trabajando, puede instalar la \u00faltima versi\u00f3n de Fleet a trav\u00e9s de <a href=\"https:\/\/www.jetbrains.com\/fleet\/download\/\" target=\"_blank\" rel=\"noreferrer noopener\">la JetBrains Toolbox App<\/a>. Tambi\u00e9n contamos con un nuevo <a href=\"https:\/\/kmp.jetbrains.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">asistente web en l\u00ednea<\/a> para crear proyectos Kotlin Multiplatform.<\/p>\n<p>Aseg\u00farese de consultar el tutorial <a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/fleet.html?utm_source=kotlinblog&amp;utm_medium=cta&amp;utm_campaign=kmp-in-fleet\" target=\"_blank\" rel=\"noreferrer noopener\">Fleet for Kotlin Multiplatform Development<\/a> para obtener una gu\u00eda paso a paso sobre c\u00f3mo crear su primera aplicaci\u00f3n. Tambi\u00e9n puede echar un vistazo a algunas de las <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-mobile-samples.html\" target=\"_blank\" rel=\"noreferrer noopener\">aplicaciones de muestra de KMP<\/a> que hemos preparado.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Empezar\" href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/fleet.html?utm_source=kotlinblog&amp;utm_medium=cta&amp;utm_campaign=kmp-in-fleet\" target=\"_blank\" rel=\"noopener\">Empezar<\/a><\/p>\n<h2 class=\"wp-block-heading\">Necesitamos sus comentarios<\/h2>\n<p>A\u00fan es muy temprano para las herramientas de Kotlin Multiplatform en Fleet, y nos encantar\u00eda conocer su opini\u00f3n. Cu\u00e9ntenos qu\u00e9 funciona, qu\u00e9 no funciona, qu\u00e9 falta y qu\u00e9 simplemente no puede faltar. D\u00e9jenos un comentario en este art\u00edculo o utilice nuestro <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/FL?u=1:\" target=\"_blank\" rel=\"noreferrer noopener\">sistema de seguimiento de incidencias<\/a>. Tambi\u00e9n puede compartir cualquier comentario que tenga sobre Kotlin Multiplatform, lo que incluye las herramientas, en el canal <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/fleet\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/slack-chats.kotlinlang.org\/c\/fleet\" rel=\"noreferrer noopener\">#fleet<\/a> en Kotlin Slack.<\/p>\n<p>\u00a1Gracias!<\/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":407239,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[6834,6436,76],"cross-post-tag":[6910],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/407221"}],"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=407221"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/407221\/revisions"}],"predecessor-version":[{"id":407254,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/407221\/revisions\/407254"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media\/407239"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media?parent=407221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/categories?post=407221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/tags?post=407221"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/cross-post-tag?post=407221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}