Android

Android

Apresentando o Android KTX: um desenvolvimento de Kotlin para Android ainda melhor

9 fev, 2018
Publicidade

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