Table of Content
Introduction
Kotlin is a new programming language, it is designed to interoperate fully with Java. It offers a more concise syntax for developers, but also, it can improve the quality of your app due that its null safety checks, by default it won’t allow any property to be null preventing the most common error in Java/Android applications, the famous NullPointerException.
Kotlin is mainly used for Android development, and it has been adopted for most of the developers and companies because it offers a better and concise programming syntax which makes developers more comfortable writing code, also it is preferred because its stability preventing the common errors seen in a Java program, but also, because it is easy to switch to iOS development given that Kotlin syntax is very similar to Swift.
Here is a couple of examples that compare Java vs Kotlin, you will notice that Kotlin requires much less code and it is easier to read.
Data Class
In Java, you need to declare all the getters and setters as well as the different combinations of its constructor. In the other side, Kotlin just require you to declare this with the “data” keyword and have its arguments in the constructor, and you can have this in one single line of code.
Java
public class Movie {
private int id;
private String name;
private String synopsis;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSynopsis() {
return synopsis;
}
public void setsynopsis(String synopsis) {
this.synopsis = synopsis;
}
}
Kotlin
data class Movie (
var id: Int,
var name: String,
var synopsis: String)
Collections
Kotlin comes with a very useful helper method to manage and iterate over the collections. For example, what if your application is required to get the average age of employees in the company in Dallas. Let’s see how we could accomplish this in Java and Kotlin.
Java
public double getAvgAge
(@NotNull List<Employee> employees) {
int ageSum = 0;
int count= 0;
for (Employee employee : employees) {
if (“Dallas”.equals(employee.getCity()) {
ageSum += employee.getAge();
count++;
}
}
if (count == 0) return 0;
return ageSum / count;
}
Kotlin
fun getAvgAge (val employees: List<Employee>):
Double {
return employees.filter{
it.city == City.Dallas }
.map{ it.age }.average()
}
Check the official documentation for further details on Kotlin.
Photo by Marc Reichelt on Unsplash