Kapat
Anasayfa 160 0

Flutter vs React Native

Talepler arttıkça artan taleplere karşılık teknoloji her geçen gün gelişmekte, yeni teknolojiler ortaya çıkmaktadır. Mobil teknolojileri de her geçen gün daha çok gelişmekte ve bu gelişmeye binaen yeni geliştirme ortamları kullanıma sunuluyor. Haydi gelin bu yazımızda iki teknolojiyi karşılaştıralım.

Flutter vs React Native

Platformları karşılaştırmaya girmeden önce bu iki teknolojiinin en büyük geliştirme platformları olduğunu hatırlatmakta fayda var. Her iki platformda uygulama geliştirmek için harika teknolojileri sizlerin kullanımına sunuyor. 

Kısaca Flutter

Bu iki teknolojiyi karşılaştırmadan önce ikisi hakkında da bilgi sahibi olalım.

Basit şekilde anlatmak gerekirse Flutter bir UI araç kitidir. İçerisinde bir çok araç ve eklenti barındır. Kullanıcıların cross-platform uygulamalar geliştirebilmesine imkan sağlar. Android, IOS ve Web için uygulamalar geliştirebilmek için tek bir kod tabanı kullanır. Dart programlama dili ile oluşturulmuş, açık kaynak kodlu ve ücretsiz bir teknolojidir. 

Flutter hakkında daha fazla bilgi almak için Flutter Nedir? yazımıza bakabilirsiniz.

Flutter kullanan bazı markalar, 

Flutter Kullanan Markalar

Kısaca React Native

React Native, JavaScript kullanan açık kaynaklı bir mobil uygulama platformudur. Tek bir platform kullanarak IOS ve Android için uygulamalar geliştirebilirsiniz. 

React Native kullanan bazı markalar, 

React Native Kullanan Markalar

Flutter’ın Artıları

1 – Hot Reload

Flutter’ın farklı bir geliştirme yaklaşımına sahip olduğu aşikardır. Hızlı ve dinamik bir yazılım geliştirme imkanı sağlar. Yazılım geliştiriciler yaptıkları kod değişikliklerini uygulama üzerinde hemen görebilirler. Buda daha hızlı şekilde uygulama geliştirme imkanı sağlar.

2 – Bir Çok Platform İçin Tek Kod Tabanı

Flutter uygulaması geliştirmek diğerlerine göre daha kolaydır. Flutter geliştiricilere AndroidIOS ve Web uygulamaları geliştirmek için tek bir platform sunar. Buda hem zaman hem de maddi kazanım sağlar.

3 – %50 Daha Az Test

Bir Flutter uygulamasını test etmek çok kolaydır. Flutter uygulama testini aynı anda iki farklı platform (IOS, Android) üzerinde koştuğundan %50 maliyeti azaltır. 

4 – Daha Hızlı Build

Tek bir platform üzerinde yazılım geliştirme imkanı sunması nedeni ile hızlı bir build imkanı sağlar. 

5 – Özelleştirilebilir Widgetlar

Flutter içerisinde çok sayıda hazır widget vardır. Eski cihazları desteklemek için güncelleme gerektirmez. Geliştiriciler bu widgetları kendilerine göre özelleştirebilir ve projeleri içerisinde kullanabilirler.

6 – MVP Desteği

Bir mobil uygulamanın en yalın halini oluşturabilmek iyi bir bakış açısıdır. Buda sadece gerekli olan özellikleri build ederek sağlanabilir. Flutter’ın MVP desteği sayesinde hızlı bir geliştirme imkanına erişebilirsiniz.

Flutter’ın Eksileri

1 – Basit Kütüphaneler ve Destek

Flutter uygulama geliştirirken geliştiricilerin çoklu kütüphane kullanımına imkan sağlar. Fakat Flutter eklenen her kütüphane için aynı desteği sunmaz. Bazı kütüphanelerin kullanılabilmesi için geliştiriciler tarafından özelleştirilmesi gerekir. 

2 – Düzenli Destek

Geliştiricilerin en büyük ihtiyaçlarından birisi yazılım geliştirme süreçlerinde karşılaştıkları zorlukları gidermek için gerekli olan düzenli destektir. Flutter, CI platformlarını desteklemez. Bu nedenle geliştiriciler build, test ve deploy işlemleri için özel scriptleri geliştirmeleri gerekir. Buda yazılımcının hızını etkileyebilir.

3 – Riskli Platform

Google, Flutter teknolojisinin arkasındaki isimdir. Açık kaynak kodlu bir platform olmasına rağmen Google’nin desteği olmaz ise Flutter yok olmaya mahkum gözü ile bakılıyor. Buda platformu riskli bir duruma sokuyor. 

4 – Uygulama Boyutu

Uygulama boyutu geliştiriciler için platform seçiminde önemli bir kriter. Kimse telefonunda çok büyük yer kaplayacak bir uygulamayı indirmek istemeyecektir. Flutter uygulamaları native geliştirilmiş uygulamalara göre daha fazla alan ihtiyacı duyarlar. 

