Android Programlamanın Yeni Dili Kotlin

Android Programlamanın Yeni Dili Kotlin

Google I/O 2017'de Android için asıl programlama dili olarak artık Kotlin Dili’ni destekleyeceğini açıklayınca, bende merak edip bu dili biraz araştırayım dedim. Aslında Oracle’ın Google’a Java kullanımı için dava etmesinden sonra bu kararı almasına şaşırmadım. Bir süredir duyuyorduk zaten, Google’ın Android konusunda arayış içinde olduğunu.

İ.K. Notu: Bu yazı için linkteki pluralsight eğitiminden yararlanılmıştır.

Bu işe en çok sevinenlerden biri şüphesiz JetBrains oldu. Şuradan JetBrains şirketinin bu konu ile yaptığı açıklamayı da görebilirsiniz. Android Studio 3.0 ile beraber Kotlin hazır bir şekilde sunuluyor olacak. Swift diline veya FlowType diline benzerliği ile dikkatleri üstüne çeken Kotlin’i biraz inceleyelim.

Kurulum ve Merhaba Dünya

Yine şu adresteki Github Release linkinden Kotlin’in son halini indirelim. kotlinc adında bir klasör indirmiş olması lazım. Bunun altındaki bin/kotlinc aracılığıyla kodumuz çalıştırıyor olacağız. Ben örnek kodlarımı Visual Studio Code üzerinde Kotlin eklentisi kurarak geliştirdim. Komut satırından da çalıştırmasını sağladım.

Hızlıca Kotlin’de Merhaba Dünya uygulamasını görelim.

Dosyamızın adının test.kt olduğunu farzedersek ve kotlin kütüphanesini masaüstüne indirdiğimizi düşünürsek, bunu çalıştırmak istediğimizde ilk olarak şöyle bir komut çalıştırırız.

~/Desktop/kotlinc/bin/kotlinc test.kt -include-runtime -d test.jar

Bu satır bize test.jar adında bir dosya oluşturacaktır. Bunu şu şekilde çalıştırabiliriz,

java -jar test.jar

Ve sonuç.

Merhaba Dünya

Derleme parametreleriyle ilgili şu adreste açıklamalar var, bu kısma pek girmeyeceğim. Daha çok Kotlin ve kodu üzerinde durmak istiyorum.

Kotlin Nedir

Kotlin bir JVM dilidir, Java bytecode’a derlenir ve JVM üzerinde çalışır.

Immutability(değişmezlik) özelliği destekler. React frameworkünde immutable.js kütüphanesiyle veya başka dillerde kullandığımız bu özelliği Kotlin kendinden destekler. Kotlin’de 2 tür değişken tanımı yapılabilir val anahtar sözcüğü ile ve var anahtar sözcüğü ile. val ile yapılan tanımlamalar sonradan değiştirelemezler. Bu özellik ile kodumuzda daha az hata meydana gelir. Immutability fonksiyonel programlamanın yapı taşlarından biridir.

Kotlin’de bir değişkene null değer atamak için bunu derleyiciye ?(soru işareti) ile söylemelisiniz. Şu şekilde gösterebiliriz,

var b: String? = “abc” 
b = null // ok

Kotlin, nesne yönelimli bir dildir. Sınıflarımız ve bu sınıflardan üretilen nesnelerimiz vardır. Statik nesneler yoktur ama ilerde göreceğimiz gibi ona benzer bir yapı vardır.

Fonksiyonel yapıları destekler. Higher order(fonksiyon üreten fonksiyon) fonksiyonları destekler. Fonksiyonları birinci sınıf vatandaşlardır, bu yüzden fonksiyonları parametre gibi kullanabiliriz. Bir fonksiyona geçebilir veya döndürebiliriz.

Kotlin Java’ya göre daha az kod yazımı gerektirir. Mesela, değişken tanımlamak için getter ve setter tanımlamaya gerek yoktur.

Kotlin’e Hızlı Bir Giriş

İki tamsayı değerinin minimum olanını döndüren bir fonksiyon üzerinden Kotlin’i inceleyelim.

fun anahtar sözcüğü ile fonksiyon tanımı yapar, daha sonra fonksiyon ismi gelir. İlk önce değişken adı iki noktadan sonra değişken tipi gelir. En sonda da dönüş tipi gelir.

Dönüş tipinden de göreceğimiz gibi if bir statement değil expression’dır. Yani if ile bir değer döndürebiliriz. Bu yüzden ternary operatörüne ihtiyaç duymayız.

Kotlin immutability özelliği destekler.

val anahtar sözcüğü ile tanımladığımız değişkenlere sonradan değer atayamayız.

Değerinden değişken tipini çıkardığı için fazladan String dememize gerek kalmaz.

Kotlin, String template özelliğini destekler. Aşağıdaki kod Benim adım Fatih Talha üretir.

Kotlin nesne yönelimli bir dil demiştik. Şu şekilde sınıf tanımı yapabiliriz. Bu sınıfın tek bir name adında özelliği vardır ve bu sınıftan nesne üretirken bunu parametre geçmek zorunludur. Dikkat edeceğiniz gibi nesne tanımlarken new sözcüğünü kullanmayız.

İsterseniz farklı şekillerde de sınıf tanımı yapılabilir.


Şimdilik Kotlin’e hızlı bir giriş yapmış olduk, bir sonraki yazımızda inşallah biraz daha detaya giriyor olacağız.

Bir sonraki yazımıza şuradan gidebilirsiniz.

Sağlıcakla kalın.