Flutter: Platformlar Arası Uygulamalar için Çerçeve

Flutter, sorunsuz ve kolay platformlar arası mobil uygulama geliştirmeyi sağlayan açık kaynaklı bir yazılım geliştirme kitidir. İki uygulama için ayrı ayrı kod yazmak zorunda kalmadan, iOS ve Android için yüksek kaliteli, yerel olarak derlenmiş uygulamaları hızlı bir şekilde oluşturabilirsiniz. Tek ihtiyacınız olan, her iki platform için de bir kod tabanı. Geçen yıl, Flutter'ın ürün müdürü Tim Sneath, Flutter'ın 2018'de kullanıma sunulmasından bu yana araç setini kullanan 2 milyondan fazla geliştiriciyle artan bir şekilde kullanıldığını duyurdu. Bu yazıda, bu geliştirici dostu uygulama geliştirme dilini tanıtacağız. Flutter'ın ne olduğunu açıklayacağız, avantajlarını ve dezavantajlarını kısaca anlatacağız. ‍

#FLUTTER, #FLUTTERNEDIR, #NEDENFLUTTER

Mustafa Damar

10/25/2023

Flutter nedir?

         Objective C/Swift ve Java/Kotlin'in mobil geliştirme için birincil diller olduğu günlerde, uygulama oluşturmak pahalıydı. İki ayrı uygulama oluşturmanız gerekiyordu, bu da işi iki kez yapmak anlamına geliyordu.

Bu sorunu çözmek için, HTML5 ve Javascript'te hibrit (veya platformlar arası) uygulamaların oluşturulması için çeşitli çerçeveler oluşturulmuştur. Phonegap, Xamarin, React Native ve daha fazlasını içeren platformlar arası araç takımları arasında Flutter çerçevesi, geliştiriciler, işletmeler, girişimciler ve kullanıcılar arasında hızla giderek daha popüler hale geldi.

Flutter, tek bir kod tabanından mobil, web ve masaüstünde yerel benzeri uygulamalar oluşturmaya yönelik taşınabilir bir UI araç takımıdır. Dart programlama dilini kullanır ve Materyal Tasarımı ve Cupertino widget'larını içerir. Flutter geliştiricileri, doğal görünen ve hissettiren muhteşem bir kullanıcı arabirimi oluşturabilir. Tek bir kod tabanı kullanıyor olsanız bile, herhangi bir platformda doğal olarak davranır.

Flutter, Javascript köprüsü kullanmadan yanıt veren bir stil sağlayan ve böylece kuzeni ve doğrudan rakibi React Native ile rekabet eden bir performans düzeyine ulaşan mobil SDK'ya sahip tek çerçevedir. Android, IOS ve Linux gibi farklı platformlar, MAC, Windows ve Google Fuchsia uygulamaları ile kolayca entegre olur.

Flutter hangi programlama dilini temel alır?

Flutter SDK, yine Google tarafından geliştirilen Dart programlama diline dayanmaktadır. Niyeti, klasik JavaScript'in yerini almaktır. Bir sunucuda, Dart programları doğrudan çalıştırılabilirken, tarayıcıda Dart2js transcompiler kullanılarak JavaScript'e dönüştürülürler.

Google'ın yeni platformu Fuchsia için uygulamalar doğrudan Dart ile geliştirilir. Yapısı, Java veya C# gibi iyi bilinen nesne yönelimli programlama dillerininkine benzer.

Hepsi Widget'lar: Flutter ilkesi

Flutter, widget tabanlı bir teknolojidir. Bu, nesne yönelimli programlamayı herhangi bir öğeye uygulayabileceğiniz anlamına gelir. Flutter kullanmanın faydalarından biri, widget'ları kolaylıkla değiştirebilmeniz veya özelleştirebilmenizdir. Ek olarak, temel web uygulaması tasarım gereksinimlerini karşılayan UI widget'ları sağlar.

