flutter ile react native

Bugun sizlerle Flutter ile React Native dilleri arasındaki farkları, artı ve eksi yönleri paylaşacağız. Bu günlerde öne çıkan ve popüler olan iki mobil cross platform var. Bunlar React native ve Flutter. İkisinin benzer özellikleri olsa da birbirinden ayrıldıkları önemli konular da var. Bu yazımızda öncelikle Flutter ve React Native tanıyarak başlayalım.

Kısaca Flutter

Flutter 2017 yılında , Google tarafından oluşturun açık kaynaklı bir UI yazılım geliştirme aracıdır. İlk çıktığından beri geliştirmeler alan Flutter 5 yıl içinde hatalarından arınmış ve cross platform için uygulama geliştirmede popular bir geliştirme kiti olmuştur.

Flutter üzerinden geliştirmeye başlamadan önce yapmanız gereken ilk şey Dart yazılım dilini öğrenmelisiniz. Flutter bir UI geliştirme aracı  iken güç aldığı programlama dili Dart yazılım dilidir. Darta ne kadar hakim olursanız Flutter içinde performanslı uygulama geliştirmeniz o kadar kolay olacaktır. 

Flutter kodu, herhangi bir cihazda hızlı performans sağlamak için JavaScript’in yanı sıra direkt olarak ARM veya Intel makine koduna derlenir. Bu sebeple performans olarak iyi seviyededir.

Flutter aynı zamanda Hot Reload özelliği ile yaptığınız değişiklikleri kaydettiğiniz an geliştirme ekranında karşılığını görmektesiniz. Bu özellik ekran geliştirme sırasında önemini göstermektedir. 

 

Kısaca React Native

React Native Facebook tarafından üretilen, cross-platform mobil uygulama geliştirme olanağı sağlayan bir framework olarak adlandırabiliriz. Tek bir kod tabanı üzerinden farklı işletim sistemine sahip mobil cihazlara uygulama geliştirmemize sağlayan React Native’i biraz daha yakından inceliyelim.

Flutter da olduğu gibi bu frameworkün arkasında büyük bir şirket bulunmaktadır. Flutter da Google olan firma React Native tarafında Facebook olmuştur. Facebook’un ortaya çıkardığı bu frameworkü kendi uygulamaları için de kullanmakta.

React Native başlamadan önce bilmeniz gereken programlama dili javascript olması gerekiyor. Aynı şekilde javascriptte Facebook tarafından geliştirilmiş nesneye yönelik programlama dili olarak hayatımıza girmiştir.

React Native, kullanıcı arayüzü oluşturmak için gücünü JavaScript kitaplığı olan React’tan almaktadır. Günümüzde web uygulaması için kullanılan React’ın gücünü kullanarak native uygulamalar yazabilirsiniz. JavaScript ve React bilginiz varsa React-Native size hiç de yabancı gelmeyecek.

Hot Reload özelliği aynı şekilde React-Native de bulunmaktadır. Kod ekranında yaptığınız değişikliği anlık olarak da gelişim ekranı üzerinden de görebilirsiniz.

Flutter ve React Native Karşılaştırması

İki mobil uygulama geliştirme ortamı da cross-platform hedefleyen ortamlar kullanıcıya sunmaktadır.İkisi de aynı şeyi yapmasına karşı birbirinden de farklılıkları vardır. Bu bölümde bunları inceleyeceğiz. 

Programlama Dili Farkı

Flutter, Google tarafından geliştirilen Dart yazılım dili üzerine geliştirilmiştir. Daha önce nesneye yönelik bir programlama dili bilginiz varsa Dart yazılım diline alışmanız kolay olacaktır.

React Native’in güç aldığı yazılım dili olarak JavaScript’i kullanır. JavaScript dökümantasyon fazlalığı ve yaygınlığı ile öğrenmesi daha kolay bir yazılım dili seviyesine gelmiştir.

Flutter ile React Native kıyaslayacak olursak, JavaScript çoğu web geliştiricisi tarafından yaygın olarak kullanıldığından ve JavaScript hakkında internet dünyasından daha fazla bilgi alacağınız için , React Native’i sizin için daha kolay olacaktır.

