React Native vs Flutter

Furkan Kılıç
Team Kraken
Published in
5 min readMar 24, 2021

Evet, biliyorum bu konu defalarca kez yazıldı, konuşuldu. Buna rağmen bu teknolojilerle alakalı kendi yaşadığım deneyimlerime göre karşılaştırma yapmak istiyorum. Sonunda belirtmeyi düşündüğüm gerçeği en başta söylemek istiyorum. Bizler yazılım geliştiricileriz, bir teknolojinin fanatiği olmamalıyız. JQuery, PHP, Objective-C vs vs gibi eskiden çok popüler olan fakat şu an kullanımları gittikçe azalan teknolojiler ve diller hepimizin malumu. Bu teknolojileri birer araç olarak kullanıp, doğru teknolojiyi doğru projede kullanmayı öğrenmeliyiz. O yüzden lütfen, eğer bu teknolojilerden birini çok seviyorsanız dahi, söylediklerimi tarafsız bir şekilde okumaya çalışın. Hadi başlayalım.

React Native

Öncelikle öğrendiğim ve profesyonel olarak çalışmaya başladığım ilk teknolojinin React Native olduğunu belirtmem gerek. 3 yıldan uzun bir süredir React Native ile uygulamalar geliştiriyorum ve bu teknolojiyi çok seviyorum. Hatta bu teknolojiyi daha yakından takip etmek amacıyla zamanında React Native EU konferansında gönüllü olarak dahi bulundum. Bu açıklamayı yaptıktan sonra React Native’in güçlü taraflarını sıralamaya başlayalım.

JavaScript

React Native’in ilk ve en önemli avantajının, kendisinin bir JavaScript framework’ü olması olduğunu düşünüyorum. Bildiğiniz üzere JavaScript en yaygın kullanılan programlama dillerinden bir tanesi. Bunun sayesinde halihazırda JavaScript bilen insanların React Native öğrenmesi çok pratik. Ayrıca eğer yazılıma yeni başlayan bir kişiyseniz ve sadece mobil alanda değil Frontend ve Backend gibi farklı alanlarda da ürünler geliştirmek istiyorsanız, JavaScript ile hepsini halledebilirsiniz.

Topluluk

Bu elbetteki Flutter’ın da güçlü olduğu bir alan fakat az önce de bahsettiğim gibi React Native’in bir JavaScript framework’ü olması burada da çok büyük bir avantaj sağlıyor. React Native çok daha fazla kullanılan, daha fazla topluluk desteği ve kullanabileceğiniz kütüphane bulunduran bir teknoloji. Üstelik JavaScript kütüphanelerini de kullanabildiğinizi hesaba katarsak neden güçlü bir topluluğu var dediğimi daha iyi anlayabilirsiniz.

İş Olanakları

Yukarıda bahsettiğim sebeplerle birlikte Flutter’dan yaklaşık 2 sene daha önce piyasaya çıkmasının da etkisiyle, aktif olarak React Native kullanılan firma sayısı ve buna bağlı olarak da aktif iş ilanlarında React Native’in bariz bir üstünlüğü var.

Flutter

Geldik Flutter’a. Bu teknoloji benim için de React Native’e kıyasla daha az tecrübeli olduğum bir alan. Yaklaşık 1 yıl önce Team Kraken’a dahil olduğumda Flutter ile ürün geliştirmeye başladım. Başlarda biraz önyargılı olsam da itiraf ediyorum, Flutter’ı çok sevdim. Hangisini daha çok sevdiğimi açıklamadan önce Flutter’ın avantajlarına göz atalım.

Nesne Tabanlı Programlama (OOP)

Yukarıda da bahsettiğim gibi ilk öğrendiğim dil JavaScript’ti. Her ne kadar okulda Java ile OOP dersi almış olsam da çok fazla hakim olduğum bir yaklaşım değildi. O yüzden ilk başlarda Flutter uygulaması geliştirirken ve OOP mantığını oturturken zorlandım açıkçası. Fakat bir kere oturttuktan sonra neden bu kadar popüler bir yaklaşım olduğunu çok daha iyi anladım. Öncelikle çok daha temiz ve hatasız ürün çıkarabildiğimi fark ettim. Baştan sona OOP’yi anlatmayacağım burada tabii ki, merak edenler OOP yaklaşımı hakkında daha detaylı yazılar okuyabilir. Fakat belirtmek istediğim, Flutter ile ürün geliştirmeye başladıktan sonra React Native’de, en azından Type Safety özelliği aramaya başladım ve o zaman insanların TypeScript’e neden yöneldiğini çok daha iyi anladım.

