React Native ile Mobil Uygulama Geliştirme – 1

React Native için kısaca Facebook tarafından üretilen, cross-platform mobil uygulama geliştirme imkanı sağlayan bir framework olarak tanımlanmaktadır.

Mobil geliştirmede yeniyseniz, başlamak için en kolay yol Expo CLI’dir. Expo, React Native etrafında inşa edilmiş bir dizi araçtır ve birçok özelliğe sahip olmasına rağmen, şu anda bizim için en alakalı özellik, birkaç dakika içinde React Native uygulaması yazmanızı sağlayabilmesidir. Yalnızca Node.js’nin son sürümüne ve bir telefona veya emülatöre ihtiyacınız olacak. Herhangi bir araç yüklemeden önce React Native’ı doğrudan web tarayıcınızda denemek isterseniz Snack’i deneyebilirsiniz.

Mobil geliştirmeyi zaten biliyorsanız, React Native CLI’yi kullanmak isteyebilirsiniz. Başlamak için Xcode veya Android Studio gerekir. Bu araçlardan birini zaten yüklediyseniz, birkaç dakika içinde çalışmaya başlayabilirsiniz. Yüklü değilse, bunları kurmak ve yapılandırmak için yaklaşık bir saat harcamayı beklemelisiniz.

Öncelikle React Native ile ReactJS arasındaki farkları inceleyelim.

React Native, mobil uygulamalar oluşturmak için kullanılır, ancak ReactJS, bir web tarayıcısında çalışan web uygulamaları oluşturmak için kullanılır.

ReactJS’de bootstrap gibi CSS çerçevelerini kullanabilirsiniz, ancak React Native’de hiçbir CSS çerçevesini kullanamazsınız.

Animasyon eklemek için ReactJS’de CSS animasyonu kullanabilirsiniz, ancak React Native’de kendi API’sını kullanmanız gerekir.

React Native uygulamalarını test etmek için gerçek bir android veya iOS cihazına ihtiyacınız varken, ReactJS’de, test etmek için bir tarayıcıya ihtiyacınız vardır.

Kurulum:

React Native uygulamaları geliştirmenin iki farklı yolu vardır.

Bunlardan birincisi Expo Aracını Kullanmak, ikincisi de React Native CLI kullanmaktır.

Expo kullanma:

Expo’yu kullanarak, Android Studio veya XCode gibi diğer geliştirme araçlarını yüklemeden bir projeye hızlı bir şekilde başlayabilirsiniz. Native mobil uygulama geliştirme hakkında hiçbir şey bilmiyorsanız, başlamak için en kolay yol budur.

Expo, NodeJ’lere bağımlıdır, bu nedenle expo’yu denemek için sisteminizde Node.js 10+ yüklü olmalıdır. Yoksa, önce Node.js web sitesinden yüklediğinizden emin olun.

Expo kurulumu npm ile yapılır. Bir terminal açın ve kurmak için aşağıdaki komutu çalıştırın:

Expo CLI komut satırı yardımcı programını sisteminize global olarak yükleyecektir. Şimdi projenizi oluşturmak istediğiniz bir klasöre gidin ve aşağıdaki komutu yazın:

“MyFirstProject” klasöründe yeni bir ReactNative expo projesi oluşturacak. Şimdi, react native sunucusunu başlatmak için aşağıdaki komutu kullanın:

veya

Bir geliştirme sunucusu başlatacaktır.

Uygulamayı iPhone veya Android cihazınızda çalıştırmak için expo istemci uygulamasını indirmeniz gerekir. Bu uygulamayı Android / iPhone’unuza indirin ve expo talimatlarını izleyin. Expo, bir Android veya iPhone’da çalıştırmak için tarayıcınızda farklı seçeneklerle yeni bir sekme açacaktır. Hem geliştirme sunucunuzun hem de telefonunuzun aynı wifi ağında olması gerektiğini unutmayın.

Varsayılan projedeki herhangi bir kodu değiştirmek için, favori kod düzenleyicinizde klasörü açın. Main kod App.js dosyasında olacaktır. Bu dosyadaki her şeyi değiştirin ve kaydedin, proje telefonunuza otomatik olarak yeniden yüklenir.

