{"id":67087,"date":"2020-08-17T17:12:35","date_gmt":"2020-08-17T17:12:35","guid":{"rendered":"http:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=67087"},"modified":"2020-08-26T02:03:06","modified_gmt":"2020-08-26T02:03:06","slug":"lancamento-do-kotlin-1-4-com-foco-na-qualidade-e-no-desempenho","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/pt-br\/kotlin\/2020\/08\/lancamento-do-kotlin-1-4-com-foco-na-qualidade-e-no-desempenho\/","title":{"rendered":"Lan\u00e7amento do Kotlin 1.4 com foco na qualidade e no desempenho"},"content":{"rendered":"<p>Hoje, estamos lan\u00e7ando o Kotlin 1.4.0! Nos \u00faltimos anos, temos trabalhado muito para tornar o Kotlin uma linguagem de programa\u00e7\u00e3o divertida, agrad\u00e1vel e produtiva. Para continuarmos nossa jornada em busca dessa meta com esta vers\u00e3o do Kotlin, colocamos muita energia e esfor\u00e7o para melhorar o desempenho e a qualidade do Kotlin e de suas ferramentas. Tamb\u00e9m temos o prazer de anunciar suporte para v\u00e1rios novos recursos da linguagem, incluindo as t\u00e3o esperadas convers\u00f5es de SAM para interfaces Kotlin.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1597417083773.png\" alt=\"file\" \/><\/p>\n<p>Para ajudar voc\u00ea a tirar o m\u00e1ximo proveito das mudan\u00e7as e melhorias introduzidas no Kotlin 1.4, estamos convidando todos para o <a href=\"https:\/\/kotlinlang.org\/lp\/event-14\" target=\"_blank\" rel=\"noopener\">Evento Online Kotlin 1.4<\/a>, no qual voc\u00ea ter\u00e1 a oportunidade de aproveitar quatro dias de confer\u00eancias sobre o Kotlin, participando de sess\u00f5es de perguntas e respostas com a equipe do Kotlin e muito mais \u2013 sem pagar absolutamente nada.<\/p>\n<h2 id=\"compiler-and-ecosystem\">Comunidade e ecossistema<\/h2>\n<p>Mais de 5,8 milh\u00f5es de pessoas editaram o c\u00f3digo Kotlin nos \u00faltimos 12 meses, e os n\u00fameros est\u00e3o crescendo cada vez mais:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1596831871952.png\" alt=\"arquivo\" \/><\/p>\n<p>Estamos muito satisfeitos em ver o qu\u00e3o popular o Kotlin est\u00e1 se tornando! O n\u00famero de usu\u00e1rios ativos &#8211; explicaremos essa m\u00e9trica com mais detalhes em uma postagem futura no blog &#8211; tem sido especialmente encorajador. Aqui, estamos vendo um aumento de 1,5 vezes em rela\u00e7\u00e3o aos n\u00fameros do ano anterior.<\/p>\n<p>De acordo com a <a href=\"https:\/\/insights.stackoverflow.com\/survey\/2020#most-popular-technologies\" target=\"_blank\" rel=\"noopener\">StackOverflow Developer Survey 2020<\/a>, o Kotlin subiu para o 13\u00ba lugar entre as linguagens de programa\u00e7\u00e3o mais populares para desenvolvedores profissionais, e estamos felizes em ver que o Kotlin \u00e9 uma das 5 linguagens mais adoradas.<\/p>\n<p>Muitas empresas escolheram o Kotlin como linguagem preferencial e a est\u00e3o usando com sucesso em todas as plataformas. Estamos felizes em ver essa tend\u00eancia e imensamente gratos por tantas dessas empresas terem disponibilizado estudos de caso para a comunidade ler e aprender com elas. Aqui est\u00e3o apenas alguns exemplos incr\u00edveis de softwares desenvolvidos recentemente em Kotlin:<\/p>\n<ul>\n<li>No lado do servidor: <a href=\"https:\/\/www.youtube.com\/watch?v=4GkoB4hZUnw\" target=\"_blank\" rel=\"noopener\">Atlassian<\/a>, <a href=\"https:\/\/medium.com\/adobetech\/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a\" target=\"_blank\" rel=\"noopener\">Adobe<\/a>, <a href=\"https:\/\/medium.com\/ing-blog\/introducing-kotlin-at-ing-a-long-but-rewarding-story-1bfcd3dc8da0\" target=\"_blank\" rel=\"noopener\">ING Bank<\/a>;<\/li>\n<li>Android: <a href=\"https:\/\/developer.android.com\/stories\/apps\/google-home\" target=\"_blank\" rel=\"noopener\">Google Home<\/a>, <a href=\"https:\/\/developer.android.com\/stories\/apps\/duolingo-kotlin\" target=\"_blank\" rel=\"noopener\">Duolingo<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=ao9QvtpszOU\" target=\"_blank\" rel=\"noopener\">Zomato<\/a>;<\/li>\n<li>Multiplataforma para celular: <a href=\"https:\/\/medium.com\/vmware-end-user-computing\/adopting-a-cross-platform-strategy-for-mobile-apps-59495ffa23b0\" target=\"_blank\" rel=\"noopener\">VMware<\/a>, <a href=\"https:\/\/kotlinconf.com\/2019\/talks\/video\/2019\/116027\/\" target=\"_blank\" rel=\"noopener\">PlanGrid e CashApp<\/a>, <a href=\"https:\/\/shift.mirego.com\/en\/trikot\" target=\"_blank\" rel=\"noopener\">Trikot<\/a> da Mirego;<\/li>\n<li>Web: <a href=\"https:\/\/kotlinconf.com\/2019\/talks\/video\/2019\/137062\/\" target=\"_blank\" rel=\"noopener\">Space da JetBrains<\/a>, <a href=\"https:\/\/www.karhoo.com\/\" target=\"_blank\" rel=\"noopener\">Karhoo<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=lzsF0NuhS6g\" target=\"_blank\" rel=\"noopener\">VisionForge<\/a> do <a href=\"https:\/\/github.com\/mipt-npm\" target=\"_blank\" rel=\"noopener\">Laborat\u00f3rio de Met\u00f3dos de F\u00edsica Nuclear MPIT<\/a>.<\/li>\n<\/ul>\n<p>Nossas comunidades Kotlin tamb\u00e9m est\u00e3o crescendo rapidamente. Mais de 30.000 desenvolvedores de Kotlin est\u00e3o agora trocando conhecimento e apoiando uns aos outros no <a href=\"http:\/\/kotlinlang.slack.com\/\" target=\"_blank\" rel=\"noopener\">Slack<\/a> e <a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/\" target=\"_blank\" rel=\"noopener\">Reddit<\/a>, e mais de 90.000 pessoas seguem nossa <a href=\"https:\/\/twitter.com\/kotlin\" target=\"_blank\" rel=\"noopener\">conta oficial no Twitter<\/a> em busca de dicas, truques e an\u00fancios. Com mais de 200 grupos de usu\u00e1rios em todo o mundo, a comunidade Kotlin est\u00e1 prosperando e crescendo. Agradecemos a todos por ajudar a divulgar, compartilhar seu conhecimento e apoiar seus colegas desenvolvedores de Kotlin. A atmosfera calorosa e acolhedora que voc\u00ea cria \u00e9 o que torna o ato de explorarmos o Kotlin juntos uma experi\u00eancia t\u00e3o agrad\u00e1vel. N\u00e3o seria a mesma coisa sem voc\u00ea.<\/p>\n<h3 id=\"online-event\">Evento Online Kotlin 1.4<\/h3>\n<p>Queremos ter certeza de que voc\u00ea ter\u00e1 uma \u00f3tima experi\u00eancia com o Kotlin 1.4 e gostar\u00edamos que voc\u00ea tivesse uma boa ideia sobre para onde levaremos a linguagem a partir daqui. \u00c9 por isso que temos o prazer de convidar a todos para o nosso Evento Online Kotlin 1.4!<\/p>\n<p>S\u00e3o quatro dias repletos de conhecimento sobre Kotlin, o futuro da linguagem e seu ecossistema: Discutiremos as novas mudan\u00e7as e melhorias que fizemos com o Kotlin 1.4 e compartilharemos nossos planos futuros para a linguagem. Os membros da nossa equipe Kotlin responder\u00e3o \u00e0s suas perguntas em sess\u00f5es di\u00e1rias de perguntas e respostas. Envie suas perguntas com anteced\u00eancia por tweet, usando a hashtag <a href=\"https:\/\/twitter.com\/search?q=%23kotlin14ask&amp;src=typed_query\" target=\"_blank\" rel=\"noopener\">#kotlin14ask<\/a> ou <a href=\"https:\/\/surveys.jetbrains.com\/s3\/Q-A-Your-question-for-the-Kotlin-team\" target=\"_blank\" rel=\"noopener\">este formul\u00e1rio<\/a>.<\/p>\n<p>O Evento Online Kotlin 1.4 ser\u00e1 transmitido de 12 a 15 de outubro, e voc\u00ea pode se inscrever <em>gratuitamente<\/em> aqui:<\/p>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/kotlinlang.org\/lp\/event-14#registration\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>Inscreva-se no Evento Online Kotlin 1.4<\/a><\/p>\n<p>Estamos ansiosos para ver todos voc\u00eas l\u00e1!<\/p>\n<h2 id=\"focusing-on-quality\">Com foco na qualidade<\/h2>\n<p>Nosso foco principal para essa vers\u00e3o foi melhorar a experi\u00eancia geral de desenvolvimento com o Kotlin, incluindo melhor desempenho e estabilidade do IDE. Nossa meta \u00e9 trazer o m\u00e1ximo de produtividade para os usu\u00e1rios do Kotlin e nosso foco est\u00e1 em melhorar as coisas que s\u00e3o mais importantes para esses usu\u00e1rios, para que eles se sintam ainda mais satisfeitos ao usar o Kotlin!<\/p>\n<p>Revisamos e corrigimos <a href=\"https:\/\/youtrack.jetbrains.com\/issues?q=%23%7BPerformance%20Problem%7D%20Subsystems:%20%7BIDE*%7D%20%23Fixed%20resolved%20date:%202019-10%20..%20Today%20and%20Target%20versions:%20-1.4.20\" target=\"_blank\" rel=\"noopener\">mais de 60<\/a> problemas de desempenho, incluindo muitos que estavam causando congelamentos do IDE ou vazamentos de mem\u00f3ria. Durante a fase EAP do Kotlin 1.4.0, coletamos muitos coment\u00e1rios positivos indicando que a experi\u00eancia geral agora ficou muito mais agrad\u00e1vel!<\/p>\n<p>Quando voc\u00ea est\u00e1 trabalhando com um projeto e abre um arquivo Kotlin grande pela primeira vez, agora v\u00ea seu conte\u00fado com realce muito mais cedo. Na maioria dos casos, o realce agora \u00e9 1,5 a 4 vezes mais r\u00e1pido:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1596832840332.png\" data-gif-src=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/Kotlin\/1.4-release-highlighting.gif\" width=\"607\" height=\"454\" \/><\/p>\n<p>Tamb\u00e9m melhoramos significativamente o tempo necess\u00e1rio para a visualiza\u00e7\u00e3o das sugest\u00f5es de complementa\u00e7\u00e3o autom\u00e1tica. O gr\u00e1fico a seguir mostra uma vis\u00e3o geral do tempo m\u00e9dio de resposta do preenchimento autom\u00e1tico para usu\u00e1rios do Kotlin. O n\u00famero de casos em que a complementa\u00e7\u00e3o leva mais de 500 ms foi reduzido quase pela metade:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1597151211621.png\" alt=\".\" \/><\/p>\n<p>Observe que essas altera\u00e7\u00f5es mais recentes, incluindo o realce de c\u00f3digo mais r\u00e1pido, requerem o IntelliJ IDEA 2020.1+ e o Android Studio 4.1+.<\/p>\n<p>As melhorias de desempenho s\u00e3o um processo cont\u00ednuo, e temos muitos outros aprimoramentos planejados, como continuar a trabalhar para eliminar o congelamento e tornar a digita\u00e7\u00e3o mais suave. J\u00e1 iniciamos a integra\u00e7\u00e3o com o novo <a href=\"#new-compiler\">compilador de front-end<\/a> experimental do Kotlin, que ir\u00e1 acelerar significativamente o IDE. Essa \u00e9 uma tarefa enorme que requer que muitas partes do plug-in sejam reescritas, mas aumentar\u00e1 o desempenho em muitas \u00e1reas do IDE, incluindo complementa\u00e7\u00e3o de c\u00f3digo, realce de sintaxe e relat\u00f3rio de erros do compilador.<\/p>\n<h3 id=\"new-ide-functionality\">Nova funcionalidade do IDE<\/h3>\n<p>Nossa miss\u00e3o na JetBrains \u00e9 tornar o desenvolvimento de software uma experi\u00eancia mais produtiva e agrad\u00e1vel. Portanto, naturalmente queremos assegurar que as ferramentas em torno do Kotlin s\u00e3o excelentes e tornam a codifica\u00e7\u00e3o do Kotlin o mais f\u00e1cil poss\u00edvel.<\/p>\n<p>Para facilitar o trabalho com co-rotinas e, especialmente, para identificar bugs na sua aplica\u00e7\u00e3o concorrente, apresentamos o <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#coroutine-debugger\" target=\"_blank\" rel=\"noopener\">Coroutine Debugger<\/a>. Vamos expandir seu conjunto de recursos inicial para fornecer a funcionalidade mais necess\u00e1ria para a comunidade. Portanto, compartilhe seus coment\u00e1rios conosco usando um dos nossos canais ou na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<p>Tamb\u00e9m estamos apresentando um novo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-flexible-project-wizard\" target=\"_blank\" rel=\"noopener\">Assistente de projetos do Kotlin<\/a> flex\u00edvel. Esse novo assistente fornece um local \u00fanico para voc\u00ea criar e configurar projetos Kotlin de diferentes tipos, o que torna ainda mais f\u00e1cil come\u00e7ar a trabalhar, at\u00e9 mesmo com estruturas mais complexas, como projetos multiplataforma.<\/p>\n<p>Mais de <a href=\"https:\/\/youtrack.jetbrains.com\/issues?q=%23Feature%20Subsystems:%20%7BIDE.%20Inspections%20and%20Intentions%7D%20%23Fixed%20resolved%20date:%202019-10%20..%20Today%20and%20Target%20versions:%20-1.4.20\" target=\"_blank\" rel=\"noopener\">40 novas corre\u00e7\u00f5es r\u00e1pidas <\/a>, inten\u00e7\u00f5es e inspe\u00e7\u00f5es foram adicionadas com o Kotlin 1.4.0 e estar\u00e3o dispon\u00edveis exatamente quando voc\u00ea precisar delas &#8211; quando voc\u00ea modifica seu c\u00f3digo e <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/intention-actions.html#apply-intention-actions\" target=\"_blank\" rel=\"noopener\">pressiona Alt + Enter<\/a> para ver o que est\u00e1 dispon\u00edvel no seu contexto espec\u00edfico.<\/p>\n<h3 id=\"new-compiler\">Novo compilador<\/h3>\n<p>J\u00e1 faz algum tempo que estamos trabalhando em um novo compilador Kotlin que ir\u00e1 promover a evolu\u00e7\u00e3o do Kotlin em termos de desempenho e extensibilidade. As principais metas para o novo compilador s\u00e3o que ele seja realmente r\u00e1pido, unifique todas as plataformas que o Kotlin suporta e forne\u00e7a uma API para extens\u00f5es do compilador. Estamos introduzindo novas pe\u00e7as gradualmente, para que cheguem ao usu\u00e1rio o mais r\u00e1pido poss\u00edvel. Com o Kotlin 1.4.0, estamos lan\u00e7ando v\u00e1rias partes desse esfor\u00e7o cont\u00ednuo:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-more-powerful-type-inference-algorithm\" target=\"_blank\" rel=\"noopener\">Um novo e mais poderoso algoritmo de infer\u00eancia de tipo<\/a> est\u00e1 habilitado por padr\u00e3o. Ele infere tipos automaticamente em mais casos de uso, oferece suporte a convers\u00f5es inteligentes mesmo em cen\u00e1rios complicados, melhora a infer\u00eancia para propriedades delegadas e muito mais.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#unified-backends-and-extensibility\" target=\"_blank\" rel=\"noopener\">Novos back-ends JVM e JS<\/a> est\u00e3o dispon\u00edveis no modo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/evolution\/components-stability.html\" target=\"_blank\" rel=\"noopener\">Alpha<\/a>. Uma vez estabilizados, eles se tornar\u00e3o o novo padr\u00e3o.<\/li>\n<\/ul>\n<p>Estamos trabalhando ativamente em uma nova implementa\u00e7\u00e3o de front-end, que fornecer\u00e1 o maior aumento de desempenho poss\u00edvel no pipeline do compilador. O front-end \u00e9 a parte do compilador que analisa o c\u00f3digo, resolve nomes, executa a verifica\u00e7\u00e3o de tipos e muito mais, portanto, afeta o desempenho do IDE tamb\u00e9m. Uma pr\u00e9via dele estar\u00e1 dispon\u00edvel em lan\u00e7amentos futuros. Portanto, fique atento!<\/p>\n<h2 id=\"language-features\">Recursos da linguagem<\/h2>\n<p>O Kotlin 1.4 vem com muitos novos recursos:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#sam-conversions-for-kotlin-interfaces\" target=\"_blank\" rel=\"noopener\">Convers\u00f5es de SAM para interfaces Kotlin<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#explicit-api-mode-for-library-authors\" target=\"_blank\" rel=\"noopener\">Modo de API expl\u00edcito para autores de bibliotecas<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#mixing-named-and-positional-arguments\" target=\"_blank\" rel=\"noopener\">Combinando argumentos nomeados e posicionais<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#trailing-comma\" target=\"_blank\" rel=\"noopener\">V\u00edrgula final<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#callable-reference-improvements\" target=\"_blank\" rel=\"noopener\">Melhorias de refer\u00eancias cham\u00e1veis<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#using-break-and-continue-inside-when-expressions-included-in-loops\" target=\"_blank\" rel=\"noopener\">Usando <code>break<\/code> e <code>continue<\/code> dentro de <code>when<\/code> em loops<\/a><\/li>\n<\/ul>\n<h2 id=\"library-improvements\">Melhorias de biblioteca<\/h2>\n<p>Nossa prioridade geral para a biblioteca padr\u00e3o \u00e9 melhorar a consist\u00eancia, tanto em diferentes plataformas quanto entre as pr\u00f3prias opera\u00e7\u00f5es. Nesta vers\u00e3o, a biblioteca padr\u00e3o Kotlin recebe <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-functions-for-arrays-and-collections\" target=\"_blank\" rel=\"noopener\">novos operadores de cole\u00e7\u00e3o<\/a>, <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#delegated-properties-improvements\" target=\"_blank\" rel=\"noopener\">melhorias nas propriedades delegadas<\/a>, <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#arraydeque\" target=\"_blank\" rel=\"noopener\">a implementa\u00e7\u00e3o de fila dupla <code>ArrayDeque<\/code><\/a> e muito <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#standard-library\" target=\"_blank\" rel=\"noopener\">mais<\/a>.<\/p>\n<p>Voc\u00ea pode usar a biblioteca padr\u00e3o em c\u00f3digo \u201ccomum\u201d &#8211; o c\u00f3digo compartilhado entre diferentes plataformas, sejam elas Android e iOS ou JVM e JS. Estamos gradualmente estendendo a biblioteca comum e adicionando ou movendo funcionalidades ausentes para ela.<\/p>\n<p>Tamb\u00e9m n\u00e3o \u00e9 mais necess\u00e1rio declarar uma depend\u00eancia no <code>stdlib<\/code> em qualquer projeto Gradle Kotlin, n\u00e3o importa se voc\u00ea almeja uma \u00fanica plataforma ou est\u00e1 trabalhando em um projeto multiplataformas. A partir do Kotlin 1.4.0, essa depend\u00eancia <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#dependency-on-the-standard-library-added-by-default\" target=\"_blank\" rel=\"noopener\">\u00e9 adicionada por padr\u00e3o<\/a>.<\/p>\n<p>Estamos trabalhando em outras partes do ecossistema Kotlin:<\/p>\n<ul>\n<li>Estamos evoluindo gradualmente para <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.coroutines\" target=\"_blank\" rel=\"noopener\">kotlinx.coroutines<\/a> com base em seus coment\u00e1rios.<\/li>\n<li>A <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/serialization.html\" target=\"_blank\" rel=\"noopener\">biblioteca de serializa\u00e7\u00e3o<\/a> est\u00e1 se aproximando da maturidade. Estamos lan\u00e7ando a vers\u00e3o <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.serialization\/releases\/tag\/1.0.0-RC\" target=\"_blank\" rel=\"noopener\">kotlinx.serialization<\/a> 1.0.0-RC hoje!<\/li>\n<li>J\u00e1 lan\u00e7amos a demonstra\u00e7\u00e3o da API DateTime, a biblioteca <a href=\"https:\/\/github.com\/Kotlin\/kotlinx-datetime\" target=\"_blank\" rel=\"noopener\">kotlinx-datetime<\/a>, em um estado experimental.<\/li>\n<\/ul>\n<h2 id=\"kotlin-jvm\">Kotlin\/JVM<\/h2>\n<p>Incentivamos voc\u00ea a experimentar o novo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-jvm-ir-backend\" target=\"_blank\" rel=\"noopener\">back-end do Kotlin\/JVM <\/a> Alpha para seus projetos regulares e a compartilhar seus coment\u00e1rios! Junto com a unifica\u00e7\u00e3o dos pipelines do compilador, esse esfor\u00e7o nos ajudar\u00e1 a trazer extens\u00f5es do compilador como o <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> para a comunidade Kotlin mais rapidamente.<\/p>\n<p>Recursos da linguagem espec\u00edficos para Kotlin\/JVM:<\/p>\n<ul>\n<li>Adicionamos <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-modes-for-generating-default-methods\" target=\"_blank\" rel=\"noopener\">novas maneiras experimentais para gerar m\u00e9todos padr\u00e3o<\/a> em interfaces no bytecode (para o destino Java 8).<\/li>\n<li>Introduzimos <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#unified-exception-type-for-null-checks\" target=\"_blank\" rel=\"noopener\">tipos de exce\u00e7\u00e3o unificados para a verifica\u00e7\u00f5es de null<\/a>.<\/li>\n<li>O Kotlin agora pode gerar <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#type-annotations-in-the-jvm-bytecode\" target=\"_blank\" rel=\"noopener\">anota\u00e7\u00f5es de tipo<\/a> no bytecode JVM, de modo que se tornem dispon\u00edveis no Java reflection em tempo de execu\u00e7\u00e3o. Isso funciona para vers\u00f5es de destino 8 e superiores, e por enquanto foi lan\u00e7ado em modo experimental.<\/li>\n<\/ul>\n<h2 id=\"kotlin-js\">Kotlin\/JS<\/h2>\n<p>O Kotlin 1.4.0 vem com um novo Gradle DSL e uma vers\u00e3o Alpha do novo back-end do compilador Kotlin\/JS, entre outros recursos.<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-gradle-dsl\" target=\"_blank\" rel=\"noopener\">O novo Gradle DSL<\/a> adiciona suporte para configura\u00e7\u00e3o de CSS e carregadores de estilo a partir do DSL, que inclui v\u00e1rias melhorias relacionadas ao gerenciamento de depend\u00eancias do npm e melhora o controle sobre a integra\u00e7\u00e3o com o Dukat.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-js-ir-backend\" target=\"_blank\" rel=\"noopener\">O back-end do compilador Kotlin\/JS<\/a> d\u00e1 uma amostra do futuro para o Kotlin\/JS. Inclui otimiza\u00e7\u00f5es e recursos, como a gera\u00e7\u00e3o autom\u00e1tica de defini\u00e7\u00f5es TypeScript a partir do c\u00f3digo Kotlin, bin\u00e1rios e pacotes menores, uma maneira modernizada de expor a funcionalidade do Kotlin ao JavaScript e muito mais.<\/li>\n<\/ul>\n<h2 id=\"kotlin-native\">Kotlin\/Native<\/h2>\n<p>O Kotlin\/Native recebeu um n\u00famero significativo de novos recursos e melhorias, incluindo:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#performance-improvements\" target=\"_blank\" rel=\"noopener\">Melhorias no desempenho geral da compila\u00e7\u00e3o e execu\u00e7\u00e3o do Kotlin\/Native<\/a>.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#support-for-kotlins-suspending-functions-in-swift-and-objective-c\" target=\"_blank\" rel=\"noopener\">Interoperabilidade aprimorada entre Kotlin\/Native e Swift\/Obj-C<\/a>.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#simplified-management-of-cocoapods-dependencies\" target=\"_blank\" rel=\"noopener\">Gerenciamento simplificado das depend\u00eancias CocoaPods<\/a>.<\/li>\n<\/ul>\n<p>A implementa\u00e7\u00e3o do gerenciamento autom\u00e1tico da mem\u00f3ria atual no Kotlin\/Native tem limita\u00e7\u00f5es quando se trata de concorr\u00eancia, e estamos trabalhando em uma <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2020\/07\/kotlin-native-memory-management-roadmap\/\">substitui\u00e7\u00e3o<\/a> para ela.<\/p>\n<p>Um foco importante para o Kotlin\/Native \u00e9 torn\u00e1-lo perfeito para o <a href=\"https:\/\/www.jetbrains.com\/lp\/mobilecrossplatform\/\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform Mobile<\/a>, mas ele n\u00e3o se limita a isso.<\/p>\n<h2 id=\"kotlin-multiplatform\">Kotlin Multiplatform<\/h2>\n<p>Fazer do Kotlin uma \u00f3tima solu\u00e7\u00e3o multiplataformas \u00e9 uma das nossas principais prioridades. <a href=\"https:\/\/kotlinconf.com\/2019\/talks\/video\/2019\/130754\/\" target=\"_blank\" rel=\"noopener\">Prometemos<\/a> algumas melhorias importantes na KotlinConf e estamos felizes em comunicar o que disponibilizamos:<\/p>\n<ul>\n<li>Gra\u00e7as \u00e0 <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#sharing-code-in-several-targets-with-the-hierarchical-project-structure\" target=\"_blank\" rel=\"noopener\">estrutura hier\u00e1rquica do projeto<\/a>, agora voc\u00ea pode compartilhar o c\u00f3digo entre um subconjunto espec\u00edfico de destinos, como o destino de dispositivos iOS ARM64 similares e o destino do simulador x64.<\/li>\n<li>Voc\u00ea pode <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#leveraging-native-libs-in-the-hierarchical-structure\" target=\"_blank\" rel=\"noopener\">usar bibliotecas dependentes de plataforma a partir de c\u00f3digo comum compartilhado entre v\u00e1rios destinos nativos<\/a>.<\/li>\n<li>Voc\u00ea pode <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#specifying-dependencies-only-once\" target=\"_blank\" rel=\"noopener\">especificar uma depend\u00eancia apenas uma vez<\/a> no conjunto de origem compartilhada em vez de especificar depend\u00eancias em diferentes variantes da mesma biblioteca em conjuntos de origens compartilhadas e espec\u00edficas de plataforma.<\/li>\n<li>Continuamos trabalhando no formato de biblioteca Kotlin, o Klib, que \u00e9 usado nos bastidores para compartilhar as bibliotecas multiplataforma.<\/li>\n<\/ul>\n<p>Estamos trabalhando em um plug-in do Android Studio para executar, testar e depurar o c\u00f3digo Kotlin em dispositivos iOS e simuladores. A primeira pr\u00e9via p\u00fablica ser\u00e1 lan\u00e7ada em breve, portanto, fique ligado.<\/p>\n<p>Em breve, lan\u00e7aremos v\u00e1rios materiais criados com a ajuda de membros da comunidade Kotlin, explicando como voc\u00ea pode usar a tecnologia Kotlin Multiplatform Mobile (KMM) com foco especificamente em casos de uso para dispositivos m\u00f3veis em que o c\u00f3digo \u00e9 compartilhado entre o Android e o iOS.<\/p>\n<p>Apesar de o foco principal agora estar em destinos m\u00f3veis, o destino Web para o Kotlin Multiplatform j\u00e1 \u00e9 usado ativamente pela JetBrains para construir e entregar o <a href=\"https:\/\/www.jetbrains.com\/space\/\" target=\"_blank\" rel=\"noopener\">JetBrains Space<\/a>. A Web continua sendo um importante investimento estrat\u00e9gico para Kotlin.<\/p>\n<h2 id=\"more-details\">Mais detalhes<\/h2>\n<p>Voc\u00ea pode encontrar descri\u00e7\u00f5es detalhadas dos novos recursos na <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html\" target=\"_blank\" rel=\"noopener\">p\u00e1gina de novidades e na documenta\u00e7\u00e3o do Kotlin 1.4<\/a> e ler mais sobre <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#migrating-to-kotlin-140\" target=\"_blank\" rel=\"noopener\">como migrar para o Kotlin 1.4<\/a>.<\/p>\n<p>Como em todos os lan\u00e7amentos principais, alguns ciclos de descontinua\u00e7\u00e3o de altera\u00e7\u00f5es previamente anunciadas est\u00e3o chegando ao fim com o Kotlin 1.4. Todos esses casos foram analisados cuidadosamente pelo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/evolution\/kotlin-evolution.html#decision-making\" target=\"_blank\" rel=\"noopener\">comit\u00ea da linguagem<\/a> e est\u00e3o listados no <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/compatibility-guide-14.html\" target=\"_blank\" rel=\"noopener\">Guia de compatibilidade para o Kotlin 1.4<\/a>.<\/p>\n<h2 id=\"how-to-help-us\">Como nos ajudar a melhorar o Kotlin<\/h2>\n<p>O plug-in do Kotlin no IntelliJ IDEA e Android Studio pode coletar estat\u00edsticas an\u00f4nimas sobre o uso  das funcionalidades. Pedimos gentilmente que voc\u00ea aceite a coleta dessas estat\u00edsticas!<\/p>\n<p>Esses dados an\u00f4nimos nos ajudam muito a entender melhor nossa base de usu\u00e1rios, ver o que funciona, o que est\u00e1 causando dificuldades e para onde devemos direcionar nosso foco. Para ativar as estat\u00edsticas, v\u00e1 para <em>Preferences<\/em>, abra <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/settings-usage-statistics.html\" target=\"_blank\" rel=\"noopener\"><em>Appearance &amp; Behaviour | System Settings | Data Sharing<\/em><\/a> e marque a caixa de sele\u00e7\u00e3o <em>Send usage statistics<\/em>.<\/p>\n<h3 id=\"top-issue-reporters\">Os principais relatores de issues desde o Kotlin 1.3<\/h3>\n<p>Gostar\u00edamos de agradecer a todos os membros da comunidade que nos ajudaram a tornar esse lan\u00e7amento ainda melhor, relatando issues no <a href=\"http:\/\/kotl.in\/issue\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>! Fizemos uma lista dos 20 principais relatores e gostar\u00edamos de agradec\u00ea-los especificamente:<\/p>\n<p><a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20panell\" target=\"_blank\" rel=\"noopener\">Igor Wojda<\/a> (145 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20louis.cad\" target=\"_blank\" rel=\"noopener\">Louis CAD<\/a> (87 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20fluidsonic\" target=\"_blank\" rel=\"noopener\">Marc Knaup<\/a> (86 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20lblb636\" target=\"_blank\" rel=\"noopener\">AndroidDeveloperLB<\/a> (83 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Robert_Stoll\" target=\"_blank\" rel=\"noopener\">Robert Stoll<\/a> (68 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20kotlinisland\" target=\"_blank\" rel=\"noopener\">Morgan Bartholomew<\/a> (62 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Turansky\" target=\"_blank\" rel=\"noopener\">Victor Turansky<\/a> (54 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20him188\" target=\"_blank\" rel=\"noopener\">Guan Tianyi<\/a> (51 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20spierce7.1\" target=\"_blank\" rel=\"noopener\">Scott Pierce<\/a> (38 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20gamalik\" target=\"_blank\" rel=\"noopener\">Andreas Malik<\/a> (37 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20stevenschaefer\" target=\"_blank\" rel=\"noopener\">Steven Sch\u00e4fer<\/a> (37 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Vampire\" target=\"_blank\" rel=\"noopener\">Bj\u00f6rn Kautler<\/a> (36 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20TWiStErRob\" target=\"_blank\" rel=\"noopener\">R\u00f3bert Papp<\/a> (34 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20t-kameyama\" target=\"_blank\" rel=\"noopener\">Toshiaki Kameyama<\/a> (30 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20nbilyk3\" target=\"_blank\" rel=\"noopener\">Nicholas Bilyk<\/a> (29 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Michael.Bailey\" target=\"_blank\" rel=\"noopener\">Michael Bailey<\/a> (26 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Jake.Wharton\" target=\"_blank\" rel=\"noopener\">Jake Wharton<\/a> (25 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20lamba92\" target=\"_blank\" rel=\"noopener\">Lamberto Basti<\/a> (24 issues); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20sergepro\" target=\"_blank\" rel=\"noopener\">Serge Pro<\/a> (23 issues) e <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Egorand\" target=\"_blank\" rel=\"noopener\">Egor Andreevici<\/a> (21 issues).<\/p>\n<h2 id=\"start-using\">Comece a usar o Kotlin 1.4 agora mesmo<\/h2>\n<p>Como sempre, voc\u00ea pode experimentar o Kotlin online em <a href=\"http:\/\/play.kotl.in\/\" target=\"_blank\" rel=\"noopener\">play.kotl.in<\/a>.<\/p>\n<p>No Gradle e no Maven, use 1.4.0 como a vers\u00e3o do compilador. Consulte os documentos para o <a href=\"http:\/\/kotlinlang.org\/docs\/reference\/using-gradle.html\" target=\"_blank\" rel=\"noopener\">Gradle<\/a> e para o <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/using-maven.html\" target=\"_blank\" rel=\"noopener\">Maven<\/a>.<\/p>\n<p>O IntelliJ IDEA e o Android Studio <a href=\"https:\/\/kotlinlang.org\/releases.html#updating-to-a-new-release\" target=\"_blank\" rel=\"noopener\">solicitam<\/a> automaticamente que voc\u00ea atualize o plug-in Kotlin para a vers\u00e3o 1.4.0. Voc\u00ea tamb\u00e9m pode abrir <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/managing-plugins.html\" target=\"_blank\" rel=\"noopener\">Preferences | Plugins<\/a> e atualizar o plug-in do Kotlin manualmente.<\/p>\n<p>O compilador de linha de comando pode ser baixado na <a href=\"https:\/\/github.com\/JetBrains\/kotlin\/releases\/tag\/v1.4.0\" target=\"_blank\" rel=\"noopener\">p\u00e1gina de lan\u00e7amento do GitHub<\/a>.<\/p>\n<p>Voc\u00ea pode usar as seguintes vers\u00f5es das bibliotecas que foram publicadas junto com este lan\u00e7amento:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.coroutines\" target=\"_blank\" rel=\"noopener\">kotlinx.coroutines<\/a> vers\u00e3o: <code>1.3.9<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.serialization\" target=\"_blank\" rel=\"noopener\">kotlinx.serialization<\/a> vers\u00e3o: <code>1.0.0-RC<\/code><\/li>\n<li><a href=\"https:\/\/ktor.io\/\" target=\"_blank\" rel=\"noopener\">ktor<\/a> vers\u00e3o: <code>1.4.0<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.atomicfu\" target=\"_blank\" rel=\"noopener\">kotlinx.atomicfu<\/a> vers\u00e3o: <code>0.14.4<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.html\" target=\"_blank\" rel=\"noopener\">kotlinx.html<\/a> vers\u00e3o: <code>0.7.2<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx-nodejs\" target=\"_blank\" rel=\"noopener\">kotlinx-nodejs<\/a> vers\u00e3o: <code>0.0.6<\/code><\/li>\n<\/ul>\n<p>As vers\u00f5es das bibliotecas do <code>kotlin-wrappers<\/code> (<code>kotlin-react<\/code> etc.) podem ser encontradas no <a href=\"https:\/\/github.com\/JetBrains\/kotlin-wrappers\" target=\"_blank\" rel=\"noopener\">reposit\u00f3rio<\/a> correspondente.<\/p>\n<p>As melhorias de desempenho do IDE mais recentes, incluindo o realce de c\u00f3digo mais r\u00e1pido, requerem o IntelliJ IDEA 2020.1+ e o Android Studio 4.1+.<\/p>\n<p>Se tiver problemas com a nova vers\u00e3o, voc\u00ea poder\u00e1 encontrar ajuda no <a href=\"http:\/\/kotlinlang.slack.com\/\" target=\"_blank\" rel=\"noopener\">Slack<\/a> (receba um convite <a href=\"http:\/\/slack.kotlinlang.org\/\" target=\"_blank\" rel=\"noopener\">aqui <\/a>) e reportar issues no nosso <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>.<\/p>\n<h2 id=\"thank-you\">Obrigada!<\/h2>\n<p>Somos muito gratos a todos que experimentaram e nos deram feedback sobre os EAPs e os recursos experimentais do Kotlin. Estamos desenvolvendo a linguagem Kotlin junto com voc\u00ea e tomando muitas decis\u00f5es de design com base na sua contribui\u00e7\u00e3o inestim\u00e1vel. Manter esse ciclo de feedback r\u00e1pido e eficaz em andamento com a comunidade \u00e9 muito importante para ajudar o Kotlin a melhorar continuamente!<\/p>\n<p>Gostar\u00edamos de deixar um grande obrigado a todos os nossos colaboradores externos cujas solicita\u00e7\u00f5es pull foram inclu\u00eddas neste lan\u00e7amento. Voc\u00eas nos ajudaram a fazer esse lan\u00e7amento acontecer!<\/p>\n<p>Somos muito gratos a todos os membros da nossa comunidade que est\u00e3o criando tantas coisas incr\u00edveis com o Kotlin. <em>Kotlin 1.4: Um por todos!<\/em><\/p>\n","protected":false},"author":1086,"featured_media":67106,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/67087"}],"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=67087"}],"version-history":[{"count":3,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/67087\/revisions"}],"predecessor-version":[{"id":68719,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/67087\/revisions\/68719"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media\/67106"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=67087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=67087"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=67087"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=67087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}