Slide 1

Slide 1 text

Walmyr Carvalho #TheDevConf #trilhaAndroid Android KTX: 25 dicas em 25 minutos! +

Slide 2

Slide 2 text

Walmyr Carvalho @walmyrcarvalho

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Contexto

Slide 5

Slide 5 text

Fato: Kotlin veio pra ficar! —

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Outro fato: Todo profissional Android quer boas ferramentas para se trabalhar.

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Android KTX

Slide 11

Slide 11 text

Módulo (artefato) Versão Pacotes androidx.core:core-ktx 1.0.0-alpha1 Todos os pacotes core abaixo androidx.fragment:fragment-ktx 1.0.0-alpha1 androidx.fragment.app androidx.palette:palette-ktx 1.0.0-alpha1 androidx.palette.graphics androidx.sqlite:sqlite-ktx 1.0.0-alpha1 androidx.sqlite.db androidx.collection:collection-ktx 1.0.0-alpha1 androidx.collection androidx.lifecycle:lifecycle-viewmodel-ktx 2.0.0-alpha1 androidx.lifecycle androidx.lifecycle:lifecycle-reactivestreams-ktx 2.0.0-alpha1 androidx.lifecycle android.arch.navigation:navigation-common-ktx 1.0.0-alpha01 androidx.navigation android.arch.navigation:navigation-fragment-ktx 1.0.0-alpha01 androidx.navigation.fragment android.arch.navigation:navigation-runtime-ktx 1.0.0-alpha01 androidx.navigation android.arch.navigation:navigation-testing-ktx 1.0.0-alpha01 androidx.navigation.testing android.arch.navigation:navigation-ui-ktx 1.0.0-alpha01 androidx.navigation.ui android.arch.work:work-runtime-ktx 1.0.0-alpha01 androidx.work.ktx Fonte: developer.android.com/kotlin/ktx

Slide 12

Slide 12 text

Setup

Slide 13

Slide 13 text

repositories { google() } build.gradle

Slide 14

Slide 14 text

dependencies { implementation 'androidx.core:core-ktx:1.0.0-alpha1' } app/build.gradle

Slide 15

Slide 15 text

Exemplos

Slide 16

Slide 16 text

// Kotlin sharedPreferences.edit() .putBoolean("key", value) .apply() // Kotlin + Android KTX sharedPreferences.edit { putBoolean("key", value) }

Slide 17

Slide 17 text

// Kotlin db.beginTransaction() try { // insira os dados db.setTransactionSuccessful() } finally { db.endTransaction() } // Kotlin + Android KTX db.transaction { // insira os dados }

Slide 18

Slide 18 text

// Kotlin view.viewTreeObserver.addOnPreDrawListener( object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) actionToBeTriggered() return true } } ) // Kotlin + Android KTX view.doOnPreDraw { actionToBeTriggered() }

Slide 19

Slide 19 text

context.withStyledAttributes(set = someAttributeSet, attrs = attributes, defStyleAttr = ..., defStyleRes = ...) { // do your rolê } context.withStyledAttributes(set = someAttributeSet, attrs = attributes) { // do your rolê }

Slide 20

Slide 20 text

Demonstração

Slide 21

Slide 21 text

Android KTX - GitHub github.com/android/android-ktx

Slide 22

Slide 22 text

Resumindo

Slide 23

Slide 23 text

Dever de: Use o Android KTX como referência e crie as suas próprias extensions!

Slide 24

Slide 24 text

Dúvidas?

Slide 25

Slide 25 text

Links úteis

Slide 26

Slide 26 text

Android Sunflower (alpha) github.com/googlesamples/android-sunflower

Slide 27

Slide 27 text

Android KTX - GitHub github.com/android/android-ktx

Slide 28

Slide 28 text

Kotlin & Android KTX - Jake Wharton (Google I/O ’18) youtu.be/st1XVfkDWqk

Slide 29

Slide 29 text

Android Jetpack developer.android.com/jetpack/

Slide 30

Slide 30 text

Kotlin - Site Oficial kotlinlang.org

Slide 31

Slide 31 text

Kotlin Meetup SP meetup.com/kotlin-meetup-sp

Slide 32

Slide 32 text

Android Dev BR slack.androiddevbr.org

Slide 33

Slide 33 text

Muito obrigado! ♥

Slide 34

Slide 34 text

Créditos de imagem NeONBRAND (Unsplash) bit.ly/2zR1rw2