React Native CLI kullanma:

React Native CLI’yi kullanarak hem Android hem de iOS için yerel kod tabanı oluşturabilirsiniz. Uygulamayı hem iOS hem de Android’de test etmek istiyorsanız bir Mac’e ihtiyacınız var. Ayrıca, kurulum farklı işletim sistemleri için farklıdır. Bu makalede, hem Android hem de iOS’u kapsayacak şekilde Mac’e nasıl yükleneceğini göstereceğim.

IOS için hazırlıklar:

Bir uygulamayı bir iOS simülatöründe veya gerçek bir iPhone’da çalıştırabilirsiniz. Ancak ihtiyacınız olan ilk şey XCode ve XCode komut satırı araçlarıdır.

Her şeyden önce, Mac App Store’u açın, XCode’u arayın ve yükleyin. Ayrıca, farklı iPhone’lar için iOS simülatörleri ve iOS uygulamaları oluşturmak için diğer araçlar yükleyecektir. Zaten XCode yüklüyse, 9.4 veya daha yeni bir sürüme güncelleyin.

İkincisi, XCode komut satırı araçlarına ihtiyacınız var. XCode Preferences (Tercihleri) açın ve  Locations (Yerler) sekmesi altında en son komut satırı araçlarını yükleyin. Bu kadar.

Android için hazırlıklar:

Android kurulumu iOS’tan farklı. Yapmamız gereken ilk şey Android Studio’yu yüklemek. Resmi web sitesinden indirin ve yükleyici dosyasını kullanarak yükleyin. Lütfen kurulum sırasında aşağıdaki öğeleri kontrol ettiğinizden emin olun:

Android SDK
Android SDK Platform
Performance (Intel HAXM)
Android Virtual Device

Android Studio ile en son SDK sürümünü alacaksınız. Daha sonra, güncellemek isterseniz “configure -> SDK manager” dan yapabilirsiniz.

Sistem düzeyinde bir son ortam değişkeni yapılandırması daha gereklidir. $HOME/.bash_profile veya $HOME/.bashrc yapılandırma dosyanızı açın ve aşağıdaki satırları ekleyin:

Ortak Kurulum:

IOS ve Android kurulumu tamamlandıktan sonra, gerekli birkaç şeyi daha kontrol etmeniz gerekir. Bir terminal açın ve aşağıdaki komutları çalıştırın:

Node 8.3 veya daha yeni bir sürüm ve JDK 8 veya daha yeni bir sürüm gereklidir. Watchman, dosya sistemindeki değişiklikleri izlemek için kullanılır.

Tüm bu kurulumlar yapıldıktan sonra, aşağıdaki komutu kullanarak reat-native CLI yüklemeniz gerekir:

Yeni bir proje oluşturun:

Yeni bir proje oluşturmak daha kolaydır. Bir terminal açın ve aşağıdaki komutu çalıştırın:

Yeni bir proje ‘Projem’ yaratacak. Gerçek bir cihazda veya bir emülatörde çalıştırabilirsiniz. Kurulumun nasıl yapılacağını öğrenmek için bu kılavuzu izleyin.

Bir Android veya iOS uygulamasını test etmenin başka bir yolu var. Uygulama bir emülatör veya simülatörde çalıştırılabilir. IOS simülatörleri XCode ile otomatik olarak indirilir, ancak android için Android Studio’yu açın ve sanal bir cihaz veya taklitçi eklemek için ‘AVD Manager’ simgesini tıklayın. Ekleyip sonraki adımlara geçmeden önce çalıştırın.

Bir proje yürütmek:

Bir proje yürütmek kolaydır. Aşağıdaki komutları kullanın:

Çıktı aşağıdaki gibi bir şey olacaktır:

React Native’a yukarıdaki temel girişin, framework’u denemek ve yeni projeler veya prototipler oluşturmak için size güven vereceğini umuyoruz.

