Postado por James Lau, gerente de produtos (@jmslau)
Quando se usa Java como linguagem de programação, um dos erros mais comuns é tentar acessar um membro de uma referência nula, gerando uma NullPointerException. O Kotlin oferece proteção contra esse tipo de problema incorporando tipos que permitem e que não permitem valor nulo ao sistema de tipos. Isso ajuda a eliminar NullPointerExceptions do código e melhorar a qualidade do aplicativo no geral. Quando código Kotlin chama APIs escritas em Java, precisa das anotações de nulabilidade dessas APIs para determinar a nulabilidade de cada parâmetro e o tipo de retorno. Parâmetros e tipos de retorno sem anotação são tratados como tipos de plataforma, o que enfraquece a garantia de segurança contra valores nulos do Kotlin.
NullPointerException
Como parte do anúncio do Android 9 de ontem, lançamos também um novo Android SDK que contém anotações de nulabilidade para as APIs mais usadas. Dessa forma, é possível preservar a garantia de segurança contra valores nulos quando o código Kotlin chama APIs anotadas do SDK. Mesmo que você esteja usando o Java como linguagem de programação, ainda pode se beneficiar dessas anotações usando o Android Studio para encontrar violações de contratos de nulabilidade.
Normalmente, violações de contratos de nulabilidade no Kotlin geram erros de compilação. Mas, para ter certeza de que as APIs recém-anotadas são compatíveis com o seu código atual, estamos usando um mecanismo interno oferecido pela equipe do compilador do Kotlin para marcar as APIs como recém-anotadas. APIs recém-anotadas só gerarão avisos (em vez de erros) no compilador do Kotlin. Você precisa do Kotlin versão 1.2.60 ou mais recente.
A ideia é fazer com que as anotações de nulabilidade recém-adicionadas gerem apenas avisos e aumentar o nível de gravidade dos erros a partir do Android SDK do ano que vem. O objetivo é proporcionar tempo suficiente para que você atualize o seu código.
Para começar, acesse Tools > SDK Manager no Android Studio. Selecione Android SDK no menu à esquerda e verifique se a guia "SDK Platforms" está aberta.
Use o SDK Manager no Android Studio para instalar o SDK para a API de nível 28 revisão 6
Marque "Android 8.+ (P)" e clique em "OK". Será instalada a plataforma Android SDK 28 revisão 6, a menos que já esteja instalada. Em seguida, defina a versão do SDK de compilação do seu projeto como "API 28" para começar a usar o novo Android Pie SDK com anotações de nulabilidade.
Use a caixa de diálogo "Project Structure" para alterar a versão do SDK de compilação do seu projeto para API 28
Talvez seja preciso atualizar seu plug-in do Kotlin no Android Studio, caso esteja desatualizado. Verifique a versão do plug-in do Kotlin em Tools > Kotlin > Configure Kotlin Plugin Updates. Ela deve ser a 1.2.60 ou posterior.
Após a configuração, as compilações começarão a apresentar avisos caso seu código viole os contratos de nulabilidade do Android SDK. Veja um exemplo de aviso abaixo.
Exemplo de aviso do compilador do Kotlin quando o código viola um contrato de nulabilidade recente do Android SDK.
Além disso, você começará a ver avisos no editor de código do Android Studio se chamar uma Android API com a nulabilidade incorreta. Veja um exemplo abaixo.
Aviso do Android Studio sobre a passagem de uma referência nula a um parâmetro anotado como um tipo não nulo recente na android.graphics.Path API.
Mesmo que seu código esteja em Java, as novas anotações de nulabilidade podem ser úteis. Por padrão, o Android Studio destaca todas as violações de contrato de nulabilidade com um aviso, como este:
Android Studio exibindo um aviso sobre uma violação de contrato de nulabilidade em código escrito em Java
Para garantir a ativação dessa inspeção, acesse a página de configurações do IDE, busque a inspeção "Constant conditions & exceptions" e verifique se esse item está marcado.
Use a página "Inspections" em "Settings" para verificar se a inspeção de código "Constant conditions & exceptions" está ativa.
Se você usa o Java como linguagem de programação, as violações de contrato de nulabilidade não produzirão aviso ou erro do compilador. Apenas as inspeções de código no IDE podem sinalizar esses problemas.
Você ainda pode realizar inspeções de código em todo o seu projeto e ver os resultados combinados. Clique em Analyze > Inspect Code… para começar.
A superfície da Android SDK API é muito grande e anotamos apenas uma pequena parte das APIs até agora. Ainda resta muito trabalho a ser feito. Nas próximas versões do Android SDK, continuaremos adicionando anotações de nulabilidade às Android APIs que já existem e anotaremos sempre as novas APIs.
Com o Android SDK "ideal para Kotlin", as anotações de nulabilidade do AndroidX (parte da família Jetpack) e do Android KTX, continuamos aprimorando as Android APIs para desenvolvedores que usam o Kotlin. Se você ainda não testou o Kotlin, experimente, porque vale a pena. O Kotlin não só deixa seu código mais conciso, mas também aumenta a estabilidade dos aplicativos.
Divirta-se com o Kotlin!
Postado por Tom Greenaway, Senior Partner Developer Advocate
No ano passado, anunciamos que, a partir de agosto de 2018, o Google Play passaria a exigir que todos os novos aplicativos e jogos fossem direcionados para um nível recente da Android API, o nível 26 (Android 8.0 Oreo) ou posterior. Além disso, essa exigência será estendida a atualizações de aplicativos e jogos atuais a partir de novembro de 2018.
Cada nova versão do Android adiciona mudanças que trazem avanços consideráveis de segurança e desempenho, melhorando a experiência do usuário no Android como um todo. Com a atualização dos jogos para o nível de API mais recente, os usuários saem ganhando com essas melhorias. E o jogo continua funcionando nas versões anteriores do Android.
Próximos passos:
Mudanças importantes de que você deve saber:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Seguindo em frente
Lembre-se: atualizar o nível de API pretendido é só o primeiro passo. Veja se o jogo é compatível com as mudanças de comportamento entre a API pretendida atual e a API de nível 26. Veja mais informações sobre as mudanças nas versões passadas do Android para ajudar no processo de migração. Essas mudanças de política são importantes para fazer o ecossistema Android evoluir e continuar seguro para os nossos usuários e os seus.
Esta postagem foi útil para você? Avalie!
★ ★ ★ ★ ★