Açık kaynaklı bir çerçeve olarak Flutter, piyasaya sunulduğundan beri geniş ve aktif bir geliştirici topluluğunu kendine çekmiştir. Bu topluluk sürekli olarak kullanılabilir kod örnekleri yayınlar ve geliştiricileri yeni, yenilikçi, güzel platformlar arası uygulamalar oluşturmada destekler.

Flutter uygulama geliştirmenin artıları ve eksileri

Her programlama dilinin avantajları ve dezavantajları vardır. Ancak çoğu durumda Flutter'ın avantajlarının benzer teknolojilere kıyasla dezavantajlarından açıkça daha ağır bastığını söyleyebiliriz.

Flutter uygulama geliştirmenin artıları

Flutter'ın rakiplerine göre çok sayıda avantajı vardır. Bu avantajlar, programlama dilinin ve Flutter'ın diğer dillerin baş edemediği sorunları çözmesine olanak tanıyan geliştirme araçları setinin doğasında vardır.

1. Tüm platformlar için tek bir kod tabanı

Android için bir kod ve iOS cihazlar için başka bir kod tabanı yazmak zorunda olduğunuz günler geride kaldı. Flutter'ın kod yeniden kullanılabilirliği, yalnızca bir kod tabanı yazmanıza ve bunu yalnızca mobil Android ve iOS için değil, web, masaüstü ve daha fazlası için kullanmanıza olanak tanır. Bu, geliştirme süresini önemli ölçüde azaltır, maliyeti azaltır ve uygulamanızı çok daha hızlı başlatmanızı sağlar.

2. "Hepsi Widget'lar" ilkesi sayısız olasılık sunar

Konu uygulamanız için harika görseller oluşturmaya geldiğinde, Flutter'ın özel widget'ları mutlak bir zevktir. Aynı zamanda, farklı cihazlardaki kullanıcı arayüzü hakkında endişelenmenize gerek yok.

3. Zengin kütüphaneler

Flutter, hızlı ve gelişmiş bir açık kaynak grafik kitaplığı olan Skia Graphics Library'yi kullanır. Bir görünüm her değiştiğinde kullanıcı arayüzünü yeniden çizer. Sonuç? Hızlı yükleme ve sorunsuz uygulama deneyimi.

4. Sıcak yeniden yükleme ile hızlı test

Çalışırken yeniden yükleme özelliği, uygulama geliştirmeyi çok daha hızlı hale getirir. Flutter ile kodda yaptığınız her değişikliği görmek için uygulamayı yeniden yüklemenize gerek yoktur. Uygulamanızda gerçek zamanlı olarak kolayca değişiklik yapabilirsiniz, böylece hareket halindeyken kodu denemek ve hataları düzeltmek için daha fazla fırsatınız olur.

Flutter uygulama geliştirmenin Eksileri

Kusursuz teknoloji çözümü yoktur ve Flutter da bir istisna değildir. Flutter'ın dezavantajları tam olarak anlaşmayı bozmuyor, ancak belirli bir uygulama için ideal araç seti olmayabilmesinin birkaç nedeni var.

1. Widget'lar nedeniyle büyük dosya boyutu

Flutter uygulamaları başlamak için oldukça büyük ve "ağırdır". Çok fazla yer kaplarlar ve indirilmeleri veya güncellenmeleri daha uzun sürer.

2. Karmaşık güncelleme

İşletim sistemlerindeki programlama gereksinimlerinin güncellenmesi, Flutter modüllerinin güncellenmesini gerektirir. Modüller programa sabit öğeler olarak entegre edildiğinden, ikincisi de yeniden derlenmeli ve cihazlara yeniden kurulmalıdır.

3. Sınırlı sayıda araç ve kitaplık

Flutter oldukça yeni bir geliştirme çerçevesidir, bu nedenle bazı durumlarda mevcut kitaplıkta istediğiniz işlevleri alamayabilirsiniz. Flutter'ın belirli araçları oluşturması, işlevselliği genişletmesi ve topluluğu geliştirmesi biraz zaman alacaktır.

Diğer Yazılarımıza da Göz Atın: