Benim tavsiyem native uygulamalar için Java ve multi platform için flutter. Kotlin android için resmi dildir evet ama aynı zamanda java da resmi dildir. Yani artık kotlini destekliyoruz javayı desteklemiyoruz gibi bir durum söz konusu değil. Kotlin javaya göre daha kolay ve konforlu ancak java gibi köklü bir dururken kotline yatırmak yapmak bana çok da mantıklı gelmiyor. Flutter da google tarafından destekleniyor ve yabancı freelancer sitelerinde çokça flutter ilanı var. Bu alana fazlası ile talep var.

Burada şöyle bir ayrım söz konusu, siz ne yapmak istiyorsunuz? Ben yazdığım kodla telefona istediğim gibi hükmedeyim, servisler yazayım, telefonla etkileşime geçeyim, telefonun kendisi ile içli dışlı uygulamalar yapayım diyorsan kesinlikle java veya kotlin native dilleri tercih et. Zira flutter ile bunları yapman pek mümkün değil. Ancak ben telefonun kendisi ile ilgilenmem, benim bir backendim olur ben onunla etkileşime geçer her şeyimi onunla hallederim dersen kesinlikle flutter. Bir restoran için online sipariş uygulaması yapmak istiyorsunuz diyelim, flutter ile çok rahat bir şekilde android ve ios için uygulamayı yapabilirsiniz. Böyle bir müşteri zaten sizden bunu talep eder, artık uygulamanın bir tarafını swift ile iosa göre bir tarafını java ile androide göre yapma devri yavaş yavaş kapanıyor.

Ancak telefonun kendisiyle etkileşime giren bir uygulama yapıyorsanız bunu flutter ile yapmak veya verimli bir şekilde yapmak pek mümkün değil. Örneğin bir lockscreen uygulaması yapayım, arkaplanda bir servis çalıştırayım bu servis de broadcastten bilgi alsın, telefon pili ile ilgili bilgi alayım, yaptığım uygulamayı bir bluetooth modülüne bağlayayım öyle işlem yapayım dersen fluttter ile ya bunlar yapamaz veya verimli yapamazsınız. Bu yüzden native uygulamalar için kotlin/java ikilisinden birini öğrenip ekstra olarak multi platform için de flutter öğrenin.