En önemlisi, herhangi bir sorunuz varsa veya eksik noktaları kapsamak için içeriği güncellememiz gerekiyorsa lütfen yorumlara yazınız.

Vektörel İllüstrasyon Temelleri- Part 3: Boolean Operations

Oluşturacağınız mobil uygulamalardaki özel şekiller ve vektörel illüstrasyonlar için işinizi kolaylaştıran kavramlardan biri olan boolean operatörlerini anlattığım makaledir. Bir önceki makalelerimde Primitive Şekiller, Stroke ve Paths den bahsettim. Makaleleri sırasıyla okumanızı tavsiye ediyorum. Eğer PART 1 ve PART 2’yi okumadıysanız buradan ulaşabilirsiniz.

İşte daha önce tasarladığım bir şekil. Peki bu nedir? Öncelikle bunun bir daire olduğunu hepimiz biliyoruz. Fakat üst kısımda yıldız şeklinde bir parça ve alt kısımda da elips şeklinde bir parça eksik duruyor. Yani, bu illüstrasyon da o şekilleri çemberden çıkartım. Bu da boolean operatörlerinden biri olan substration yöntemidir.

Substration, çoğu vektör grafik yazılımı tarafından önerilen dört ana boolean operatörlerinden biridir. Bakalım substration ve diğer üç işlemi nasıl yapacağım.

Subtraction

Çıkarmayı gerçekleştirmek için, iki (veya daha fazla) şeklin çakıştığından emin olun. Ardından, “Shift” tuşunu basılı tutarak boolean işlemini gerçekleştirmek istediğiniz tüm şekilleri seçin.

Gravit Designer’da, boolean işlemlerini en üstteki araç çubuğunda açıldığını göreceksiniz. Şöyle görünüyor:

 

Yukarıda gördüğünüz ikona tıklayın ve açılır menüden Subtract’ı seçin. Bu, çakışan iki şekil arasında üst şeklin bir kısmını alttaki şekilden çıkaracaktır. Aşağıdaki görselde daha iyi anlayacaksınız.

Z sıralamasını henüz açıklamadım, ancak şu anda bilmeniz gereken şey şu şekildedir: İlk önce çizdiğiniz şekli, ikinci çizdiğiniz şeklin altında bir seviyeye oturmaktadır. Bu durumda, ilk önce kare çizilmiş ve kare şeklinin üzerine oturacak şekilde bir daire çizildi.

Intersection

Insersection, dört ana boolean operatörlerinden biridir ve yine aynı şekilde, Shift tuşunu basılı tutarak, çakışan şekiller arasından çoklu seçim yapın. Ardından boolean işlemleri açılır menüsünden Insersect’ı seçin.

Bu, nesnelerin kesişen kısımlarını korur ve diğer kısımları kaldırır. Aşağıdaki resimde daha iyi görecekseniz.

Difference

Bir diğer boolean operatörlerden biri ise fark operatörüdür. Burda da yine aynı şekilde çakışan şekilleri seçip, ardından Difference seçin.

Difference, intersection işleminin tam tersidir. Yani çakışan kısımları çıkarıp, geri kalan kısımları korur. Aşağıdaki resimde ne demek istediğimi daha iyi anlayacaksınız.

Union

Son olarak union; boolean birleştirme operatörüdür.

Evet, burada da şekilleri birleştiriyoruz.

Genel olarak toparlamak gerekirse, boolean operatörleri, basit şekillerden, karmaşık şekiller oluşturmak için mükemmel bir yoldur.

Vektörel İllüstrasyon Temelleri- Part 2: Stroke and Paths

“Vektörel İllüstrasyon Temelleri” başlıklı makalelerimizden bir yenisini daha sizlerle paylaşmak istiyorum.Bu makale, 5 bölümden oluşan serisinin 2. kısmıdır. Bir önceki makalede (Part 1), vektörel illüstrasyonlar oluşturmak için bilmeniz gereken 5 önemli kavramdan biri olan Primitive Shapes’den bahsettim. Bu makalede de Stroke ve Paths’lerden bahsedeceğim. Makaleleri sırasıyla okumanızı tavsiye ediyorum. Eğer PART 1’i okumadıysanız buradan ulaşabilirsiniz.

