
Merhaba dostlar bu yazımızda flutter teknolojisinden ve native olarak android ve iOS geliştirmekten farkı nedir , flutter’ın avantajlarından ve dezavantajlarından bahsedeceğim herkese iyi okumalar.
Öncelikle bu yazının bir yol gösterici olmadığını sadece kendi deneyimlerimden yola çıkarak sizlere fikrimi açıklamak niyetli olduğunu belirtmekte fayda var.
1 yıldır native android uygulama geliştirmekle uğraşıyorum. Flutter son zamanlarda popülerliğini artırmasıyla benimde radarıma girdi ve merak edip ufak bir uygulama yazmaya çalıştım. Gelin bakalım serüven nasıl işledi.
Flutter Nedir ?
Flutter, basit bir anlatımla Google tarafından, crossplatform uygulama geliştirmek isteyen geliştiriciler için geliştirilmiş açık kaynak kodlu (open source) bir teknoloji. Crossplatform dediğimiz olay ise tek bir kod yapısıyla hem android hem de iOS platformuna uygulama yazmanıza imkan sağlıyor. Flutter’dan önce React native, ionic gibi teknolojilerde crossplatform yazmamıza imkan veriyordu bunlardan farkı ne diyebilirsiniz birazda ondan bahsedelim.
Flutter vs React Native
React native’de crossplatform uygulama yazmanıza imkan sağlayan Facebook tarafından geliştirilen açık kaynak kodlu bir teknoloji. Programlama dili olarak javascript dilini destekliyor. Bu sayede web yönünde bir geçmişi olan kişiler için adapte olmak ve gelişmek çok daha kolaylaşıyor.
React Native ile Geliştirilen Uygulamalar
Instagram, Facebook, Facebook Ads Manager, Uber, Walmart, Discord, Delivery, Salesforce, Pinterest, Skype, Bloomberg, Wix örneklerini verebiliriz.
Flutter ile Geliştirilen Uygulamalar
Realtor, Tencent , Google Assistant, Square, Alibaba, Ebay, Groupon, Reflectly, Google Ads gibi uygulamaları örnek olarak verebiliriz. Daha fazlasına flutter’ın resmi web sitesinden ulaşabilirsiniz.
React Native avantaj ve dezavantajları
Avantajlar
Yaygın bir olan JavaScript ile yazılması
CSS Flexbox ile desteklenmesi
Yazım ve okunabilirlik kolaylığı
Destek ve toplulukların fazla olması,
Yaygın 3rd parti component
React geliştiricileri için kolay adaptasyon
Dezavantajlar
Component sayısı nedeniyle bazı HTML yapıların uyarlanması
Çıkan her paketin işletim sistemi güncellemesi sonrası güncellenmiyor olması
iOS ve Android’te ekstra geliştirme yapmak örneğin : çentikli ekran
Flutter avantajları ve dezavantajları
Avantajlar
Çok zengin dökümantasyon
120 FPS’de uygulamalar
Hazır widget’ler ile çok hızlı hazır tasarım kalıplarına imkan sağlaması
iOS ve Android’te neredeyse aynı görüntüyü elde edebilme seçeneği
Yazımı kolay ve hızlı
Makina dilinde derlendiğinden ötürü hızlı olması
Dezavantajlar
Yeni bir dil için adaptasyon (Dart)
Yazılan kodun devamlı iç içe yazılması sonucu okuması ve takip etmesi zor
İleri seviye bir sorunda çözüm bulamamak
İhtiyaç anında hali hazırda olmayan widget’lerin bulunma ihtimali
Yaygınlığın az olması
Google’ın platform desteğini her an çekebilme ihtimali
Minimum APK boyutunun fazla olması

Sonuç olarak
Her ne kadar flutter ve react native ile yazılmış uygulamalara örnek versekte bu uygulamalar büyük şirketlerin birer uygulaması ve büyük şirketlerin genelde android ve iOS geliştirme departmanları bulunur. Native olarak uygulama geliştirip yenilikleri uygulamalarına entegre etmek, olası sorunlara anında müdahale etmek ve sistemsel olarak gerekli olan tüm özelliklere ulaşmak isteyecekleri için native olarak uygulamalarını geliştirirler. Örnekte verdiğimiz hiçbir uygulama tümüyle flutter veya react native kullanılarak geliştirildiğini düşünmüyorum.
Flutter, React native gibi crossplatform teknolojileri çok güzel gelişmeler bundan yana bir sıkıntı yok. Küçük startuplar, kendi kendine uygulama geliştiren insanlar, bütçesi yeteri kadar fazla olmayan şirketler ve ortaya hızlıca bir ürün çıkarmak isteyenler için biçilmiş kaftan.
Bunların harici büyük şirketler, bütçesi olan ve fazla sayıda müşteriye ve kullanıcıya hitap eden şirketler genel olarak native olarak uygulamalarını geliştiriyorlar ve uzunca bir süre de bu şekilde ilerleyeceğini düşünüyorum.
Burada sizlere native seçin react native veya flutter seçin gibi seçim yaptırmıyorum. Bu seçimi kendiniz verebilmeniz gerekiyor. Teknolojiler yıllar geçtikçe gelişiyor, durum ve şartlara göre teknoloji seçimini yapmanızda fayda var. Tek bir teknolojiyi öğrenip sonsuza kadar onunla çalışamayabilirsiniz. Diğer teknolojilere de adapte olarak ihtiyacınız dahilinde hangisinin daha doğru bir seçim olacağına karar verip çalışmalarınızı o yönde yapmanız yararınıza olacaktır.