{"id":407216,"date":"2023-11-21T02:03:57","date_gmt":"2023-11-21T01:03:57","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=407216"},"modified":"2023-11-21T02:04:00","modified_gmt":"2023-11-21T01:04:00","slug":"boas-vindas-ao-fleet-com-ferramentas-do-kotlin-multiplatform","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/pt-br\/kotlin\/2023\/11\/boas-vindas-ao-fleet-com-ferramentas-do-kotlin-multiplatform\/","title":{"rendered":"Boas-vindas ao Fleet com ferramentas do Kotlin Multiplatform"},"content":{"rendered":"<p>O <a href=\"https:\/\/www.jetbrains.com\/kotlin-multiplatform\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform<\/a> (KMP) \u00e9 uma tecnologia de c\u00f3digo aberto desenvolvida pela JetBrains que permite compartilhar c\u00f3digo em v\u00e1rias plataformas e, ao mesmo tempo, manter os benef\u00edcios da programa\u00e7\u00e3o nativa. As plataformas suportadas incluem iOS, Android, desktop e Web, entre outras.<\/p>\n<p>Hoje, estamos lan\u00e7ando uma vers\u00e3o pr\u00e9via do suporte ao Kotlin Multiplatform no <a href=\"https:\/\/www.jetbrains.com\/fleet\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fleet<\/a>, que simplifica o desenvolvimento de aplicativos multiplataforma, como um acr\u00e9scimo ao j\u00e1 <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/10\/kotlin-support-in-jetbrains-fleet\/\" target=\"_blank\" rel=\"noreferrer noopener\">amplo suporte para Kotlin<\/a> no Fleet. Lembre-se de que, se o seu destino for iOS e macOS, voc\u00ea precisar\u00e1 do Xcode.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Comece agora mesmo\" 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\">Comece agora mesmo<\/a><\/p>\n<p>Vamos dar uma olhada em alguns dos recursos.<\/p>\n<h3 class=\"wp-block-heading\">Simplicidade<\/h3>\n<p>Quando voc\u00ea abre um projeto multiplataforma, o Fleet cria automaticamente configura\u00e7\u00f5es de execu\u00e7\u00e3o para as plataformas Android e\/ou iOS, conforme declarado no arquivo de build do projeto. Voc\u00ea pode us\u00e1-las para executar seu aplicativo em um dispositivo virtual Android ou no simulador iOS.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-403391\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/RunConfigurations-1.png\" alt=\"Ferramentas do Kotlin Multiplatform no Fleet: configura\u00e7\u00f5es de execu\u00e7\u00e3o geradas automaticamente para Android e\/ou iOS\" width=\"1344\" height=\"519\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Programa\u00e7\u00e3o em v\u00e1rias linguagens<\/h3>\n<p>Como o Fleet \u00e9 um IDE para v\u00e1rias linguagens, voc\u00ea n\u00e3o precisa mudar para um editor diferente ou comprometer a praticidade ao trabalhar com o c\u00f3digo nativo no seu projeto multiplataforma. Ao editar c\u00f3digo Swift, voc\u00ea tem a mesma funcionalidade avan\u00e7ada que esperaria no Kotlin e no Java, bem como suporte total para projetos Xcode.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-403402\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/PloyglotProgramming-1.png\" alt=\"Ferramentas do Kotlin Multiplatform no Fleet: programa\u00e7\u00e3o em v\u00e1rias linguagens\" width=\"1666\" height=\"850\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Navega\u00e7\u00e3o pelo c\u00f3digo<\/h3>\n<p>O Fleet oferece suporte para navega\u00e7\u00e3o em v\u00e1rias linguagens entre Swift e Kotlin. Por exemplo, quando voc\u00ea usa a a\u00e7\u00e3o <strong>Show Usages<\/strong> em uma fun\u00e7\u00e3o Kotlin, todas as invoca\u00e7\u00f5es do c\u00f3digo Swift aparecem nos resultados. Se houver uma \u00fanica correspond\u00eancia, o arquivo associado ser\u00e1 exibido.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageNavigation.png\" alt=\"Navega\u00e7\u00e3o entre as linguagens Swift e Kotlin\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageNavigationLooping.gif\" \/><\/p>\n<h3 class=\"wp-block-heading\">Refatora\u00e7\u00e3o<\/h3>\n<p>A refatora\u00e7\u00e3o no Fleet tamb\u00e9m \u00e9 poss\u00edvel em v\u00e1rias linguagens. No exemplo abaixo, se usarmos <strong>Rename Refactoring<\/strong> no tipo MainViewController, a refatora\u00e7\u00e3o ser\u00e1 aplicada aos m\u00f3dulos Kotlin e Swift.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageRefactoringLooping.png\" alt=\"Refatora\u00e7\u00e3o entre as linguagens Swift e Kotlin\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/CrossLanguageRefactoringLooping.gif\" \/><\/p>\n<h3 class=\"wp-block-heading\">Depura\u00e7\u00e3o<\/h3>\n<p>A depura\u00e7\u00e3o no Fleet tamb\u00e9m \u00e9 poss\u00edvel em v\u00e1rias linguagens. Voc\u00ea pode definir um ponto de interrup\u00e7\u00e3o no c\u00f3digo Swift, visualizar valores e a pilha de chamadas nesse ambiente, entrar em uma chamada Kotlin e continuar conforme necess\u00e1rio.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/FleetDebuggingCut.png\" alt=\"Refatora\u00e7\u00e3o entre as linguagens Swift e Kotlin\" 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\">Um \u00fanico IDE<\/h2>\n<p>Como voc\u00ea deve saber ou j\u00e1 experimentou, a cria\u00e7\u00e3o de aplicativos Kotlin Multiplatform muitas vezes envolve a necessidade de usar v\u00e1rios IDEs combinados. Esse ainda \u00e9 o caso quando o alvo s\u00e3o os dispositivos m\u00f3veis, pois o Android Studio e o Xcode s\u00e3o necess\u00e1rios. No entanto, nosso objetivo com o Fleet \u00e9 fornecer um \u00fanico IDE no qual voc\u00ea possa desenvolver aplicativos sem precisar trocar de ferramenta (o Xcode ainda precisa ser instalado quando o alvo s\u00e3o dispositivos Apple, mas n\u00e3o \u00e9 necess\u00e1rio para o trabalho di\u00e1rio).<\/p>\n<h2 class=\"wp-block-heading\">Modelo de pre\u00e7os<\/h2>\n<p>Durante o per\u00edodo da vers\u00e3o pr\u00e9via, o Fleet, incluindo as ferramentas do Kotlin Multiplatform, permanecer\u00e1 gratuito. Assim que lan\u00e7armos as ferramentas, prevemos que o modelo de pre\u00e7os estar\u00e1 alinhado com o do pr\u00f3prio Fleet. Forneceremos mais informa\u00e7\u00f5es perto da data de lan\u00e7amento.<\/p>\n<h2 class=\"wp-block-heading\">Nosso compromisso com o IntelliJ IDEA e a plataforma IntelliJ<\/h2>\n<p>O Fleet usa o mecanismo de processamento de c\u00f3digo IntelliJ para Swift e todo o nosso suporte para Kotlin e, consequentemente, continuaremos a fornecer suporte para Kotlin no IntelliJ IDEA e na plataforma IntelliJ (portanto, tamb\u00e9m no Android Studio). Al\u00e9m disso, temos uma base cada vez maior de desenvolvedores que usam o Kotlin no IntelliJ IDEA e queremos garantir que a inova\u00e7\u00e3o e o suporte continuar\u00e3o nessa plataforma.<\/p>\n<p>Dito isto, o p\u00fablico-alvo do IntelliJ IDEA continuar\u00e1 sendo principalmente os desenvolvedores no lado do servidor com a JVM como alvo. Embora seja poss\u00edvel abrir, navegar e compilar projetos do Kotlin Multiplatform no IntelliJ IDEA e no Android Studio, outros recursos, como configura\u00e7\u00f5es de execu\u00e7\u00e3o espec\u00edficas da plataforma, recursos do Compose Multiplatform e muitos outros que facilitam o desenvolvimento multiplataforma, ter\u00e3o suporte somente no Fleet.<\/p>\n<h2 class=\"wp-block-heading\">Como come\u00e7ar<\/h2>\n<p>Para come\u00e7ar com o desenvolvimento no Kotlin Multiplatform e experimentar todos os recursos interessantes em que estamos trabalhando, voc\u00ea pode instalar a vers\u00e3o mais recente do Fleet por meio do <a href=\"https:\/\/www.jetbrains.com\/fleet\/download\/\" target=\"_blank\" rel=\"noreferrer noopener\">JetBrains Toolbox App<\/a>. Tamb\u00e9m temos um novo <a href=\"https:\/\/kmp.jetbrains.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Assistente Web online<\/a> para criar projetos Kotlin Multiplatform.<\/p>\n<p>N\u00e3o deixe de conferir o tutorial sobre o <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 para desenvolvimento no Kotlin Multiplatform<\/a> para obter um guia passo a passo sobre como criar seu primeiro aplicativo. Voc\u00ea tamb\u00e9m pode dar uma olhada em alguns dos <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-mobile-samples.html\" target=\"_blank\" rel=\"noreferrer noopener\">aplicativos de exemplo usando o KMP<\/a> que preparamos.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Come\u00e7ar\" 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\">Come\u00e7ar<\/a><\/p>\n<h2 class=\"wp-block-heading\">Precisamos do seu feedback<\/h2>\n<p>As ferramentas do Kotlin Multiplatform no Fleet ainda est\u00e3o nos est\u00e1gios iniciais, ent\u00e3o adorar\u00edamos ouvir seu feedback. Diga-nos o que funciona, o que n\u00e3o funciona, o que est\u00e1 faltando e o que voc\u00ea simplesmente n\u00e3o pode ficar sem. Deixe um coment\u00e1rio nesta postagem do nosso blog ou use nosso <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/FL?u=1:\" target=\"_blank\" rel=\"noreferrer noopener\">rastreador de issues<\/a>. Voc\u00ea tamb\u00e9m pode compartilhar qualquer feedback que tiver sobre o Kotlin Multiplatform, incluindo as ferramentas, no canal <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/fleet\" target=\"_blank\" rel=\"noreferrer noopener\" data-type=\"link\" data-id=\"https:\/\/slack-chats.kotlinlang.org\/c\/fleet\">#fleet<\/a> do Kotlin Slack.<\/p>\n<p>Obrigada!<\/p>\n<p><em>Artigo original em ingl\u00eas por:<br \/><\/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":407226,"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\/pt-br\/wp-json\/wp\/v2\/kotlin\/407216"}],"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=407216"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407216\/revisions"}],"predecessor-version":[{"id":407238,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407216\/revisions\/407238"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media\/407226"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=407216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=407216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=407216"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=407216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}