Performans

Flutter uygulamayı Skia adını verdikleri bir grafik motoru sayesinde donanım seviyesinde native olarak çiziyor. Bu sayede elde ettiğimiz uygulamalar React Native’e oranla çok daha performanslı çalışıyor. React Native’in en büyük problemlerinden olan, uygulama büyüdükçe yavaşlama sorununa çok net bir cevap veriyor Flutter.

Topluluk & Google Desteği

Öncelikle Flutter’ın topluluk büyüklüğü henüz React Native kadar büyük değil, bunu biliyoruz. Fakat bu, o kadar da büyük bir sorun değil. Çünkü React Native’de bir sürü farklı özellik için kütüphanelere mecburken, Flutter bunları hazır bir şekilde kendi içinde zaten sunuyor. Ayrıca hızlıca büyüyen ve çok aktif olan bir Flutter topluluğu da mevcut. Bu da gün geçtikçe Flutter’ı daha da ileriye taşıyor. Yine de bunca şeyin yanında bence en önemli ve birazda korkutucu olan şey Google’ın bu teknolojiye verdiği destek. Hepimiz biliyoruz ki Google kendi ürünlerini öldürmekle meşhur olan bir firma. Zaten bu yüzden “korkutucu” kelimesini kullandım. Ama eğer şu anki gibi desteğine devam ederse, Flutter’a çok büyük bir güç kattıkları kesin. Flutter konusunda iyi olan yazılımcılara GDE gibi bir unvan vermeleri de insanları en motive eden şeylerden birisi olduğunu düşünüyorum.

Sonuç

Her iki teknolojiyle de bir sürü farklı uygulamalar geliştirmiş birisi olarak rahatlıkla söylebilirim ki aklınızdaki projelerin çoğunu her iki teknoloji ile de çok rahatlıkla geliştirebilirsiniz. Birbirlerine karşı olan üstünlüklerinden zaten yukarıda bahsettim, fakat yine de benim yorumumu merak ediyorsanız ben iki farklı profile iki farklı sonuç sunuyorum.

  1. Eğer sadece mobil uygulama değil, Frontend ve Backend gibi farklı alanlarda da ürünler geliştirmek istiyorsanız, React Native yani aslında JavaScript öğrenmek sizin için çok daha mantıklı bir karar. JavaScript’i çok iyi seviyede öğrendikten sonra, bu alanlar arası geçiş yapmak çok daha kolay oluyor.
  2. Eğer sadece mobil tarafla uğraşmayı düşünüyorsanız ise bence Flutter çok daha güçlü ve derli toplu bir teknoloji. Hem daha temiz ve performanslı ürünler ortaya koyabilir hem de belki ileride GDE olabilirsiniz.

Genel olarak fikirlerimden bahsettim. Ben aktif olarak ikisiyle de geliştirme yapmaya devam ediyorum ve bu teknolojiler de gelişmeye devam ediyor. 2021'nin Mart ayında görüşlerim bu şekilde ama eğer siz bu yazıyı yıllar sonra okuyorsanız, herhangi biri diğerine çok bariz bir üstünlük kurmuş olabilir ya da belki ikisi birden piyasadan silinmiş olabilir. O yüzden herkese sadece bir teknolojinin geliştiricisi olduğu değil, doğru projede doğru teknolojiyi kullanabilen bir kariyer diliyorum.

Eğer söylemek ya da eklemek istediğiniz şeyler varsa bana Twitter hesabım üzerinden ulaşabilirsiniz. Bu makaleyi yazarken kullandığım diğer kaynaklar aşağıda, onlara da göz atabilirsiniz.

https://blog.codemagic.io/flutter-vs-react-native-a-developers-perspective

Her hafta düzenli olarak içerik üretmeye devam ediyoruz, bizleri Twitter ve Medium üzerinden takip edebilirsiniz. Görüşmek üzere.

https://twitter.com/_teamkraken_

--

--