UI Bileşeni ve Geliştirme API’si

React Native, mevcut iOS ve Android kodunu JavaScript modülleri olarak yeniden kullanmanıza ve yerel UI bileşenleriniz ile bunları oluşturmayı işleyecek JavaScript kodu arasındaki köprüyü manuel olarak oluşturmak için bazı API’leri açığa çıkarmanıza olanak tanıyan bir köprüyle birlikte gelir.

Flutter, UI oluşturma, cihaz API erişimi, test etme gibi birçok kitaplık yüklü şekilde geliştiriye gelir. Bu zengin component kümesi, dışardan bir kitaplık kullanma ihtiyaç duymanızı en aza indirmektedir.Flutter ayrıca, geliştiricilerin hem iOS hem de Android platformunda kullanıcı arayüzünü kolayca oluşturmalarına olanak tanıyan Materyal Tasarım ve Cupertino için widgetlara sahiptir. 

Mobil platformlar arasında kodun yeniden kullanımı

React Native, hem iOS hem de Android geliştirirken kullanılabilecek kendi API setiyle birlikte gelir.Dilerseniz iOS ve Android uygulamalarınız arasında paylaşılan bileşenler yazmanız da mümkün.

Flutter uygulamaları, platforma özel kodlarla oluşturulmuştur, bu nedenle iOS ve Android uygulamanız arasında herhangi bir kod paylaşmanız mümkün değildir. Ancak, mevcut yerel bileşenlerin yeniden kullanımını kolaylaştırmak için üçüncü parti kitaplıkları mevcuttur.

Performans

 React Native JavaScript dillerinde yazılmıştır. Uygulamalar için yüksek düzeyde performans göstermek için yeterli değildir. Bu nedenle, geliştiricilerin istenen etkiyi elde etmek için ekstra etkileşimleri yerel olanlarla birleştirmesi gerekir. React Native’in mimarisi JavaScript ve yerel olmak üzere iki bölümden oluştuğundan, çerçevenin yerel öğelerle etkileşime girmesi için bir JS köprüsü gerekir. Bu, React Native’i diğer araçlardan biraz daha yavaş yapan başka bir şeydir.

Flutter Dart dilinde yazılmıştır, bu da JavaScript’ten daha hızlı bir kod derlemeye izin verir. Üstelik bu sayede Flutter, animasyonları standart olarak 60 fps’de gösteriyor. Flutter, kullanıcılara istenen sonuçlara ulaşmalarına yardımcı olacak öneriler sunar.

 Bu öneriler şunları içerir:

  • Tree shaking ve deferred loading ile performans optimizasyonu
  • Görüntü yer tutucuları, önbelleğe alma ve devre dışı bırakılmış gezinme geçişleriyle performans iyileştirmesi
  • Performans gösteren Flutter widget’ları oluşturma

Ayrıca Flutter, yapım maliyetlerini kontrol etmenizi, efektleri ve widget’ları yalnızca gerçekten ihtiyacınız olduğunda uygulamanızı, ızgaralar ve listeler için tembel yöntemler kullanmanızı ve çerçeveleri 16 ms’de oluşturmanızı ve görüntülemenizi önerir. Flutter, React Native performansına kıyasla daha önünde bulunduğunu söyleyebiliriz.

Destek ve Topluluklar

React Native’in en büyük artılarından biri sahip olduğu topluluktur. Uzun yıllardır hayatımızda olmasıyla birlikte sizin yaşadığınız hatayı biri yaşamış ve bu topluluklar üzerinden çözüme kavuşturmuştur. Yaşayacağınız bir hatanın çözümünü stackoverflow gibi topluluklarda çok rahatlıkla bulabilirsiniz.

Flutter ise React Native göre genç ve bu sebeple topluluk konusunda Reacttan daha geridedir. Ancak zaman geçtikce Flutter da geniş bir topluluğa sahip olacak ve bu konuda size yardımcı olacaktır. Yeni başlayacaksanız Flutter topluluklarından yararlanabilir ancak spesif bir sorunda çözüm konusunda sizi zorlayacaktır. 

Leave a Comment