Swift is like Kotlin

Merhabalar Arkadaşlar,

Bugünkü yazımda sizlere Android’in desteklediği yeni bir dil olan Kotlin ve iOS’un desteklediği yeni bir dil olan Swift’in karşılaştırmasını yapacağım. Hazırsanız haydi başlayalım :)

Kotlin Nedir ?

Kısaca Kotlin Google’ın iO 2017 etkinliğinde destekleyeceğini açıkladığı bir programlama dilidir. Kotlin Javaya oranla daha az kod satırıyla daha verimli kod yazmayı sağlamaktadır. Öğrenmesi ve anlaşılması kolay bir dildir. Daha ayrıntılı bilgi için aşağıda bulunan Kotlin Nedir ? adlı blog yazımı inceleyebilirsiniz :

Swift Nedir ?

Swift ise WWDC 2014 etkinliğinde tanıtılan sade ve kolay öğrenilebilen bir programlama dilidir. Objective-C dilinin öğrenilmesi güç olan syntax yapısına oranla daha sade ve akılda kalıcıdır. Apple’a göre Swift C’siz Objective-C olarak adlandırılmaktadır. Aktif olarak geliştirme yapılan bu dilin en güncel sürümü ise 4'tür. Swift ile ilgili daha fazla bilgi için aşağıdaki blog yazısına bakabilirsiniz :

Evet arkadaşlar kısaca hem Kotlin hem de Swift dilini tanıdıktan sonra artık bu iki dilin karşılaştırmasına başlayabiliriz.

Kotlin VS Swift

Kotlin ve Swift dillerine çok benzemektedir. Ben Android tarafı için Kotlin ve iOS tarafı içinse Swift dillerini öğrenmeye çalışıyorum. Gerçekten birbirlerine çok yakın diller. Öğrendiğim bilgileri projeler halinde Github adresimde paylaşıyorum. Projelere aşağıdaki linkten ulaşabilirsiniz :

BASICS

  • Hello World

Swift’te ekrana birşeyler yazdırmak için print() metodu kullanılır.

Kotlin’de ise println() metodu ile ekrana birşeyler yazdırılır ve aşağı satıra inilir. print() metodu ise ekrana yazdırma işlemini yapar ama alt satıra geçmez.

  • Variables And Constants

Swift’te değişkenler var anahtar kelimesi ile tanımlanır. Bu değerler istenildiği vakit güncellenebilir. Sabit değerler için let anahtar sözcüğü kullanılır. Bunlar ise bir kere tanımlanır ve her zaman aynı değeri alırlar. Bu değişkenler sabittir ve değiştirilemezler. Örneğin PI sayısı, e sayısı gibi değerler let ile tanımlanır.

Kotlin’de ise değişkenler Swift’te olduğu gibi var anahtar sözcüğü ile birlikte kullanılır. Sabit tanımlamada ise val anahtar kelimesi kullanılır. Javadaki final kelimesine karşılık gelir.

  • Explicit Types

Swift’te diğer programlama dillerinde olduğu gibi değişkenlerin türlerini belirtmemize gerek yoktur. O yazılanları canlı olarak anlamaktadır. Eski alışkanlıklara sahipseniz aşağıdaki gibi tanımlamalar yapabilirsiniz.

Kotlin’de ise aynı Swift dilinde olduğu gibi değişken türüne ihtiyaç yoktur. Kullanmanız hataya sebebiyet vermez ama derleyici tarafından uyarılarak zaten ben bunun tipini biliyorum bana bunu söylemene gerek yok tarzında mesajlar verebilir.

  • String Interpolation

Swift’te String bir ifadenin içinde sayısal bir veri işleme almak için \() ters slash işaretinden sonra parantez açıp yapılacak işlemleri onun içinde yapıyoruz. Sadece sayısal veriler için değil birçok türde bu kullanım bizlere kolaylık sağlamaktadır.

Kotlin’de ise birden fazla yöntem kullanarak bu verileri ekranda gösterip gerekli işlemleri yapabiliriz. ${apples + oranges} şekilde öncelikle string değer için bir dolar işareti koyup sonrasında süslü parantezi açıp içerisinde gerekli sayısal işlemleri yapıyoruz.

  • Range Operator

Swift’te ve Kotlin’de karşımıza çıkan bu kavram oldukça kullanımı kolay ve biz geliştiriciler için kolaylık sağlayan bir yapıdadır. Örneğimizde bir String array tanımlandı. İçerisine 4 adet eleman girildi. Bu dizinin kaç elemanlı olduğunu öğrenip count değişkenine atadık. For döngüsü ile 0 dan başlayıp count değişken değerine kadar dön dedik. (..) range ifadesidir. Ekranda ise kaçıncı kişi olduğu ve kişinin adı yazdırıldı.

