This document discusses ways to be a 10x Android developer using Kotlin features like lambdas, null safety, idioms, data classes, extensions, KotlinX, and Anko. Key points mentioned include using lambda expressions to avoid Java interfaces, the ? operator for null safety, default parameter values, when expressions, importing classes, lazy initialization, and building UIs with Anko.
2. Hello!I am Shadaï ALI
I am software craftsman and developer at OpenSI
You can find me at @shadai_ali
3. May God Bless JetBrains
◍ Kotlin for Android Developer
◍ AGERA : Reactive Programming for Android by Google
◍ Clean Architecture (fuck nel Redux is good)
◍ CircleCI (Write a Test, Android needs an espresso)
4. “3 Database SQL walked into
A NoSQL bar.
A little while later
they walked out
Because they couldn’t find a table
5. Be a 10x Android Developer
A lambda expression or an anonymous function is a
"function literal", i.e. a function that is not
declared, but passed immediately as an expression
Native Lambas (No more java interface)
6. Be a 10x Android Developer
myButton.setOnClickListener { navigateToDetail() }
Native Lambas (No more java interface)
7. Be a 10x Android Developer
allApps().filter { it.name.contains("opensi") }
Native Lambas (No more java interface)
15. Be a 10x Android Developer
public abstract static void run();
public abstract static void run(int vitesse);
public abstract static void run(int vitesse,int kilometer);
Default value paramter
16. Be a 10x Android Developer
fun run(vitesse = 0, kilometer = 0)
Default value paramter
17. Be a 10x Android Developer
when(x){
“Ali” -> sayHelloAli()
1 -> { x % 2 -> calc(x)
is BENIN -> callTalon(x)
else -> ...
}
When
18. Be a 10x Android Developer
import com.opensi.opensource.Data
Import com.squareup.privatesource.africa.Data
class main() {
Data firstData;
com.squareup.privatesource.africa.Data secondData;
}
as
19. Be a 10x Android Developer
import com.opensi.opensource.Data
Import com.squareup.privatesource.africa.Data as SquareData
class main() {
val firstData: Data;
val secondData: SquareData;
}
as
20. Be a 10x Android Developer
Override operators
+,=,-,..
21. Be a 10x Android Developer
MyActivity : Activity {
val database by lazy { DataBase(this)}
Override fun oncreate(){
val users = database.gatAllDAta()
}
Lazy instantiation
22. Be a 10x Android Developer
Data class
Data class
24. Kotlin, similar to C# and Gosu, provides the ability to extend
a class with new functionality without having to inherit from
the class or use any type of design pattern such as Decorator.
This is done via special declarations called extensions. Kotlin
supports extension functions and extension properties.
You can also split your content