Speedy development & cleaner code kotlin

Features

 

  • Data classes
  • Easter Functions
  • Kotlin android extensions
  • Kappuccino

Debug
Build
Test

NPE

Most common cause of crashes

Then we go through this....

Kotlin handle NPE?

Type System

  • Non-nullable reference
  • Nullable reference

Non-null reference

var someDude:Person = Person()
someDude = null //will not compile

Nullable Reference

var someDude:Person? = Person()
someDude = null //compiles

Same as below...

someDude?.name = "New Hero" 

if(someDude != null) {
    
    someDude.name = "New Hero"

}

Safe Call "?"

A.K.A

elvis operator

var someDude:Person? = Person()
someDude = null //compiles

//only works if not null

someDude?.name = "New Hero" 

Data class

data class Person(var name:String, var age:Int, var address:String,
     var career:String){
            //declare secondary constructor with default values
    constructor():this("", 0, "", "") 
}

POJO

public class Person {
    String name;
    String address;
    String career;
    int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCareer() {
        return career;
    }

    public void setCareer(String career) {
        this.career = career;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}
     fun addPerson(){
        person.address = "Lagos"
        person.age = 75
        person.career = "repair man"
        person.name = "Smile"
    }

Kotlin standard Ext(Easter functions)

with, let & apply

Let


var person : Person? = Person()

//executes if not null
person?.let {
            name = "The flash"
            age = 27
            address = "central city"
            career = "Super hero"   
        }

With

   var per = Person()
        with(per){
            name = "The flash"
            age = 27
            address = "central city"
            career = "Super hero"
        }

apply

var person = Person().apply {
            name = "The flash"
            age = 27
            address = "central city"
            career = "Super hero"
        }

"with" function

Subtitle

Speed

By egbai mmumene

Speed

  • 34