Stroke, bir şekli çevreleyen ya da açık yollarda bir yolu izleyen bir çizgidir.

Şekiller gibi, stroke’larda görünüşlerini tanımlayan niteliklere sahiplerdir. Xml’de çizilebilir bir şekil oluşturduğunuzda, bazı stroke niteliklerini tanımlayabilirsiniz. Örneğin, aşağıdaki kod bloğu, çevresindeki turuncu kesik çizgi ve dolgu içermeyen bir dikdörtgeni temsil eder.

Stroke’un özellikleri;

  • Width
  • Color
  • Dashwidth
  • Dashgab

Android SDK, özellikler açısında bundan daha fazla ilerlemese de Gravit Designer, bize isteğimize göre strokeları nitelendirmek için çok daha fazla özellikler sunuyor.

Caps

Caps,stroke’un bitişidir. Açıkçası, kapalı yollarda (daire ve dikdörtgenler gibi) bitiş yoktur ancak açık yollar vardır.

Gördüğünüz gibi, özellikle geniş darbeler söz konusu olduğunda, caps’in stili, görünüm açısından çok fark yaratabilir.

Örneğin, aşağıdaki gibi “liquidstyle” resimler, büyük oranda yuvarlak caps’lerle yapılan stroke’lara bağlıdır ve sanata bu “dripping/moving”” hissi verir.

GravitDesigner’da caps stilini değiştirmek son derece kolaydır: Bir stroke çizdikten sonra sağ bölmeye gidin ve “border” bölümündeki “fader” simgesini tıklayarak caps i özelleştirebilirsiniz. Aşağıda nasıl olduğunu gösterdim.

Burada, diğer şeylerin yanı sıra bitiş noktalarını bulacaksınız ve istediğiniz stili seçebileceksiniz.

Stroke’ların başlangıcındaki ve sonundaki şekiller

Gravit Designer, stroke un başlangıç ve bitiş noktalarına çeşitli şekiller eklemenizi sağlar. Aşağıdaki örnek illüstrasyonunda kavisli turuncu bir ok görecekseniz.

Ok’un sağına eklenen üçgen işareti eklemek için border bölümündeki fader simgesine tıklayıp ve üçgen işareti seçerek ekleyebilirsiniz. Ayrıca, daire, mermi, elmas, çift ok vb. şekiller de ekleyebilirsiniz.

Daha fazla stroke özellikleri

Border bölümündeki, “fader” simgesini tıkladıktan sonra çıkan pop up’taki çizgi genişliğini ve çizgi boşluğunu da ayarlayabileceğinizi fark etmişsinizdir.

Son olarak, stroke renklerini border bölümündeki, border başlığının hemen altında ayarlayabilirsiniz. Daireye dokunup ve önceden ayarlanmış renk örneğinden istediğiniz rengi seçebilir veya kendi renklerinizi kullanabilirsiniz. Ayrıca, illüstrasyonunuzun diğer bir kısımları için renginizi seçmeye olanak tanıyan bir eye dropper da vardır.

Peki, nasıl stroke oluşturabilirim?

Bir stroke oluşturmak için, basitçe bir şekil çizin ve dolguyu kaldırın (şekil önceden st ve roke ayarına sahip değilse, border bölümüne gidip “+” simgesine tıklayarak ekleyebilirsiniz). Dolguları kaldırmak için, border bölümünün hemen üstünde fills bölümünü göreceksiniz. Seçilen dolguları kaldırmak için çöp kutusu simgesine tıklayabilirsiniz.

Stroke oluşturmanın bir başka yolu peltool u kullanmaktır. Pentool, her vektör grafik yazılımında bulunan çok güçlü bir araçtır ancakişi kavramasınız için bazı pratikler yapmanız gerekir.

Stroke oluşturmak zor değil, ancak bu konuyla ilgili bir video dersi izlemeniz daha iyi olacağına inanıyorum.

