Kotlin is a very flexible programming language. You have a chance to write more readable and good-looking code. The only limit is your imagination and creativity. I will give you some examples that I use but first, let’s look at the features of Kotlin which may be useful for us.

What are the features of Kotlin to make codes handsome?

Extension Functions

As its name implies, extension functions provide us to extend features of a class. You may add another behaviour into a class without inheriting it. To write good-looking code, naming is the key factor. Imagine that you have a class which is not under your control. It comes…


Son zamanlarda Kotlin’in adını Android Community içerisinde çok duymaya başladık. Ben de ‘Bu Kotlin nedir?’ diye merak ettim ve araştırmaya başladım. Kotlin ile ilgili İngilizce bir çok kaynak ve tutorial mevcut, fakat Türkçe bir kaynağa rastlayamadım ve bu blog yazısını yazmaya karar verdim.

Bu tutorial’da basit bir To-Do uygulaması yazacağız. RecyclerView, EditText ve Button’dan oluşan basit bir arayüz ile kullanıcı listeye eleman ekleyebilecek.


Mobile apps are not like web apps. People download your apps from the app stores and update them if there is a new version. They may use old version of your app anytime. Let’s say old version of your app is not functional anymore. Then, you fix that and upload your new version to store but users have not updated yet. So, they think something is wrong with your app and it sucks :(


I was using Crashlytics to report crashes in my Android apps. Last Google I/O, Firebase was launched with expanding its services. One of them is Firebase Crash Report tool. I wanted to give a try to it, but I could not stop using Crashlytics as well. It was working properly. I also wanted to compare them. Finally, I implemented them together but there was a problem. It was too much code to log an exception. Then, I found Timber which is a logger utility library to solve this problem.

That is the code which shows the problem below. There are…


Google I/O took place at Shoreline Amphitheatre in Mountain View, California this year. I was at I/O with four of my Monitise colleagues. The event was outdoors, so Google thought of every detail and provided participants with a “swag” pack which included sun protection and UV sunglasses. What’s more, there was a Google I/O 16 branded cardboard, a mug, a fancy buff and t-shirt in the swag pack. Put all the goodies aside, sessions started with an interactive video and continued simultaneously in ten different stages. A great number of new products and new technologies have been announced at Google…


Bildiğiniz gibi Java, JDK 8 ile birlikte lambda expression’a destek vermeye başladı. Fakat, Android’de hala Java 7 kullanıldığı için λ‘yı doğal yollardan kullanamıyoruz. Bunun için bazı abiler yememiş içmemiş Java’nın eski sürümlerinde de kullanalım diye Retrolambda’yı icat etmişler. 🙃 Artık biz Android geliştiricilerde projelerimizde λ kullanabiliriz. Abinin biri de sağolsun işimizi kolaylaştırmak için bir gradle-plugin yazmış. Android’de bu plugin’i kullanarak Retrolambda’yı projemize dahil edeceğiz. Hadi başlayalım.

1- Projemizin root dizinindeki build.gradle’a kalın punto ile belirtilmiş olan satırı ekliyoruz.

buildscript {
repositories {
jcenter()
}…

Bu blog yazısına girdiğinize göre programlama konusunda epey bir yol katettiniz. Şimdi sıra geldi callback (veya listener’da diyebiliriz) yapısını anlamaya. Şu ana kadar JAVA veya onun gibi bir nesneye dayalı programlama dili ile kod yazmışsanız ve hala “yahu bu Interface’ler bana hiç lazım olmadı, nerede kullanıyoruz bunları?” gibi bir ifade kullandıysanız, bu yazı sizin için güzel bir örnek olacak diye umuyorum.

Her zamanki gibi bu budur, şu da şudur tanımlamaları yerine olabildiğince basit bir örnekle konuya açıklık getirmeye çalışacağım. Düşündüm düşündüm, aklıma sadece random bir sayı üreten bir konsol uygulaması yazmak geldi. (çok yaratıcıyım değil mi? :) )

Neyse, çok…


Şu an çalıştığım projede önüme gelen tasarımda viewpager’ın sağında ve solundaki iki ok ile sayfaların değiştirilmesi isteniyordu. Ben de ViewPagerArrowIndicator’u yazdım ve başkalarına da lazım olur diye paylaştım. İsteyen olursa rahatlıkla kullanabilir yada forklayıp kendi isteklerine göre değiştirebilir.

GitHub link: https://github.com/sembozdemir/ViewPagerArrowIndicator

Projenize eklemek için app/build.gradle dosyasında aşağıda belirtilen değişiklikleri yapın.

repositories {
maven { url "https://jitpack.io" }
}

dependencies {
compile 'com.github.sembozdemir:ViewPagerArrowIndicator:1.0.0'
}

Kullanması çok basit. Viewpager’ınızı ViewPagerIndicator ile sarmanız yeterli.

<com.sembozdemir.viewpagerarrowindicator.library.ViewPagerArrowIndicator
android:id="@+id/viewPagerArrowIndicator"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v4.view.ViewPager …

Yazılım geliştirirken hepimizin başına bazı zorluklar gelmiştir. Proje büyüdükçe, sınıf sayıları arttıkça işin içinden çıkamadığınızı, kodların içinde kaybolduğunuzu farkedersiniz. Bunu önlemek için sürekli Refactoring yapmalı ve kodumuzu kötü kokulardan arındırmalıyız. Her zaman yazdığımız kodu daha okunabilir ve tekrar kullanılabilir hale nasıl çeviririm diye düşünmeliyiz.

Bir yazılım için değişim kaçınılmazdır. İstenen değişiklikleri projeye kolay uygulayabilmek için yazılımın modüler bir yapıya sahip olması ve birimlerin birbirine olabildiğince az bağımlı olması gerekir. Test yönelimli geliştirme yaparsak projenin herhangi bir yerinde yapılan değişikliğin sistemin diğer birimlerini etkilemediğini garanti etmiş oluruz.

Unit Testing’de bir method veya sınıf yazmadan önce onun testini yazıyoruz. Sonra, yazılacak methodun…


Merhaba arkadaşlar,

Sizlere katıldığım bir eğitim kursundan bahsetmek istiyorum. Bu yazının, bu tür aktivitelerden haberdar olmayan, çevresinden duymuş fakat pek fazla bilgisi olmayan arkadaşlara faydalı olacağına inanıyorum.

Avrupa Birliği’ne üye ve bizim gibi üye olmayıp fakat program ülkesi olan ülkelerin finansal destekleri ile yürütülen ve Erasmus + adı altında yürürlükte olan bir program var.Erasmus öğrenci değişimleri , gençlik değişimleri , eğitim kursları vb. birçok program bu Erasmus+ programı altında toplanıyor.Bu program hakkında daha detaylı bilgileri Ulusal Ajansımızın internet sitesinden öğrenebilirsiniz.

Benim katıldığım proje ‘’Your Europe’’ isminde Training Course olarak geçiyor. Moldova’nın Vadul lui Voda isminde bir şehrinde 7–16 Ekim 2015…

Semih Bozdemir

Kotlin Enthusiast & Android Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store