{"id":407168,"date":"2023-11-21T00:36:28","date_gmt":"2023-11-20T23:36:28","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=407168"},"modified":"2023-11-21T00:36:32","modified_gmt":"2023-11-20T23:36:32","slug":"kotlin-multiplatform-estavel-e-pronto-para-producao","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/pt-br\/kotlin\/2023\/11\/kotlin-multiplatform-estavel-e-pronto-para-producao\/","title":{"rendered":"Kotlin Multiplatform est\u00e1vel e pronto para produ\u00e7\u00e3o"},"content":{"rendered":"<p><strong>Em uma mudan\u00e7a muito esperada, o Kotlin Multiplatform, uma tecnologia de c\u00f3digo aberto criada pela JetBrains que permite aos desenvolvedores compartilhar c\u00f3digo entre plataformas, enquanto mant\u00eam os benef\u00edcios da programa\u00e7\u00e3o nativa, tornou-se est\u00e1vel e agora est\u00e1 100% pronto para uso em ambientes de produ\u00e7\u00e3o.<\/strong><\/p>\n<p><strong>Continue lendo para saber mais sobre a evolu\u00e7\u00e3o do Kotlin Multiplatform (KMP), como ele pode otimizar seu processo de desenvolvimento e quais recursos educacionais est\u00e3o dispon\u00edveis para voc\u00ea aproveitar ao m\u00e1ximo essa tecnologia.<\/strong><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Comece agora mesmo\" 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\">Comece agora mesmo<\/a><\/p>\n<h2 class=\"wp-block-heading\">Compartilhe c\u00f3digo nos <em>seus<\/em> termos, com confian\u00e7a<\/h2>\n<p>Projetado com foco principal na flexibilidade e adaptabilidade, o Kotlin Multiplatform (KMP) elimina as barreiras entre o desenvolvimento multiplataforma e nativo. Ele permite que os desenvolvedores reutilizem quanto c\u00f3digo quiserem, escrevam c\u00f3digo nativo se e conforme necess\u00e1rio e integrem perfeitamente o c\u00f3digo Kotlin compartilhado em qualquer projeto.<\/p>\n<p>Desde o primeiro lan\u00e7amento do KMP, sua flexibilidade atraiu <a href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/case-studies.html\" target=\"_blank\" rel=\"noreferrer noopener\">muitas empresas proeminentes<\/a>, como a Netflix, Philips, McDonald&#8217;s, 9GAG e Baidu. Muitas equipes j\u00e1 est\u00e3o aproveitando a capacidade do KMP de se integrar gradualmente, bem como seu baixo risco de ado\u00e7\u00e3o. Alguns deles compartilham partes cr\u00edticas isoladas do seu c\u00f3digo Kotlin existente para melhorar a estabilidade de suas aplica\u00e7\u00f5es. Outros, com o objetivo de reutilizar o m\u00e1ximo de c\u00f3digo poss\u00edvel sem comprometer a qualidade do aplicativo, compartilham toda a l\u00f3gica do aplicativo em dispositivos m\u00f3veis, desktop, Web e TV, mantendo interfaces de usu\u00e1rio nativas.<\/p>\n<p>Com o KMP sendo amplamente utilizado em ambientes de produ\u00e7\u00e3o desde seu lan\u00e7amento Alpha, a JetBrains conseguiu reunir amplo feedback e refinar a tecnologia para fornecer uma experi\u00eancia melhor de desenvolvimento multiplataforma na vers\u00e3o est\u00e1vel, incluindo as seguintes.<\/p>\n<p><strong>Garantias rigorosas de compatibilidade<\/strong><\/p>\n<p>O n\u00facleo da tecnologia multiplataforma Kotlin consiste em v\u00e1rias partes, como suporte a compiladores, recursos de linguagem, API de bibliotecas, IDEs, ferramentas de build e muito mais. Todos eles abrangem os casos de uso de compartilhamento de c\u00f3digo mais populares e est\u00e3o est\u00e1veis no Kotlin 1.9.20. &#8220;Est\u00e1vel&#8221; significa que evoluiremos essas partes seguindo <a href=\"https:\/\/kotlinlang.org\/docs\/components-stability.html\" target=\"_blank\" rel=\"noreferrer noopener\">regras de compatibilidade<\/a> rigorosas, para que voc\u00ea possa us\u00e1-las com seguran\u00e7a no seu c\u00f3digo.<\/p>\n<p>Indo al\u00e9m do n\u00facleo, o KMP tamb\u00e9m tem algumas partes mais avan\u00e7adas nas quais ainda estamos trabalhando. Classes expect\/actual s\u00e3o um exemplo de tal funcionalidade (n\u00e3o devem ser confundidas com <em>fun\u00e7\u00f5es<\/em> expect\/actual, que s\u00e3o totalmente est\u00e1veis no Kotlin 1.9.20). Esses recursos s\u00e3o explicitamente marcados como n\u00e3o est\u00e1veis, e o Kotlin vai informar quando voc\u00ea os estiver usando. Preste aten\u00e7\u00e3o aos avisos de experimentalidade e \u00e0 documenta\u00e7\u00e3o correspondente para tomar uma decis\u00e3o embasada sobre o uso ou n\u00e3o de tais recursos nos seus projetos.<\/p>\n<p><strong>Melhor experi\u00eancia do usu\u00e1rio com configura\u00e7\u00e3o de build<\/strong><\/p>\n<p>Para simplificar a configura\u00e7\u00e3o e manuten\u00e7\u00e3o de projetos, introduzimos o <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#template-for-configuring-multiplatform-projects\" target=\"_blank\" rel=\"noreferrer noopener\">template de hierarquia padr\u00e3o<\/a>. Esse novo recurso do plug-in Kotlin Gradle configura automaticamente os conjuntos de fontes do Kotlin para cen\u00e1rios populares e reduz a quantidade de boilerplate em scripts de build t\u00edpicos.<\/p>\n<p>Para ajudar voc\u00ea a diagnosticar erros e configura\u00e7\u00f5es incorretas de build, o KMP oferece algumas melhorias na vers\u00e3o Est\u00e1vel:<\/p>\n<ul>\n<li>Aproximadamente 50 diagn\u00f3sticos foram adicionados ao plug-in Kotlin Gradle, ajudando a detectar problemas comuns de build e fornecendo dicas r\u00e1pidas sobre como corrigi-los.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#improved-output-for-gradle-errors-in-xcode\" target=\"_blank\" rel=\"noopener\" data-type=\"link\" data-id=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#improved-output-for-gradle-errors-in-xcode\">A melhora na sa\u00edda para erros do Gradle no Xcode<\/a> faz com que problemas de build em partes nativas do seu projeto sejam mais detect\u00e1veis.<\/li>\n<\/ul>\n<p><strong>Melhorias no desempenho de build e<\/strong> <strong>runtime<\/strong><\/p>\n<p>Al\u00e9m de outras melhorias de estabilidade e robustez, continuamos melhorando o desempenho do KMP:<\/p>\n<ul>\n<li>O <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#full-support-for-the-gradle-configuration-cache-in-kotlin-multiplatforml\" target=\"_blank\" rel=\"noreferrer noopener\">suporte ao cache de configura\u00e7\u00e3o do Gradle<\/a> acelera o processo de build, reutilizando os resultados da fase de configura\u00e7\u00e3o para builds subsequentes.<\/li>\n<li>A vers\u00e3o de demonstra\u00e7\u00e3o do <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew19.html#preview-of-custom-memory-allocator\" target=\"_blank\" rel=\"noreferrer noopener\">alocador de mem\u00f3ria personalizado em Kotlin\/Native melhora<\/a> o desempenho de runtime do gerenciador de mem\u00f3ria Kotlin\/Native.<\/li>\n<li>A nova <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#incremental-compilation-of-klib-artifacts\" target=\"_blank\" rel=\"noreferrer noopener\">compila\u00e7\u00e3o incremental experimental de artefatos `klib`<\/a> acelera a compila\u00e7\u00e3o Kotlin\/Native.<\/li>\n<li>A mudan\u00e7a do <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#reimplementation-of-compiler-cache-management-in-the-compiler\" target=\"_blank\" rel=\"noreferrer noopener\">gerenciamento do cache do compilador Kotlin\/Native<\/a> do plug-in Kotlin Gradle para o compilador possibilita melhorias adicionais nos tempos de compila\u00e7\u00e3o e na flexibilidade do cache do compilador.<\/li>\n<\/ul>\n<p><strong>Gra\u00e7as a todos esses avan\u00e7os, o Kotlin Multiplatform pode ser usado sem hesitar para compartilhar c\u00f3digo em produ\u00e7\u00e3o em Android, iOS, desktop (JVM), servidor (JVM) e Web, mesmo nos cen\u00e1rios de uso mais conservadores.<\/strong><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Come\u00e7ar\" 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\">Come\u00e7ar<\/a><\/p>\n<h2 class=\"wp-block-heading\">Use o poder do crescente ecossistema Kotlin Multiplatform<\/h2>\n<p>A evolu\u00e7\u00e3o do Kotlin Multiplatform n\u00e3o se limita \u00e0 tecnologia em si, mas se estende ao seu pr\u00f3spero ecossistema cultivado por milhares de desenvolvedores Kotlin em todo o mundo. Desde a vers\u00e3o Beta, o n\u00famero de bibliotecas KMP se multiplicou, oferecendo diversas ferramentas para rede, armazenamento de dados, aritm\u00e9tica, an\u00e1lise e muito mais, permitindo o desenvolvimento r\u00e1pido e confi\u00e1vel de aplicativos.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-401835\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/Libraries-2800x995.png\" alt=\"\" width=\"2800\" height=\"995\" \/><\/figure>\n<p><strong>A equipe de Android do Google continua oferecendo suporte aos usu\u00e1rios do KMP<\/strong>, fornecendo as <a href=\"https:\/\/developer.android.com\/kotlin\/multiplatform\" target=\"_blank\" rel=\"noreferrer noopener\">vers\u00f5es multiplataforma experimentais de bibliotecas<\/a>, e ela j\u00e1 tornaram as bibliotecas Collections, DataStore, Annotations e Paging compat\u00edveis com o Kotlin Multiplatform.<\/p>\n<p>O ecossistema KMP tamb\u00e9m oferece uma gama de ferramentas para a experi\u00eancia do desenvolvedor iOS, com destaque para a <a href=\"https:\/\/touchlab.co\/tryskie\" target=\"_blank\" rel=\"noreferrer noopener\">SKIE<\/a> da Touchlab. Ele gera c\u00f3digo Swift que fornece uma camada de API amig\u00e1vel ao Swift, fazendo a ponte entre tipos Kotlin importantes e implementando a interoperabilidade perfeita com corrotinas.<\/p>\n<h2 class=\"wp-block-heading\">Obtenha ainda mais liberdade de compartilhamento de c\u00f3digo com o Compose Multiplatform<\/h2>\n<p>O <a href=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noreferrer noopener\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\">Compose Multiplatform<\/a>, uma moderna framework de IU declarativa entre plataformas da JetBrains, \u00e9 uma parte significativa do ecossistema KMP em constante expans\u00e3o. Com o Compose Multiplatform, agora voc\u00ea tem total flexibilidade no compartilhamento de c\u00f3digo. Compartilhe apenas uma parte da l\u00f3gica, toda a l\u00f3gica do aplicativo ou a l\u00f3gica e a IU, dependendo dos requisitos do seu projeto e da equipe:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-401808\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/image.png\" alt=\"\" width=\"1600\" height=\"466\" \/><\/figure>\n<p>O Compose Multiplatform para Android e desktop (JVM) j\u00e1 est\u00e1 est\u00e1vel, enquanto o suporte para iOS est\u00e1 atualmente em Alpha, e o suporte para Web (Wasm) \u00e9 experimental.<\/p>\n<h2 class=\"wp-block-heading\">Explore o futuro do Kotlin Multiplatform<\/h2>\n<p>A JetBrains continua aprimorando o desenvolvimento multiplataforma com o Kotlin, com o objetivo de torn\u00e1-lo a melhor op\u00e7\u00e3o para compartilhar c\u00f3digo entre plataformas:<\/p>\n<ul>\n<li>Futuras atualiza\u00e7\u00f5es na tecnologia central do Kotlin Multiplatform melhorar\u00e3o a experi\u00eancia dos desenvolvedores iOS, incluindo a interoperabilidade direta do Kotlin com o Swift e suporte ao SwiftPM.<\/li>\n<li>O pr\u00f3ximo marco do Compose Multiplatform para iOS \u00e9 o suporte Beta em 2024.<\/li>\n<li>A JetBrains est\u00e1 desenvolvendo ativamente o Kotlin\/Wasm para facilitar o desenvolvimento Web moderno com o KMP, com o objetivo de entregar a vers\u00e3o Alpha do Compose Multiplatform for Web (Wasm) no ano que vem.<\/li>\n<\/ul>\n<p>E isso n\u00e3o \u00e9 tudo. Nas pr\u00f3ximas semanas, prepare-se para alguns an\u00fancios emocionantes sobre a evolu\u00e7\u00e3o das ferramentas Kotlin Multiplatform!<\/p>\n<h2 class=\"wp-block-heading\">Introdu\u00e7\u00e3o ao Kotlin Multiplatform<\/h2>\n<p>Comece sua jornada com nossos recursos educacionais abrangentes e f\u00e1ceis de usar.<\/p>\n<p>Participe da nossa <strong>S\u00e9rie de webinars sobre o Kotlin Multiplatform em novembro<\/strong> para obter insights diretamente dos especialistas da JetBrains! Explore os recursos do Kotlin Multiplatform, crie aplicativos KMP com IUs nativas e compartilhadas e descubra dicas e truques de desenvolvimento para iOS:<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Inscreva-se\" 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\">Inscreva-se<\/a><\/p>\n<p>O novo <strong>Kotlin Multiplatform Development Portal <\/strong>oferece documenta\u00e7\u00e3o detalhada, guias de introdu\u00e7\u00e3o e tutoriais passo a passo que abrangem todos os aspectos da cria\u00e7\u00e3o de aplicativos com o Kotlin Multiplatform e o Compose Multiplatform:<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Come\u00e7ar\" 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\">Come\u00e7ar<\/a><\/p>\n<p align=\"center\">\u00a0<\/p>\n<p style=\"text-align: left;\" align=\"center\"><em>Artigo original em ingl\u00eas por:<\/em><\/p>\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":407170,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[6706,6436,76],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407168"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/comments?post=407168"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407168\/revisions"}],"predecessor-version":[{"id":407185,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407168\/revisions\/407185"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media\/407170"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=407168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=407168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=407168"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=407168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}