course on Kotlin Android App Development, Variables and Functions

Using Kotlin for Android app development allows you to make the most of the language’s characteristics and advantages. This article will explain Kotlin’s variables and functions in detail. We will cover a variety of topics ranging from basic concepts to practical examples.

1. Concept of Variables

A variable is a named space that stores data. In Kotlin, declaring a variable is simple and intuitive. You can declare variables using the val and var keywords. val creates a read-only (immutable) variable, while var creates a mutable variable.

1.1. Immutable Variable (val)

An immutable variable cannot be changed once a value is assigned. Here is an example of declaring an immutable variable.

val pi: Double = 3.14159

In the above code, pi is an immutable variable, and once a value is assigned, it cannot be changed.

1.2. Mutable Variable (var)

A mutable variable can change its value as needed. Here is an example of declaring a mutable variable.

var count: Int = 0
count += 1

Here, the count variable is initialized to 0, and the value can be changed later.

1.3. Type Inference

In Kotlin, you can infer the type of a variable when initializing it without explicitly stating its type.

val message = "Hello, Kotlin!"

In the above code, the type of the message variable is automatically inferred as a string (String).

2. Concept of Functions

A function is a block of code that performs a specific task. In Kotlin, declaring a function is straightforward, and it also supports features like higher-order functions and lambda expressions.

2.1. Basic Function Declaration

The basic syntax for declaring a function is as follows.

fun functionName(parameter: Type): ReturnType {
    // function code
}

Below is an example of a function that adds two numbers.

fun add(a: Int, b: Int): Int {
    return a + b
}

This function takes two integers as parameters and returns their sum.

2.2. Parameters with Default Values

In Kotlin, you can set default values for function parameters. Parameters with default values can be omitted during the function call.

fun greet(name: String = "Guest") {
    println("Hello, $name!")
}

In the above example, if you omit the parameter when calling the greet function, “Guest” will be used as the default value.

2.3. Higher-Order Functions

Kotlin supports higher-order functions that can accept functions as parameters or return functions. Let’s look at the following example.

fun operation(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}

Here, the operation function takes two integers as input and accepts a function that performs a specific operation as a parameter.

3. Example Project: Simple Calculator App

Now let’s create a simple calculator app using the variables and functions we’ve learned above.

3.1. Project Setup

Create a new project in Android Studio. Set the app name to “SimpleCalculator” and choose the default Activity.

3.2. UI Design

In the activity_main.xml file, set up the UI as shown below.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/input1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="First Number"
        android:inputType="numberDecimal"/>

    <EditText
        android:id="@+id/input2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Second Number"
        android:inputType="numberDecimal"/>

    <Button
        android:id="@+id/addButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add"/>

    <TextView
        android:id="@+id/resultView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Result: "/>

</LinearLayout>

3.3. MainActivity.kt Code

Now let’s add the logic in the MainActivity.kt file.

package com.example.simplecalculator

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val input1 = findViewById<EditText>(R.id.input1)
        val input2 = findViewById<EditText>(R.id.input2)
        val addButton = findViewById<Button>(R.id.addButton)
        val resultView = findViewById<TextView>(R.id.resultView)

        addButton.setOnClickListener {
            val num1 = input1.text.toString().toDoubleOrNull() ?: 0.0
            val num2 = input2.text.toString().toDoubleOrNull() ?: 0.0
            val result = add(num1, num2)
            resultView.text = "Result: $result"
        }
    }

    private fun add(a: Double, b: Double): Double {
        return a + b
    }
}

4. Conclusion

In this article, we took a closer look at Kotlin’s variables and functions. You have learned how to store data using variables and how to reuse code with functions. Through the simple calculator app example above, I hope you have understood how variables are used in actual app development. We look forward to your continued development of various apps utilizing Kotlin!