Artigo de Jake Wharton, publicado originalmente pelo Android Developers Blog. A tradução foi feita pela Redação iMasters com autorização.
***
Anunciamos no início de fevereiro o preview do Android KTX – um conjunto de extensões projetadas para tornar o código Kotlin para Android mais conciso, idiomático e agradável. O Android KTX fornece uma boa camada de API em cima do framework do Android e da Support Library para tornar o código Kotlin mais natural.
A porção do Android KTX que cobre o framework do Android agora está disponível no nosso repositório do GitHub. Convidamos você a experimentá-lo para nos dar seus feedbacks e colaborações. As outras partes do Android KTX que cobrem a Android Support Library estarão disponíveis nos próximos lançamentos da Support Library.
Vamos dar uma olhada em alguns exemplos de como o Android KTX pode ajudá-lo a escrever um código Kotlin mais natural e conciso.
Amostras de código usando o Android KTX
String para Uri
Vamos começar com este exemplo simples. Normalmente, você chamaria Uri.parse (uriString). O Android KTX adiciona uma função de extensão à classe String que permite que você converta strings em URIs de forma mais natural.
Kotlin | Kotlin com Android KTX |
val uri = Uri.parse(myUriString) |
val uri = myUriString.toUri() |
Editar SharedPreferences
Editar SharedPreferences é um caso de uso muito comum. O código usando o Android KTX é um pouco mais curto e mais natural para ler e escrever.
Kotlin | Kotlin com Android KTX |
sharedPreferences.edit() .putBoolean(key, value) .apply() |
sharedPreferences.edit { putBoolean(key, value) } |
Traduzindo diferença de caminho
No código abaixo, traduzimos a diferença entre dois caminhos por 100px.
Kotlin | Kotlin com Android KTX |
val pathDifference = Path(myPath1).apply { op(myPath2, Path.Op.DIFFERENCE) } val myPaint = Paint() canvas.apply { val checkpoint = save() translate(0F, 100F) drawPath(pathDifference, myPaint) restoreToCount(checkpoint) } |
val pathDifference = myPath1 - myPath2 canvas.withTranslation(y = 100F) { drawPath(pathDifference, myPaint) }
|
Ação em View onPreDraw
Este exemplo desencadeia uma ação com o callback OnPreDraw do View. Sem o Android KTX, há um pouco de código que você precisa escrever.
Kotlin |
view.viewTreeObserver.addOnPreDrawListener( object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) actionToBeTriggered() return true } }) |
Kotlin com Android KTX |
view.doOnPreDraw { actionToBeTriggered() } |
Há muitos outros lugares onde o Android KTX pode simplificar seu código. Você pode ler a documentação de referência completa da API no GitHub.
Começando
Para começar a usar o Android KTX em seus projetos do Android Kotlin, adicione o seguinte ao arquivo build.gradle do seu módulo da aplicação:
repositories { google() } dependencies { // Android KTX for framework API implementation 'androidx.core:core-ktx:0.1' ... }
Então, depois de sincronizar seu projeto, as extensões aparecem automaticamente na lista de preenchimento automático do IDE. Selecionar uma extensão adiciona automaticamente a declaração de importação necessária ao seu arquivo.
Tenha em mente que as APIs provavelmente mudarão durante o período de preview. Se você decidir usá-lo em seus projetos, deve esperar quebrar as alterações antes de alcançar a versão estável.
androidx: Hello World!
Você pode notar que o Android KTX usa nomes de pacotes que começam com androidx. Esse é um novo prefixo de nome de pacote que usaremos em futuras versões da Android Support Library. Esperamos que a divisão entre o android. * e androidx. * torne mais óbvio quais APIs são agrupadas com a plataforma e quais são bibliotecas estáticas para desenvolvedores de aplicativos que funcionam em diferentes versões do Android.
O que vem por aí?
O lançamento do preview é apenas o começo. Nos próximos meses, vamos iterar na API à medida que incorporamos seus feedbacks e colaborações. Quando a API tiver se estabilizado e pudermos fazer commit da compatibilidade da API, planejamos lançar o Android KTX como parte da Android Support Library.
Estamos ansiosos para construir o Android KTX junto com você!
***
Este artigo é do Android Developers Blog. Ele foi escrito por Jake Wharton. A tradução foi feita pela Redação iMasters com autorização. Você pode acessar o original em: https://android-developers.googleblog.com/2018/02/introducing-android-ktx-even-sweeter.html