Ana Sayfa Slider Blog Programlama Dilleri Son Dakika

Flutter vs React Native

Flutter vs React Native

Bu yazıda neler bulacaksınız?

Herkese merhabalar. Bu yazımız mobil programlamaya başlamak isteyen ama ne kullanacağına karar veremeyenlere yönelik olacaktır. Zaten bunlardan birini kullanıyorsanız diğeriyle arasındaki farkları öğrenmiş olacaksınız. Keyifli okumalar dilerim. Hadi başlayalım.

Flutter Nedir ?

Flutter, 2017 yılında Google tarafından oluşturulan açık kaynak kodlu geliştirme kitidir. Android, IOS, Windows, Mac, ve Linux için uygulama geliştirme amaçlı kullanılmaktır.

Olumlu ve Olumsuz Yanları

Flutter’ın en büyük artısı, tek bir programlama dili ile hem IOS hem de Android için uygulama geliştirebilme imkanıdır.

Hot Reload: Hot reload, hızlı yazılım geliştirme imkanı sağlar.

Daha az test: Flutter testlerini aynı anda IOS ve Android için çalıştırır. Bu yüzden daha az test yapılmış olur ve maliyette yarı yarıya bir azalma gözlenir.

Widget’lar: Flutter içerisinde çok fazla widget bulundurur.

Hızlı Build: Tek platform üzerinde yazılım geliştirildiği için hızlı build imkanı sağlar.

MVP: Flutter’ın kullanıcılara sunduğu MVP desteği projelerinize hız kazandıracaktır.

Kütüphaneler: Flutter çoklu kütüphane kullanımını destekler. Fakat bu desteği eklenen her kütüphane için geçerli değildir.

Destek: Geliştiricelerin ihtiyaçlarından birisi de yazılım geliştirirken karşılaştıkları sorunlara çözüm bulabilmektir. Flutter, CI platformlarını desteklemez. Bu sebeple geliştiricilerin build ve test işlemleri için özel scriptler kullanması gerekir. Bu da projenin hızını olumsuz anlamda etkileyebilir.

Risk: Google, Flutter’ın yaratıcısı olduğu için bu teknolojinin arkasındaki tek isimdir. Flutter açık kaynak kodlu bir yazılım olmasına rağmen Google’ın desteği olmadan gelişmesi pek mümkün değil. Bu da Flutter’ı riskli bir duruma sokuyor.

Boyut: Uygulama boyutu çok önemli bir kriterdir. Kimse telefenunda gereksiz yer kaplayan bir uygulama indirmek istemez. Burada Flutter’ın eksiğini görüyoruz çünkü Flutter ile yapılmış uygulamalar, Native ile yapılmış uygulamalara göre daha fazla alan ihtiyacı duyarlar.

React Native nedir ?

React Native, 2015 yılında Facebook tarafından oluşturulan açık kaynak kodlu bir UI yazılım framework’tür. Geliştiricilerin yerel yazılımlarla birlikte React framework’ünü kullanmasını sağlayarak Android, IOS, Windows ve web için uygulama geliştirme amaçlı kullanılır.

Olumlu ve Olumsuz yanları

Güncelleme: React Native, Live Reload ve Hot Reload özelliklerine sahiptir. Bu özelliğin faydası biz kullanıcılara çok hızlı güncelleme imkanı sunmasıdır.

Tek Geliştirme Ortamı, İki Farklı Platform: React Native’de yapılan bir projenin iki farklı platforma çıkabilmesi hem zaman hem de maliyet açısından çok büyük tasarruf sağlar. Bu özelliği barındırması React Native’in en iyi yanlarındandır.

JavaScript Desteği: JavaScript dili programcılar arasında yaygın olarak kullanılmaktadır. React Native’in de JavaScript destekliyor olması olumlu yanlarından saymamız için yeterli bir sebep.

Oturmuş Bir Platform: React Native’in ilk sürümü belirttiğim üzere 2015 yılında çıkmıştı. Yıllar içerisinde kullanıcıların sorunlarına çözümler bulundu ve React Native çok ciddi bir ilerleme kaydetti.

Büyük Bir Topluluk: Topluluk içerisinde bulunan uzman kadro sürekli yeni güncellemeler paylaşıyor. Bu sayede kullanıcılar teknolojiyi daha kolay ve hızlı öğreniyor.

Test Aşaması: Bilindiği gibi her uygulama belli aşamalarda test sürecine tabii tutulur. Bu test uygulamanın belirlenen platformda düzgün çalışıp çalışmadığını anlamak için yapılır. React Native’de yapacağınız test ile aynı anda hem Android, hem IOS platformlarında kontrollerinizi gerçekleştirmiş olursunuz. Böylelikle hem zamandan tasarruf edersiniz hem de verimliliğiniz artar.

Tamamen Native Değil: Native uygulamaların en öne çıkan yanı performans ve donanıma hakim olmasıdır. React Native tamamen Native bir uygulama değildir.

Kısıtlı Bileşenler: React Native’in popüler ve altı yıllık geçmişi olmasına rağmen hala bazı bileşenlerden yoksundur. Sadece temel bileşenleri desteklenmektedir.

Terk Edilmiş paketler: React Native çok sayıda kütüphaneye sahip olduğundan dolayı kullanıcılar uygulama geliştirme sürecinde hiç kullanılmayan paketlerle karşılaşabilirler.

Arayüz: React Native yerel sistem araçlarını kullandığı için burayı etkileyecek bir güncelleme büyük sorunlara yol açabilir.