React Native’nin Artıları

1 – Hızlı Güncelleme

React Native, Live Reload ve Hot Reload özelliklerini beraber sunar. Bu özellik React Native’nin en öne çıkan özelliklerinden birisidir. 

2 – Tek Geliştirme Ortamı, İki Farklı Platform

İki ana platforma uygulamanın tek bir ortamda geliştirilebilmesi hem zamandan hem de maliyetten tasarruf sağlar. React tek bir kere yazılan kodun IOS ve Android üzerinde çalışmasına imkan verir. 

3 – JavaScript Desteği

JavaScript programlama dili geliştiriciler arasında en yaygın şekilde kullanılan dillerden birisidir. 

4 – Olgun Bir Platform

React Native oturmuş, olgun bir sistemdir. React Native 5 yıllık bir maziye sahip, ve yıllar içerisinde ciddi şekilde geliştirildi. Buda geliştiricilerin sorunlarının büyük bir kısmının platform içerisinde çözülmüş olduğu anlamına geliyor. 

5 – Geniş Topluluk

React Native’den geliştirici topluluğu oldukça büyüktür. Bu topluluk içerisinde uzmanlar devamlı yeni güncellemeleri paylaşıyorlar. Buda geliştiricilerin kolaylıkla teknolojiyi öğrenmesine yardımcı oluyor. 

6 – Kolay Öğrenilebilir

React Native öğrenmesi kolaydır. Geliştiriciler aynı kütüphaneleri, desenleri ve araçları kullanabilirler. Geliştiriciler internetteki kaynakları tarayarak kolay şekilde teknolojiyi öğrenebilirler. 

7 – Daha Az Test

Her uygulama test süreci gerektirir. Test uygulamanın istenen platformda uygun şekilde çalışıp, çalışmadığının kontrolü için gereklidir. React Native ortamında yapacağınız test uygulamanızı hem Android hem de IOS ortamında test etmenizi sağlar. Buda verimliliğinizi artırır. 

React Native’nin Eksileri

1 – Tamamen Native Değildir

Native uygulamaların en büyük özelliği performans ve donanıma hakim olmasında yatmaktadır. React Native tamamen Native değildir. 

2 – Daha Az Bileşen

Popüler ve olgun olmasına rağmen, React Native hala bazı bileşenlerden yoksundur. React Native tarafından yalnızca temel bileşenler desteklenir. 

3 – Bir Çok Terk Edilmiş Paket

React Native çok sayıda kütüphaneye sahiptir. Bu nedenle, geliştirme sürecinde, geliştiriciler hiç kullanılmayan birçok terk edilmiş paket ile karşılaşabilirler.

4 – Hassas Kullanıcı Arayüzü

React Native yerel sistem araçlarını kullanmaktadır. Yerel araçları etkileyecek bir güncelleme çeşitli sorunlara neden olabilir. 

5 – Native Uygulamaya Göre Daha Büyük Dosya Boyutu

React Native ile oluşturulan her proje aslında bir JavaScript kodudur. Ancak Android bu kodu direk derlemez içerisine gerekli kütüphanelerinin de dahil edilmesini bekler. Buda uygulamanın Native bir uygulamaya göre daha büyük bir dosya boyutunda olmasına neden olur. 

Flutter Ve React Native Hakkında Bazı istatistikler;
ÖzelliklerFlutterReact Native
Duyurulma TarihiMayıs 2017Mart 2015
GitHub Popularite87.4k85.2k
GeliştiriciGoogleFacebook
Programlama DiliDartJavaScript
Uygulama Performansı60fpsNative Yakın
GUI ElemanlarıÖzel WidgetlarOS Native Componentler
HOT ReloadEvetEvet
Native Görünüm44
Dökümantasyon53
Topluluk54
Konfigürasyon Ve Kurulum53
Araçlar35
Donanım Tabanlı API’ler44
Yaşam Evrimi, Yönetimi35
Markete Çıkma SüresiHızlıFlutter’a Göre Yavaş
Kullanılabilir Kod%50 – 90%90
Yazılım TestMobil Cihaz – EmülatörMobil Cihaz – Emülatör
Popüler UygulamalarGoogle Ads – AliBaba – GrouponAirBnb – Discord – İnstagram

Hangi Teknoloji Daha İyi?

Dürüst olmak gerekirse her iki teknolojide son derece başarılı. İkisi arasında gerçekten bir seçim yapmak zor. IOS Uygulama Geliştirme ve Android Uygulama Geliştirme için ayrı ayrı platformlar kullanmak yerine cross-platform kullanmanın size katacağı değer çok büyüktür. 

Seçimizi yaparken ekibinizin kullandığı teknolojileri göz önünde bulundurarak bir tercih yapmamız faydalı olabilir. 

Berat Emre Demir {Berat Emre Demir}