Kotlin
A concise multiplatform language developed by JetBrains
Kotlin 1.5.0 – o Primeiro Grande Lançamento de 2021
Bem-vindo ao primeiro lançamento de recursos de acordo com a nova programação de lançamentos: o Kotlin 1.5.0!
Este lançamento fornece recursos estáveis de linguagem, como registros de JVM, interfaces “sealed”, classes inline e inclui o novo compilador JVM IR padrão. Seu feedback sobre as funcionalidades prévias no Kotlin 1.4.30 e nos lançamentos EAP do Kotlin 1.5.0 realmente nos ajudou a estabilizar esses recursos.
Estamos muito gratos por sua ajuda! Obrigada!
Mais de 25.000 desenvolvedores já experimentaram o novo compilador JVM IR no IntelliJ IDEA.
Você perceberá os benefícios com o tempo. O novo compilador compartilha um pipeline unificado e uma lógica de negócios com os compiladores Kotlin/Native e Kotlin/JS IR, o que nos permitirá implementar a maioria dos recursos, otimizações e correções de bugs para todas as plataformas simultaneamente. Ele também permite que você adicione processamento personalizado e transformações que funcionarão automaticamente em todas as plataformas.
Dúvidas sobre o Kotlin 1.5.0? Roman Elizarov, Svetlana Isakova e outros membros da equipe Kotlin estarão disponíveis para responder às suas perguntas ao vivo em 25 de maio durante o evento online Kotlin 1.5.
Inscreva-se no Evento Online Kotlin 1.5
Neste post de blog, você encontrará uma visão geral de:
- Recursos estáveis de linguagem – registros de JVM records, interfaces “sealed” e classes inline.
- Melhorias nas bibliotecas padrão e de teste, incluindo tipos estáveis de inteiros sem sinal, extensões para
java.nio.file.Path
, bem como melhorias nas APIs String, Char e Duration. - Melhorias no Kotlin/JVM, incluindo o novo compilador JVM IR padrão.
- Melhorias no Kotlin/Native, incluindo compilação mais rápida de depuração para aplicações Linux e iOS.
- Melhorias no Kotlin/JS, incluindo a migração de mais bibliotecas JS para o novo compilador Kotlin/JS IR.
Atualização automática para Kotlin 1.5.0
Se você estiver usando o IntelliJ IDEA ou o Android Studio, ele lhe dará a opção de atualizar automaticamente para a nova versão do Kotlin assim que ela estiver disponível.
Saiba mais sobre como instalar o Kotlin 1.5.0.
Recursos estáveis de linguagem
O Kotlin 1.5.0 inclui versões estáveis dos novos recursos de linguagem apresentados na versão prévia 1.4.30:
- Suporte para registros de JVM para permanecer interoperável com os recursos Java mais recentes – classes de registro.
Para usar uma classe Kotlin como um registro no código Java, transforme-a em uma classedata
e marque-a com a anotação@JvmRecord
:Saiba mais sobre os requisitos para uso de registros de JVM.
- Interfaces “sealed”. O modificador
sealed
funciona nas interfaces da mesma maneira que funciona em classes: todas as implementações de uma interface “sealed” são conhecidas em tempo de compilação. - Melhorias em classes “sealed”. Anteriormente, todas as subclasses tinham que estar no mesmo arquivo com classes “sealed”. Agora, elas podem estar em todos os arquivos da mesma unidade de compilação e do mesmo pacote.
- Classes inline são um subconjunto de classes baseadas em valor que apenas contém valores. Você pode usá-las como wrappers para um valor de um determinado tipo sem a sobrecarga adicional que vem do uso de alocações de memória. Use o modificador
value
para a declaração.
Saiba mais sobre os recursos de linguagem do Kotlin 1.5.0
- Leia o post de blog sobre a prévia de recursos da linguagem.
- Leia a documentação da linguagem.
- Assista à série de vídeos sobre a linguagem.
Melhorias nas bibliotecas padrão e de teste
A biblioteca padrão oferece muitos recursos úteis, incluindo:
- As novas APIs estáveis para tipos de inteiros sem sinal, bem como os respectivos intervalos, progressões e funções. Saiba mais sobre inteiros sem sinal.
- Funções de extensão para java.nio.file.Path para usar o moderno Java IO sem bloqueio em um estilo Kotlin idiomático.
- Melhorias nas APIs String e Char incluindo a nova API independente de localidade para alterar a formatação de maiúsculas e minúsculas em strings e caracteres, um conjunto de novas funções para conversão entre caracteres e seus códigos inteiros e valores numéricos e suporte multiplataforma para mais funções char.
- Alterações na API Duration incluindo o uso de um valor
Long
para a representação interna e o fornecimento de novas propriedades para recuperar uma duração como um valorLong
.
A biblioteca de teste acompanha um conjunto de importantes melhorias:
- Dependência
kotlin-test
única no conjunto de origem comum de projetos multiplataforma. - Escolha automática de uma estrutura de teste para conjuntos de origem Kotlin/JVM quando você especifica a dependência
kotlin-test
única. - Uma série de atualizações de função de asserção.
Saiba mais sobre as melhorias nas bibliotecas
- Leia o post de blog sobre melhorias nas bibliotecas com exemplos.
- Leia as Novidades no Kotlin 1.5.0.
- Assista ao vídeo.
Kotlin/JVM
O Kotlin 1.5.0 traz:
- O novo compilador JVM IR, anunciado no Kotlin 1.4.0, torna-se Estável e padrão. Saiba mais sobre o novo compilador no post de blog e nos documentos.
- Compilação de adaptadores SAM e lambdas em invocações dinâmicas (invokedynamic), que se beneficia dos recursos de JVM mais recentes. A compilação das lambdas simples Kotlin é Experimental.
- Novo destino de JVM padrão: 1.8. O destino
1.6
está obsoleto. - Tratamento aprimorado de informações de nulidade de tipos do Java.
- Descontinuados os modos @JvmDefault e o antigo Xjvm-default.
Kotlin/Native
O Kotlin 1.5.0 fornece:
- Suporte para caches do compilador no modo de depuração para destinos
linuxX64
eiosArm64
. Com caches do compilador habilitados, a maioria das compilações de depuração são concluídas muito mais rápido, com exceção da primeira. As medições mostraram cerca de 200% de aumento na velocidade em nossos projetos de teste. - Desativação do verificador de vazamento de memória integrado para evitar problemas que podem causar falhas na aplicação. Saiba como ativar o verificador de vazamento de memória se precisar dele.
Kotlin/JS
O Kotlin/JS está avançando para promover o novo compilador Kotlin/JS IR para Beta. Muitos frameworks e bibliotecas conhecidas já estão disponíveis para o compilador IR: KVision, fritz2 e doodle, entre outras.
Se você é um autor de bibliotecas, pode adicionar sua biblioteca a elas migrando-a com o uso do recurso de compatibilidade com versões anteriores.
Outra melhoria adicional é a construção de pacotes JS usando webpack 5 em vez de webpack 4.
Como instalar o Kotlin 1.5.0
Se você já usa o IntelliJ IDEA ou o Android Studio, ele sugerirá a atualização do Kotlin para 1.5.0 automaticamente assim que o lançamento for disponibilizado. Você também pode atualizá-lo manualmente seguindo estas instruções. Observe que apenas o Android Studio 4.2.0, Arctic Fox Canary 15 e versões posteriores são compatíveis com Kotlin 1.5.0.
Sempre existe a chance de baixar as versões mais recentes desses IDEs para obter amplo suporte para o Kotlin:
- IntelliJ IDEA para desenvolver aplicações Kotlin para diferentes plataformas.
- Android Studio para o desenvolvimento de aplicações móveis Android e multiplataformas.
Certifique-se de ter atualizado também as bibliotecas kotlinx para versões compatíveis e de ter especificado a versão Kotlin 1.5.0
nos scripts de compilação dos seus projetos existentes.
Se precisar do compilador de linha de comando, baixe-o na página de lançamentos do Github.
Se você tiver algum problema
- Encontre ajuda no Slack (receba um convite).
- Informe quaisquer problemas que você encontrar no nosso rastreador de issues, o YouTrack.
Evento Online Kotlin 1.5
Participe do Evento Online Kotlin 1.5 em 25 de maio, no qual a equipe do Kotlin responderá a todas as suas perguntas sobre a versão mais recente. Você pode perguntar sobre qualquer coisa que queira saber ou, se não tiver perguntas, também será uma ótima oportunidade de conhecer sobre a nova versão. O evento terá a duração de uma 1h30.
Publique suas perguntas no Twitter com #kotlin15ask
ou adicione suas perguntas no formulário de registro.
Inscreva-se no Evento Online Kotlin 1.5
Também realizaremos uma sessão de perguntas livres AMA (Ask Me Anything) no Reddit de 27 a 28 de maio para abordar todas as perguntas que ficarem sem resposta, bem como para responder a novas perguntas também.
Compatibilidade
Como em todos os lançamentos de recursos, alguns ciclos de descontinuação de alterações previamente anunciadas estarão chegando ao fim com o Kotlin 1.5.0. Todas essas situações foram cuidadosamente revisadas pelo comitê de linguagens e estão listados no Guia de Compatibilidade para Kotlin 1.5. Você também pode explorar essas mudanças no YouTrack.
Assista e leia mais
Siga o canal Kotlin YouTube:
- lista de reprodução de vídeos sobre o Kotlin 1.5.0
- Assine o Kotlin YouTube para não perder nenhum vídeo sobre novas melhorias em corrotinas e bibliotecas de serialização.
Leia o blog do Kotlin:
- Demonstração de recursos da linguagem Kotlin 1.5.0
- Melhorias nas bibliotecas padrão e de teste do Kotlin 1.5.0
- Novo back-end JVM IR
- Suporte aprimorado de IDEs para o Kotlin no IntelliJ IDEA
Saiba mais nos documentos do Kotlin:
Colaboradores externos
Gostaríamos de agradecer a todos os nossos colaboradores externos cujas solicitações pull foram incluídas neste lançamento:
Jinseong Jeon, Mads Ager, Ivan Gavrilovic, pyos, Steven Schäfer, Iaroslav Postovalov, scaventz, Kristoffer Andersen, Bingran, Stefan Wolf, Victor Turansky, fjjohnchen, justin.wei, Nelson Osacky, Mikhail Galanin, Michael Hoisie, Kris Hall, Kevin Bierhoff, Jiaxiang Chen, Hung Nguyen, Cedric Champeau.
Principais repórteres do YouTrack
Gostaríamos de agradecer a todos os membros da comunidade que nos ajudaram a tornar esse lançamento ainda melhor, relatando issues no YouTrack! Fizemos uma lista dos 20 principais relatores e gostaríamos de agradecê-los especificamente:
Morgan Bartholomew (118 issues); Marc Knaup (78 issues); Ryan Nett (61 issues); Louis CAD (48 issues); Daniil Stepanov (44 issues); AndroidDeveloperLB (39 issues); Victor Turansky (38 issues); Jinseong Jeon (35 issues); Zac Sweers (25 issues); Łukasz Wasylkowski (22 issues); Tianyi Guan (21 issues); Christoph Sturm (20 issues); Axel Fontaine (19 issues); Alexander Nozik (18 issues); Robert Stoll (18 issues); Björn Kautler (18 issues); Róbert Papp (14 issues); Andreas Malik (14 issues); Lorenzo Neumann (14 issues);
Iaroslav Postovalov (14 issues).
Instale o Kotlin 1.5.0 e inscreva-se no Evento Online Kotlin 1.5!