Gravit Designer da kalem aracını kullanma konusunda bir video önerim bulunmaktadır. Dilerseniz izleyebilirsiniz. https://youtu.be/DgJjB7GjsuI

Stroke ve Paths arasındaki fark

Path, bir dizi noktadır ve bir şekli tanımlayan bir koordinat kümesidir. Path’in kendisi yalnızca bir sayı kümesidir ve matematiksel bir tanımdır. Ekranda gördüğünüz her şey, o path’in görsel bir temsilidir.

Stroke, bir path’e uygulayabileceğiniz görsel bir özelliktir. Stroke, tanımlanmış bir genişlik, renk veya bir dizi diğer özelliklere sahip olabilir ve path’e bağlı görsel bir efekttir.

Stroke olmadan bir path oluşturabilirsiniz, ancak path olmadan bir stroke oluşturamazsınız.

 

Bir sonra ki makale de Part3:Boolean Operations’dan bahsedeceğim. Takipte kalın!

 

 

Vektörel İllüstrasyon Temelleri- Part 1: Primitive Shapes

Başlık, slogan ya da metin gibi sözel unsurları görsel olarak betimleyen ya da yorumlayan bütün unsurlara genel olarak “İllüstrasyon” adı verilir. 

Vektörel illüstrasyon, vektörel grafiklerin oluşturulduğu çizimdir. Vektörel çizimin normal bir çizime
göre avantajı görüntü kalitesidir. İstediği kadar büyültme ya da küçültme yapılsın görüntüde pixelleşme ya da bozulma olmaz.

Eğer bir geliştiriciyseniz, basit vektör illüstrasyon becerisine sahip olmak, gerçekten kullanışlı olabilir. Çünkü, herhangi bir uygulama için kullanacağız şekili, kendiniz istediğiniz şekilde yaratabilir ve tasarlayabilirsiniz.

Bir uygulama için her zaman tek bir ikon paketinin kullanılmasını önermekteyim.Fakat kullandığınız ikon paketinde, gerçekten ihtiyacınız olan nesneler için ikonlar yoksa ne olur? Mesela; taç için bir simgeye ihtiyacınız olursa ne olur?

Eğer herhangi bir firma size kendi uygulamalarını için özel bir şekil yaratmanızı isterse, sorun yaşarsınız demektir.

Durum şu ki, basit bir vektör simgesini veya çizimini belirli bir stilde oluşturmanız, düşündüğünüzden çok daha kolaydır. Aslında, beş önemli konsepti iyice öğrenerek, ihtiyacınız olan şeylerin çoğunu kendiniz yaratmanız mümkün olacağına inanıyorum.

Beş bölümden oluşan bu seride, bir kerede bir konuyu belirteceğim ve size bu kavramların verimli bir şekilde nasıl kullanılacağına dair örnekler vereceğim.

Bu beş kavram;

  1. Primitive Shapes
  2. Strokes
  3. Boolean Operators
  4. Z-ordering
  5. Basic Transformations
  6. Working with text (Bonus)

 

Bu seride, Gravit Designer adlı bir vektör aracı kullanacağım. GravitDesigner’ı, tarayıcı, Windows, Mac, Linux ve Chrome OS için kullanabilirsiniz, böylece kullandığınız her şeyi de çalıştırabilirsiniz. Aynı zamanda tamamen ücretsizdir.

Ayrıca, Inkscape, Illustrator, Affinity Designer veya başka herhangi bir vektör tasarım aracını da kullanabilirsiniz. 

Primitive Shapes

Aşağıda daha önce hazırlamış olduğum örnek klasör simgesi bulunmaktadır. Bu klasörü yaratmak için  sadece primitive shapes özelliğini kullandım.

“Primitive Shapes nedir?” sorunuzu duyar gibiyim.

Bu kod üzerinden açıklamak gerekirse; “android: shape” kısmı, primitive bir şekli tanımlanmasıdır. Bu durumda Primitive Shapes  oval, dairesel veya eliptik bir şekil oluşturmak için kullandığımız bir özelliktir. Android’deki diğer geçerli değerler(values); dikdörtgen, çizgi ve halkadır.