Kotlin’deki yapı Swift’tekiyle aynıdır. Hiçbir fark bulunmamaktadır. Öncelikle arrayOf ile bir array tanımladık ve içerisine değerleri koyduk. Dizinin eleman sayısı bulup bir değişkene atandı. For döngüsü ile 0 dan başlayıp count değerinin 1 eksiğine kadar dön dedik. Neden 1 eksiği çünkü index 0 dan başladığı için fazladan dönmemesi için yaptık. Ekranda ise aşağıdaki gibi çıktılar aldık.

  • Inclusive Range Operator

Swift’te range kavramını herhangi bir yapıdan bağımsızda for içinde kullanabiliriz. Aşağıdaki örnekte 5 defa ekrana ismimizi yazdıran bir program yazacağız. Bu örnekte range : 1..5 şeklinde tanımlanmaktadır.

Kotlin’de ise aynı Swift’te olduğu gibi düz haliyle range kavramını kullanabiliriz. Aşağıdaki örnek 5 defa ekranda ismimizi yazdıran bir programdır. Bu örnekte range : 1..5 şeklinde tanımlanmaktadır.

COLLECTIONS

  • Arrays

Swift’te diğer programlama dillerinde olduğu gibi [] arasına elemanları tanımlayarak istenilen türe göre array dizayn edilir. Aşağıdaki örnekte bir string array oluşturup daha sonra 1 index değerini güncelleme işlemi yapıyoruz.

Kotlin’de ise arrayOf metodu ile birlikte bir array tanımı yapılır ve içerisine istenilen türde değişkenlerden oluşan yapılar eklenir. Aşağıdaki örnekte Swift’te yapmış olduğumuz gibi bir array oluşturup 1.index değerini güncelleceğiz.

  • Maps

Swift’te Map kullanımı key-value şeklindedir. (key : value) Aşağıdaki örnekte map oluşturup eleman eklenmiş. Elemanlardan birinin value değeri güncellenmiştir. Bu yapıya Dictionaries denilmektedir.

Kotlin’de ise map kullanımı key-value ilişkisi içerisindedir fakat Swift’ten farklı olarak key den sonra to gelir daha sonra value değeri gelir. (key to value) Aşağıdaki örnekte map kullanımı ile ilgili işlemler yapılmıştır.

  • Empty Collections

Swift’te boş bir şekilde değişken nasıl tanımlanır. Aşağıdaki örneklerde açık bir şekilde gözükmektedir. Array ve Dictionary tanımlamaları verilmiştir.

Kotlin’de ise Swift’teki benzer şekilde boş şekilde tanımlamalar yapılmaktadır. Array ve Map tanımlamaları verilmiştir. Array ve Map için değişken tipleride belirtilmektedir.

FUNCTIONS

  • Functions

Swift’te fonksiyon parantez içinde fonksiyonda bulunacak değişken ve türlerini belirterek oluşturulur. Fonksiyon geriye bir değer döndürecekse -> işareti koyup döndürülecek değişkenin tipi belirtilir.

Kotlin’de ise fonksiyon tanımlaması Swift diline benzer kullanılmaktadır. Geriye bir değer döndüren bir fonksiyon ise : işareti koyup sonrasında geriye değeri döndürülecek fonksiyonun tipini belirtiyoruz.

CLASSES

  • Declaration

Swift’te class tanımlaması class anahtar sözcüğüyle birlikte oluşturulur. Sınıf içerisinde func anahtar kelimesi ile çeşitli fonksiyon oluşturabilirsiniz.

Kotlin dilinde ise sınıflar class anahtar kelimesi kullanılarak oluşturulur. Sınıf içerisinde değişkenler tanımlayıp kullanabilirsiniz. fun anahtar sözcüğü ile birlikte fonksiyonlar oluşturabilir ve kullanabiliriz.

  • Usage

Swift’te class kullanımı diğer programlama dillerinde olduğu gibi sınıfa ait bir nesne oluşturup o nesne üzerinde gerekli işlemler yapabilirsiniz. Örneğimizde bir shape nesnesi oluşturduk. Bu nesne üzerinde bir değer atadık.

Kotlin’de ise durum pek farklı değil. Nesne oluşturup o nesne vasıtasıyla birçok işlem yapabilirsiniz. Shape Class’ına bir nesne oluşturduk. Sonra aşağıdaki işlemleri yaptık.

Daha fazla bilgi için aşağıdaki adresi ziyaret edebilirsiniz :

Evet arkadaşlar Swift dili ile Kotlin dilinin benzerliklerini anlatan yazımızın sonuna geldik. Bu iki dilide öğrenmenizi tavsiye ederim. Bir sonraki yazımda görüşmek üzere :) Bol kodlu geceler dilerim :)