Flutter mı, React Native mi, Kotlin KMM mi? Çapraz Platformda Doğru Seçim Hangisi?

Mobil uygulama dünyasına adım atmak isteyenler veya mevcut yeteneklerini genişletmeyi düşünen geliştiriciler için en kritik sorulardan biri şüphesiz: “iOS ve Android için uygulama geliştirirken hangi teknolojiyi seçmeliyim?” Amacım, “Hangi programlama dilini öğrenmeliyim?” sorusuna net bir cevap arayanlara yol göstermek ve karar verme süreçlerini kolaylaştıracak içerik sunmaktır. Android dünyasında en çok tercih edilen iki programlama dili, Flutter ve React Native’dir. Bu diller, iOS ve Android için muazzam çapraz platform geliştirme imkanları sunar; ancak benim de kullandığım, adını duyduğunuz ve sağlam gelen Kotlin KMM için de artık bunu söyleyebiliriz. Şimdi bu üç dili, çapraz platformda kendi çapımda kıyaslayacağım.

Android telefonlara uygulama geliştirme hedefiyle Kotlin dilini seçtim. Udemy’den kurs alırken herkes gibi puanlama ve öğrenci sayısına bakarak bir kurs satın aldım; böylece Atıl Samancıoğlu ile karşılaştım. İyi ki de almışım, bunu bugün bile hâlâ söylüyorum. Kurstan detaylı bahsetmeyeceğim; makalenin uzamasını istemediğim için sadece birkaç önemli noktayı vurgulayacağım. Atıl Hoca’nın, kursa başlamadan önce ya da kursun ilk eğitim kısımlarında – yanlış hatırlamıyorsam – Java ve Kotlin üzerinde duracağını belirttiğini hatırlıyorum. Kendisi, Java’nın daha eski olduğunu, çoğu firmanın projelerini aktif olarak Java programlama dilinde geliştirdiğini ve sektörde Java’nın önemini vurgulamıştı. Ancak Kotlin’in artık Google firması için birincil dil olduğunu, yine de Java’ya desteğin devam edeceğini de belirtmişti. Kendisi de bundan sonra Kotlin programlama dilini önermişti. Ben de daha modern olması ve Google’ın etkisiyle Kotlin programlama dilini seçmiştim.

Kotlin’de ufak ufak projeler yapıyordum. Kendimi geliştirmem gerektiğini düşündüğüm bir yandan, üzerine bir şeyler inşa etmem gerektiğine inanarak Compose yapısıyla tanıştım. HTML ve CSS yapısını bildiğimden, ona benzeterek oldukça modern bir arayüz tasarlayabildiğimi fark ettim ve öğrenmekte zorluk çekmedim. Kolayca öğrendim; ancak bu da beni tatmin etmedi. “Daha ne yapabilirim?” diye düşündüm ve iOS tarafına geliştirme isteği doğdu. Swift veya Objective-C öğrenmek istemediğimden, araştırmalarım sonucunda React Native ve Flutter ön planda görünüyordu.

Keşke bunlardan birine başlasaydım diye pişmanlık duymuştum. Ancak kursun sonunda, o zamanlar beta aşamasında olan Kotlin KMM yapısı hakkında Atıl Hoca’nın “Çalışıyor mu? Nasıl?” başlıklı opsiyonel bir bölüm hazırladığını görünce içim rahatladı. Kotlin KMM olmasaydı, o zamanki durumlara bakarak kararımı verecektim. İyi ki de Kotlin’i seçmişim; şimdi Kotlin KMM’de bir not alma uygulaması yapıyorum, hatta bitmek üzere ve buna hatırlatıcı da ekledim.

Ufak iOS ve Android’de belirli tasarımlar kaldı. Zaten iOS tarafına uygulama geliştireceğiniz ve uygulamayı yayınlayacağınız zaman, benim gibi, hangi dili tercih ederseniz edin, mecburen Mac almanız yani Xcode programını kullanmanız gerekecektir. Flutter ve React Native’de tasarım kısmını bildiğim kadarıyla tamamen aktarabiliyorsunuz. Kotlin KMM’de ben tasarımı mecburen Xcode üzerinde tekrar oluşturuyorum; ancak yine uygulamaya ikon veya uygulamanın ismi için mecburen Xcode’a ihtiyaç duyulur. Flutter veya React Native fark etmez, bazı iOS’un kendine özgü işlemleri olduğundan MacBook şarttır, bilginize.

Her teknolojinin avantajı farklıdır. Önemli olan, sizin hedefinize ve öğrenme tarzınıza en uygun olanı seçmeniz. KMM, native gücüyle öne çıkarken; Flutter ve React Native, hızlı prototipleme ve geniş topluluk desteğiyle cazip olabilir.

Not: Flutter (Dart dili kullanır), React Native (JavaScript/TypeScript kullanır) birer framework’tür.

Yorum yapın