O halde, primitive bir şekil, daha karmaşık şekiller oluşturmak için kullanabileceğimiz basit ve temel bir şekildir.

Neyse ki illüstrasyon uygulamaları, Android’in sunduğu yetersiz seçimle sınırlı değildir.

Örneğin, Gravit Designer, çizgi, dikdörtgen, elips, üçgen, yıldız ve poligon şekilleri sunar. Diğer illüstrasyon programları crescents(hilal), tears(göz yaşı) ve  speechbubbles (konuşma balonları) gibi daha da geniş bir temel şekli sunar.

Aşağıda, gösterilen klasör örneğinin ana hatlarıyla bir görünüşü var; böylece neler olup bittiğini görebilirsiniz.

Gördüğünüz gibi, klasör simgesi sadece yuvarlak dikdörtgenler kullanılarak oluşturuldu. Elbette “rounded rectangle 3” sağ üst köşesinde kesilmiş bir parça var, ancak bu Part 3’te (Boolean Operatörleri) yapmayı öğreneceğiz ve yine, düşündüğünüzden daha basit olacaktır.

Örneğimizde, dikdörtgenler yuvarlaktı ama olmak zorunda değil. Aslında, GravitDesigner’da önceden belirlenmiş şekil, keskin köşeleri olan normal bir dikdörtgen biçimindedir. Yuvarlak yapmak için ‘köşe’ olarak adlandırılan özelliklerinden birini kullanırsınız.

Bu özelliklerin değiştirilmesi şekil bakımından çarpıcı dönüşümlere neden olabilir.

Aşağıda, Gravit Designer’daki primitive şekillerin genel bir taslağını görebilirsiniz ve her sırada manipüle edilmiş niteliklere dayanan bazı varyasyonlarını göreceksiniz.

Gördüğünüz gibi, bazı durumlarda, orijinal şeklinin zar zor fark edilebilir olması oldukça zordur. Bu durumu, avantaj sağlayarak birçok kez kullanabiliriz.

Şimdilik, Gravit Designer uygulamasını açıp, şekiller ve özellikleriyle oynamaya başlamanızı öneriyorum.

Bir sonra ki makale de Part 2: Stroke (Vuruş) dan bahsedeceğim. Daha da güzel şekiller yaratmaya hazır olun.

Kaynaklar

1- https://hackernoon.com/vector-illustration-basics-for-android-developers-part-1-primitive-shapes-5af2e03ad24a

Java ile Kotlin Dilini Karşılaştırma

Yazılım geliştiricileri, Android Uygulama oluşturmak için uzun zamandır Java programlama dilini kullanmaktadır. Fakat bilişim  alanı hızlı bir şekilde yenilenen  canlı bir sektördür.Bu gerçeklikten dolayı, Google Android yazılım alanında kendini güncelledi ve Google 2017 yılında , Android ortamında Kotlin programlama dilini destekleyeceğini duyurdu.

Ben ise bu makalemde Kotlin dilinin yapısını, avantajlarını ve Kotlin ile Java dilinin farklılıklarını anlatacağım.

Kotlin Nedir?

Kotlin, JetBrains firması tarafından 2011 yılında geliştirilmeye başlanan ve ilk stabil sürümünü (v1.0) 2016 yılında yayınlanan yeni programlama dilidir.

Nasıl Java programlama dili ile Android uygulama geliştiriyorsanız, aynen Kotlin dili ile de Android uygulama geliştirebilirsiniz. Aynı zamanda Kotlin ile server-side uygulamaları da geliştirebilirsiniz

Kotlin Programlama Dilinin Yapısı

Temel olarak Java, C ve C ++ gibi – Kotlin de “statik olarak yazılmış programlama dili” dir. Statik olarak yazılan programlama dilleri, değişkenlerin kullanılmadan önce tanımlanmasını gerektirmeyen dillerdir.

Kotlinde öncelikle değişkenimizin adını sonrasında ise değişken tipimizi isteğe ve duruma göre yazmaktayız (İstersek değişken tipimizi yazmayız). Değişken tipimizi yazmasakta Kotlin dili değişkene atanan değere göre tipini kendisi atıyor.

Bildiğiniz üzere Java dilinde ise değişken tanımlaması yaparken önce değişken tipini yazıp sonrasında değişken adını yazmamız gerekiyor.

Nesne yönelimli programlamanın sınıf ve yöntemlerine ek olarak Kotlin, fonksiyon yapısı ile prosedürel programlamayı da desteklemektedir.

Java, C ve C ++’da olduğu gibi, Kotlin ile programlama yaparken de “main” adlı metod içinde işlemlerin başlayacağı kodlarımızı yazmalıyız.

Java’nın dosya adı uzantıları .java, .class, .jar iken diğer yandan Kotlin’in dosya adı uzantıları .kt ve .kts’dir.

Kotlin Programlama Dilinin Yararları

  • Kotlin, Java’da olduğu gibi jdk tarafından bytecode olarak tabir edilen JRE’nin okuyabileceği makine koduna dönüştürülerek, her türlü ortamda çalıştırılabilir bir dildir. Ayrıca Kotlin, Javascript koduna da derlenebilir
  • Kotlin programları, mevcut tüm Java Framework ve Kütüphanelerini kullanabilir. Diğer bir yandan Kotlin dili,  Maven, Gradle ve diğer yapı sistemleri ile kolayca entegre olabilmektedir.
  • Kotlin kolayca öğrenilebilir ve ulaşılabilirdir. Kotlin’in kod yazım biçimi (syntax)  sade,kullanımı kolay ve anlaşılırdır.
  • Kotlin açık kaynak kodlu bir dildir.
  • JetBrains firması üretiği eklenti ile  Java ile yazılmış projelerin, hızlıca Kotlin’e çevrilmesine olanak sağlamıştır. Böylelikle eski projelerinizi Kotlin’ e  kolayca entegre edebilirsiniz.
  • Kotlin programlama dili, her  türde proje oluşturabilmemizi sağlamaktadır.

Kotlin ile Java Arasındaki Farklılıklar

  • Null Safety

    Kotlin’de NullPointerExceptions gibi bir exception dan kurtulmuş olduk. Bunun nedeni, Kotlin dili ile programlama yaparken varsayılan olarak hiçbir değişkene null değerini atayamazsınız ve bir metodu null değer döndüremediğiniz içindir. Örneğin,

  • Data Classes

    Data classes özelliği harika bir zamandan tasarruf sağlar. Uygulamalarımızın çoğunun veri odaklı olduğunu göz önüne aldığımızda, sıklıkla kendimizi yalnızca veri saklamak için özellikler ve alanlar içeren sınıflar oluştururken kendimizi buluruz. Java’da, bu çok sıkıcıdır. Çünkü her kullanacağımız özellik için   bir get / set yöntemi belirlememiz gerekmektedir. Fakat Kotlin kullanırsak, yazacağımız sınıf ve özelliklerini tek bir satırda bildirme imkanımız bulunmaktadır. Örnek Java kodu;

    Örnek kodun Kotlin ile yazılmış hali;

    Kotlin kodunu çalıştırdığınızda derleyici, elle yukarıdaki Java kodunda yazmak zorunda olduğumuz her şeyi üretir

  • Üst Düzey Fonksiyonlar ve Lambda’lar

    Önemli olan şey, Kotlin’in işlevsel bir programlama dili olmasıdır. Temel olarak Kotlin, daha yüksek seviyeli fonksiyonlar, lambda ifadeleri, operatör aşırı yüklenmesi, tembel değerlendirme, operatör aşırı yüklenmesi ve çok daha fazlasını içeren birçok kullanışlı yöntemden oluşur.

  • Type Inference

    Kotlin’de, her değişkenin türünü belirtmek zorunda olmamız çok güzel özelliktir.  Ancak, bir veri türünü açıkça tanımlamak isterseniz, bunu da yapabilirsiniz.

     

Genel olarak özetlemek gerekirse, Kotlin programlama dilinin Java diline göre  bir çok avantaj ve farklılıkları bulunmaktadır.