android devconference - live code with kotlin: construindo o primeiro app usando kotlin
TRANSCRIPT
![Page 1: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/1.jpg)
Construindo o primeiro app usando Kotlin
Filipe Guedes Philipe Steiff@fgsguedes @philipesteiff
![Page 2: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/2.jpg)
Por que Kotlin?
• Concisa, simples e fácil de ler/escrever
• 100% "two-way" interoperável com Java
• Também é funcional
• Null-safety
• Extension functions
• It's fun
![Page 3: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/3.jpg)
class Foo { fun sum(a: Int, b: Int): Int { return a + b } fun printSum(a: Int, b: Int): Unit { print(a + b) }}
![Page 4: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/4.jpg)
class Foo { fun sum(a: Int, b: Int) = a + b
fun printSum(a: Int, b: Int) { print(a + b) }}
![Page 5: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/5.jpg)
val a: Int = 1 val b = 1 var c = "Any variable"val d = Foo()
![Page 6: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/6.jpg)
Null Safety
var a: String = "abc"
![Page 7: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/7.jpg)
Null Safety
var a: String = "abc"a = null
![Page 8: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/8.jpg)
Null Safety
var a: String = "abc"a = null // compilation error
![Page 9: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/9.jpg)
Null Safety
var a: String = "abc"a = null // compilation error
println(a.length)
![Page 10: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/10.jpg)
Null Safety
var a: String? = "abc"a = null
println(a.length)
![Page 11: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/11.jpg)
Null Safety
var a: String? = "abc"a = null
println(a.length) // compilation error
![Page 12: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/12.jpg)
Null Safety
var a: String? = "abc"a = null
println(a?.length)
![Page 13: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/13.jpg)
Null Safety
var a: String? = "abc"a = null
println(a?.length) // will print 'null'
![Page 14: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/14.jpg)
Null Safety
var a: String? = "abc"a = null
println(a?.length ?: "Was null") // will print 'Was null'
![Page 15: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/15.jpg)
Null Safety
var a: String? = "abc"a = null
println(a!!.length) // XGH
![Page 16: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/16.jpg)
Extensionsfun Parcel.readBoolean() = readByte() > 0 fun Parcel.writeBoolean(boolean: Boolean) { when { boolean -> writeByte(1) else -> writeByte(0) }}
override fun writeToParcel(parcel: Parcel, p1: Int) { parcel.writeBoolean(myBooleanField) }
myBooleanField = parcel.readBoolean()
![Page 17: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/17.jpg)
Quem está usando!?
![Page 18: Android DevConference - Live code with Kotlin: construindo o primeiro app usando Kotlin](https://reader031.vdocuments.site/reader031/viewer/2022021922/58ef02531a28abb5058b460b/html5/thumbnails/18.jpg)
Some live coding!!
Wish us luck