Büyük Dosya Boyutu : React Native ile oluşturulmuş bir projenin ne kadar JavaScript kodundan ibaret olduğu düşünülse bile aslında olay öyle değildir. Çünkü Android bu kodu direkt derlemek yerine içerisine kütüphanelerin de eklenmesini bekler. Bu da React Native’de geliştirilen bir projenin diğer Native uygulamalarda geliştirilen projelere göre daha yüksek boyutlu olmasına sebep olur.

React Native ve Flutter Arasındaki farklar(Özetle)

1-Programlama Dili

Flutter’da proje geliştirirken, Google tarafından geliştirilen Dart dili kullanılır. React Native’de ise JavaScript kullanılır. Nesneye yönelik programlamada tecrübeniz varsa Dart dilini öğrenmekte sorun yaşamayacaksınız. Ama daha yaygın kullanılan bir dil öğrenmek, onunla uygulama geliştirmek istiyorum derseniz programlama dili olarak JavaScript’i kullanan React Native’i seçmelisiniz.

2- Mimari Yapı

Bir mobil uygulama geliştirme teknolojisi seçerken mimari yapı göz önünde bulundurulması gereken husustur.

Flutter, React Native’e göre daha genç olduğu için mimari yapı olarak daha kararsızdır. Flutter kullanıcıları arasında popüler olan birkaç mimari vardır. En popüler olanı da BLoC mimarisidir. React Native’de sistem daha oturaklıdır, Facebook imzalı Flux mimarisini kullanır.

3-Kurulum

Kurulum aşaması yazılıma yeni başlayanlar için daha çok önem arz ediyor. Burda karşılaştırılacak husus hangisinin daha kolay kurulabilir olduğudur.

Flutter, resmi web sayfasından indirilip kurulabilir. Fakat MacOS’ da flutter.zip dosyası indirildikten sonra PATH değişkeni ekleyerek kurulmalı. React Native ise NPM kullanılarak indirilimelidir. JavaScript’e aşinaysanız kurulum süreci sizin için daha kolay olacaktır.

4-Verimlilik

Flutter yeni bir framework olduğu için projeniz ilerledikçe karmaşıklığa sürüklenecektir. Dart diline yeni başlayacaksanız başlarda zorluk çekmeniz muhtemel. React Native’de ise işler daha kolay ilerliyor. JavaScript’e dayandığı için öğrenmeniz daha kolay olacaktır. Duyurulan yeni özelliklerine kolayca uyum sağlayıp uygulayabilirsiniz.

5-Topluluk Desteği

React Native, Flutter’dan önce piyasaya sürüldüğü için daha köklü bir ekosisteme sahip. Fakat Flutter, React Native’e kıyasla daha genç olmasına rağmen çok hızlı bir büyüme gerçekleştirerek şuan React Native’e yetişmiş durumda.

6-Dökümantasyon

Dökümantasyon bu teknolojiyi ilk defa kullanacaklar için büyük önem arz ediyor. Örneğin,IDE kurulumu, proje yapılandırması gibi aşamalarda dökümantasyonun yararını göreceksiniz.

Flutter dökümantasyon konusunda oldukça başarılıdır. Detaylı anlatıma ve anlaşılabilir bir dile sahiptir. React Native ise Flutter kadar kullanıcı dostu değildir. Dökümantasyon konusunda yetersizdir.

7-Test Süreci

Test süreci, programcı için oldukça önemli bir süreçtir. Burada karşılaşacağı zorluk en alt seviyede olmalıdır.

Flutter, kendi test modüllerini kurulum aşamasında içinde bulunduruyor. Bu modüllerin nasıl kullanıldığını dökümantasyon yardımıyla öğrenebillirsiniz. React native ise test konusunda Flutter’ın gerisinde kalıyor. Test için çoğunlukla üçüncü taraf uygulamalar kullanmak zorunda kalacaksınız.

Hangi tür projelerde Flutter seçilmeli?

Kısa sürede MVP oluşturacaksanız Flutter’ı seçebilirsiniz. Bunun yanında kullanıcı merkezli bir arayüz istiyorsanız Flutter sizin için doğru tercih demektir.

Flutter ile Yapılmış Bazı Uygulamalar

  • Google ürünleri – Stadia, Google Ads, Google Assistant
  • Reflect
  • Alibaba Group – Xianyu
  • Groupon
  • eBay Motorları
  • Tencent – DingDang, AITeacher, K12, QiDian, Mr. Translator, Now Live
  • Hamilton Musical
  • Philips Hue

Hangi tür projelerde React Native seçilmeli?

Büyük bir projeye başlamak gibi bir niyetiniz varsa React Native’i seçmeniz daha doğru olacaktır.

Güçlü bir desteğe sahip olması sizi React Native’i seçmeye iten başka bir neden olabilir. Kodunuzu, web ve masaüstü uygulamasında da kullanmayı planlıyorsanız React Native’i seçebilirsiniz.

React Native ile Yapılmış Bazı Uygulamalar

  • Facebook ürünleri – Facebook, Facebook Analytics, Facebook Ads Manager,
  • Instagram
  • Bloomberg
  • Pinterest
  • Discord
  • Tesla

Kaynakça

Adem HAN
Adem HAN
Merhabalar, ben Adem. Kütahya Dumlupınar Üniversitesi, Bilgisayar mühendisliği bölümü 1. sınıf öğrencisiyim. Kendimi mobil alanda geliştirmeye çalışıyorum.
https://www.linkedin.com/in/adem-han-a527b4202/

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir