• bu dile yatırım yapmak isteyenler için hem kaynak hem de yöntem açısından tavsiyelerim var. en önemli tavsiyem: hemen öğrenmeye başlayın, kullanmayacak olsanız bile çünkü çoğu kaynak dilin halihazırda en güncel versiyonunu ile oluşturulmuş, ileride yeni sürümler çıkar, öğrendiğiniz falan değişir, hiç gerek yok. en azından yeni versiyon değişikliklerine bakar, neyi neden yaptıkları hakkında bir fikir sahibi olursunuz. öğrenme süreci uzun değil android'çiler için; hafta sonu projesi olarak görün, çok zamanınızı almayacaktır temelleri kavramak. ok, neler yapmalı?

    adım 1- google i/o 2017 konuşmalarını izleyin, alkışlarla falan biraz gaz alın:
    - introduction to kotlin: dilin üreticisi jetbrains'ten kotlin'i her fırsatta tanıtan hadi hariri'nin konuşması. keyifli, demolu, giriş seviyesinde ve yüzeysel ama izleyin.
    - life is great and everything will be ok, kotlin is here: android camiasının çok yakından tanıdığı, projesinde kendisi tarafından üretilen library kullanmayanların işe alınmadığı, efendimis jake wharton reyiz ile pinterest'ten christina lee'nin konuşması. jake hızlıca android developer'ların işine yarayacak örnekler veriyor hadi'nin konuşmasına göre daha advanced ve pratik örneklerle. asıl bomba ise google i/o'da hiç görmeyeceğiniz tarzda bir konuşma ile christina şirketinizde böyle büyük değişikliklerin nasıl sağlanacağına dair rant ile karışık tavsiyelerde bulunuyor. en az teknik detaylar kadar ilginç bir olay, mutlaka izlenmeli. bu konuşma ile ilgili dikkatinizi çekmek istediğim bir başka şey ise bu konuşmayı yapan kişiler hadi gibi google'dan değil, community'den gelen kişiler. kotlin'e resmi destek verilmesinde community'nin etkisinin simgesi gibi.

    ok, bu konuşmaları izlediniz, hadi'nin clap yerine crap demesine güldünüz, gözlerinizi kapatıp null pointer exception'ların olmadığı bir dünya hayali kurdunuz, jake reyizin örnekleri ile karmaşık ve boilerplate kodla yapılan şeylerin ne kadar elegant bir şekilde yapılabildiğini gördünüz(jake kadar iyi olmadığınızı, jake'in 10x performansla çalıştığını hesaplarınıza katmayı unutmadınız ) ve artık öğrenmeye hazırsınız.

    adım 2 tamamen kendinizi verimli hissettiğiniz öğrenme şekline göre şekilleniyor. dökümanyasyon okurum, bana yeter diyorsanız kotlin'in resmi sitesindeki referans bölümü güncel ve pratik https://kotlinlang.org/docs/reference/

    daha sonra kotlin koans'a geçerek, teker teker unit testleri geçerek dilin temellerini kavrayabilirsiniz. takıldınız yerde referanslar yine en büyük dostunuz.

    bir diğer alternatif ise video ile daha iyi öğrenirim, daha çok senaryoyu gözlemlerim diyenler için. google i/o konuşmasını keyifle dinlediğiniz, kotlin'i sevdikten sonra talking kotlin podcastiyle düzenli olarak kulağınıza erişecek olan hadi hariri yine karşınıza çıkıyor. hadi'ni o'reilly üzerinde ekim 2016'da şu anki güncel versiyon v1.1 de hesaba katılarak yayınlanmış iki video serisi var:
    - ıntroduction to kotlin programming (5 saat)
    - advanced kotlin programming (3 saat)

    bu yolu seçenler için tavsiyem ise önce introduction videolarını izleyin. game of thrones'un 11. sezonunu izler gibi izlemeyin ama, videoyu durdurup "bi dakka lan, şu şöyle olsa ne olur" diyerek arkada bir şeyleri kırıp dökün, temelleri kavrayın. bunlar bittikten sonra kotlin koans'a saldırın, syntax'a alışın, takıldığınız yerde referanslara bakın, sonra advanced videolarını izleyin.

    bu adımlardan sonra az çok kotlin öğrendim, artık uygulamaya başlayayım diyorsanız. advent of code olur, project euler olur, bir şekilde gerçek problemler üzerinde çözümler için dili kullanmaya başlayabilir ve en önemlisi derin bir nefes alıp yeni yeni kotlin class'larını projelerinize ekleyip dönüşümün fitilini ateşleyebilirsiniz. unutmayın, google tarafından resmen destekleniyor bu dil. örneğin şurada android o örneklerinin tümünde kotlin alternatifi var. google nasıl yapıyor, nasıl yapmıyor falan biraz merak edin, clone edin, açın, değiştirin falan, yapın bir şeyler.
  • android tarafından resmi dil olarak değil, resmen desteklenen dillerden biri olarak kabul edilmiştir.

    resmi destek ne anlama geliyor? android studio ile dili dağıtma, ide içinde lint ile bu dile uygun optimizasyon seçenekleri sunma, resmi dokümantasyonlar sunma, bu dili içeren örnekler sunma vs.

    resmi dil ne anlama geliyor? "artık java değil buna geçiyoruz arkadaşlar, yeni proje açtığınızda varsayılan dil kotlin"

    aradaki fark önemli.
  • kotlin, jvm üzerinde çalışan,java ve c++'tan sonra android için desteklenen üçüncü programlama dilidir..syntax olarak java’ya benziyor.şuan için türkçe kaynaklar az ancak popülerliği artacak bir dil olduğu kesin o yüzden öğrenmenizi tavsiye ederim.java bilenlerin öğrenmesi çok da zor olmayacaktır zaten.

    kaynaklar:

    1.mobilhanem başlangıç seviyesinde türkçe bir kaynak. eklemeler yapılacağı söyleniyor.kotlin eğitimleri

    2.youtube'da 59 videoluk liste ile en büyük türkçe kaynaklardan birisi kotlin eğitim seti

    3.başka bir türkçe youtube listesi (16 video) kotlin temel eğitim seti

    4.udemy'de 28,5 saatlik kotlin&java ile android mobil uygulama kursu şuan 400tl den 30tl ye düşmüş durumda android o mobil uygulama kursu:kotlin&java

    5.o'reilly'nin hazırladığı bir ingilizce kurs.java bilenler için hızlandırılmış ancak bilmeyenlerde takip edebilir.ücretsiz deneme süresi var kredi kartı bilgilerine gerek olmadan kayıt olup izlemeye başlayabilirsiniz.kotlin programming

    6.kotlin.org dan pdf kitap (ing) kotlin-docs

    7.yine kotlin.org dan hızlı anlatımlı bir kaynak docs

    8.kotlin blog

    ek:top 5 fascinating facts about kotlin
  • (bkz: java yavaş ya yazılımcıları)

    bi bitin artik ya
  • scala ile go'nun çocuğu olmuş. ilk izlenimim güzel olduğu yönünde. 1.0'ı çıkınca bakmaya değer.
  • mayis 2017’den beri 3 farkli android projede kullandigim dil.
    son sayfada okudugum bazi entryleri android gelistirme bilgim uzerinden duzeltmek isterim.
    syntax olarak c#’a java’dan daha cok benzemektedir ve c#’a hic benzememektedir, java ile kotlin o kadar alakasiz dillerdir. sirf androidde kullanilan metod isimleri ayni diye syntax’in benzedigini soylemek yanlistir.
    c#, java gibi kati, geleneksel dillerden gecip de zorlanmadim diyen ya cinyıns’dir ya da yalancidir. ben sihirbaz goren maymun gibi kaldim bu dil ozellikle belirtmeden bunlari nasil biliyor diye.
    gelistiricileri dili gelistirirken scala ve c#’dan esinlendiklerini ima etmislerdir. ve syntax ve yordamlari anlatirken surekli scala ve c#’dan ornekler verirler, ayrica kotlin coroutines’leri de c#’in aync metodlarini biraz benzettim.
    java->kotlin cevrimi eger “bu java kodunun kotlin karsiligi nasilmis” diye bakmak icin degilse tam bir intihardir. canli projede komple projeyi convert edip 1200’un uzerinde nullable hatasi hatasi aldim, diger casting hatalarini saymiyorum.
    null safe falan degildir, en azindan pratikte degildir, sadece as3 ile cok uyumlu calisir ve npe verebilecek yerlerde uyarir ornegin serverdan bi degiskenin null gelmeyevegini garanti edemedigin icin sonuna ? ısareti ile nullable oldugunu belirtmek zorunda kalirsin ama ide seni henuz kodu yazarken uyarir npe hatasi verebilir diye.

    cok fazla detaya giremeyecegim ama en buyuk nimetleri;
    cok iyi lambda destegi,
    higher order fonksiyonlar,
    reified + inline fonksyonlar(reflection’un gucu adina)
    yazmasi cok kolay extensionlar
    asenkron isler icin kotlin coroutinesler(rxjava ile kiyaslayan gafildir, kullanimi kolay ama sadece amator eglendirir)
    data classlar
    static gibi kolay kullanimi olan ama static olmayan companian object
    dsl(ornek olarak model’inizi json yazar gibi doldurabilirsiniz veya fonksiyona parametre olarak fonksiyon verebilirsiniz)
    on tanimli fonksiyon parametreleri(eksikligi java’da onlarca kez overload metodlar yazma sebebi)
    sealed classlar
    synthetic ile xml’deki componenti view’de init etmeden yani findviewbyid kullanmadan direkt kullanabilirsiniz(tavsiyem “button1?.setoncl...” diye kullanin yani noktadan once ? koyun cunku bir kac kez npe almisligim var. ? koyarsaniz noktadan sonraki kismi eger null ise calistirma dersiniz

    sadece higher order extensionslar ve dsl kullanarak yazim seklinizi kendinize gore degistirebilirsiniz. hatta biraz abartirsak yeni bir dil ile yaziyormus hissi yasayabilirsiniz.

    mobilden yaziyorum yazim hatalarimin kusuruna bakmazsiniz artik

    edit: smartcasting’i unutmusum, yani siz a degiskeni string mi diye kontrol ederseniz; kontrol’un icinde a.length’i cagirabilirsiniz.
    eger if kontrolu icerisinde a ınt mi diye kontrol ederseniz a.length hata verir.
    edit 2: hem udemy’den video satin aldim hem de antonio leiva’nin kitabini aldim. ucretsiz olmasina ragmen giris seviyesi icin asagidaki linkteki kadar iyi ve oz anlatan bir kaynak gormedim diger kaynaklar ya 5 dk’lik isi 1 saatte anlatiyor ya da onemli olan seyleri ustun koru anlatiyor. java’dan gecis yaparken en yardimci olan video:
    [https://youtu.be/h_ogi8uudpa https://youtu.be/h_ogi8uudpa]
  • java kullanan android kurslarının azalarak bittiği bir dönemdeyiz. kotlin için kullanılabilecek bazı yararlı güncel kaynakları buraya bırakıyorum.

    1-) resmi google eğitimleri
    bir şeyi kendi kaynağından öğrenebiliyorsam mutlaka oraya giderim. burası google'ın resmi android eğitim sayfası. kotlin eğitimleri en üstte. android basics in kotlin isimli codelab tabanlı kurs, işin başlangıç noktası. video izlemek yerine codelab ile okuyarak ve pratik yaparak ilerlemek, video izlemekten çok daha iyidir. çok daha zordur ama çok çok daha faydalıdır. ileride dokümantasyon okumanıza faydası olur.

    2-) udemy - kotlin development masterclass
    video eğitimlerini sevmem dedim fakat denis panjuta çok iyi bir kurs hazırlamış. buradan faydalanmakta yarar var. an itibariyle native android geliştirme alanında udemy'nin en yüksek notlanmış kursu.

    3-) kotlin kitapları
    bazen youtube'daki hint arkadaşların bile değinmediği ama bilmeniz gereken konseptler olabiliyor. bir egzersizde takılı kaldınız diyelim. ve sorunuzun cevabı ne stack overflow'da var ne youtube'da var, hiçbir yerde yok. böyle durumlarda kitaplara başvurun. listedeki kitaplardan benim favorim kotlin in action.

    yukarıdaki 3 maddeden 2'si ücretli kaynaklar. paranız varsa satın alın. paranız yoksa google'da ve torrent mecralarında arama yapmayı öğrenin. bulamayacağınız hiçbir şey yok. yukarıdaki kaynaklar dahil. dolar olmuş 7 lira, hiç olmadığımız kadar fakiriz. bu kaynakları üreten insanların bize kızacağını sanmıyorum. gidin bu kaynaklardan öğrenin, yazılımcı olursanız da ilk maaşınızla dönüp bu kaynakları satın alıp android öğrenen birine hediye edin. yolunuz açık olsun.
  • udemy de 200$ dolarlık kotlin dersinin 10$'a düşmesiyle aldım ve şuan öğrenme aşamasındayım. inanılmaz yazılımcı dostu bir dil. java ile kıyaslanamaz bile. burada javaya yıllarını harcamış insanların kotlini kötüleme çabalarınıda anlıyorum ancak java konusunda uzman birinin kotlin dilinde kendini geliştirmesi çok kısa bir süre alır. tavsiyem boş laf yapmayıp kotlin kasmaları.
  • function tanımlarken kullanılan fun keyword'ünü her gördüğümde yüzüme bi gülümseme geliyor nedense. bu functıon'ı kullanırken eğlen, eğlenceli bir function geliyor diyor sanki bana.
  • ya jvm bytecode ya da javascript'e derlenebiliyor.

    ruya gibi.
hesabın var mı? giriş yap