Google Flutter Nedir? Nasıl Çalışır?

Google Flutter Nedir?

Flutter, Google tarafından oluşturulan ve Mayıs 2017’de piyasaya sürülen ücretsiz ve açık kaynaklı bir mobil UI frameworküdür. Birkaç kelimeyle, yalnızca bir kod tabanı ile bir mobil uygulama oluşturmanıza olanak tanır. Bu, iki farklı uygulama (iOS ve Android için) oluşturmak için bir programlama dili ve bir kod tabanı kullanabileceğiniz anlamına gelir.

Flutter iki önemli bölümden oluşur:

  • SDK (Yazılım Geliştirme Kiti): Uygulamalarınızı geliştirmenize yardımcı olacak araçlar topluluğu. Bu, kodunuzu yerel makine kodunda (iOS ve Android kodu) derlemek için araçlar içerir.
  • Framework (widget’lara dayalı UI Kitaplığı): Kendi ihtiyaçlarınız için kişiselleştirebileceğiniz yeniden kullanılabilir UI öğeleri (düğmeler, metin girişleri, kaydırıcılar vb.) koleksiyonu.

Flutter ile geliştirmek için Dart adlı bir programlama dili kullanacaksınız. Dil, Ekim 2011’de Google tarafından oluşturuldu, ancak geçtiğimiz yıllarda çok gelişti.

Flutter Nasıl Çalışır?

Widget’lar

Flutter‘ın arkasındaki ana fikir, widget’ların kullanılmasıdır. Geliştiricilerin farklı widget’ları birleştirerek tüm kullanıcı arayüzünü oluşturabilmesi amaçlanmıştır. Bu widget’ların her biri, bir yapısal öğe (bir düğme veya menü gibi), bir stil öğesi (bir yazı tipi veya renk şeması), bir düzen yönü (dolgu gibi) ve diğerlerini tanımlar.

Flutter’ın OEM widget’ları kullanmadığını, ancak geliştiricilere Android veya iOS uygulamalarına özgü (Materyal Tasarım veya Cupertino’dan sonra) kendi hazır widget’larını sağladığını unutmayın. Doğal olarak geliştiriciler kendi widget’larını da oluşturabilirler.

Flutter ayrıca geliştiricilere reaktif tarzda görünümler sağlar. JavaScript köprüsü olarak hizmet etmek üzere derlenmiş bir programlama dili kullanmaktan kaynaklanan performans sorunlarından kaçınmak için Flutter, Dart kullanır. Dart’ı önceden (AOT) birden çok platform için yerel kodda derler.

Bu şekilde Flutter, JavaScript alanı ile yerel alan arasında bir bağlam geçişi içeren bir JavaScript köprüsüne ihtiyaç duymadan platformla kolayca iletişim kurabilir. Tahmin edebileceğiniz gibi, yerel kodu derlemek, uygulama başlatma süresini de artırır.

Bugün Flutter, JavaScript köprüsüne ihtiyaç duymadan reaktif görünümler sunan tek mobil SDK’dır. Bu yüzden pek çok mobil geliştirici, projelerinde bunu deniyor.

İşte Flutter’ın mobil yazılım geliştirmeye getirdiği bazı avantajlar:

Ekstra avantaj: Dart programlama dili

Flutter’ın en ilginç özelliklerinden biri Dart’ı kullandığı dildir. Reaktif görünümleri kullanan diğer sistemler gibi, Flutter da her yeni kare için görünüm ağacını yeniler. Bunu başarmak için birden fazla kare için kullanılabilecek birçok nesne yaratır. Dart, bu tür bir sistem için çok verimli olduğu kanıtlanmıştır.

Ayrıca Dart, yalnızca uygulamanızda ihtiyacınız olan kodu içeren bir “tree shaking” derleyicisine sahiptir. Yalnızca bir veya iki widget’a ihtiyacınız olsa bile, geniş widget kitaplığını özgürce kullanabilirsiniz.

Son olarak, Dart, uygulamaların yeteneklerini genişletmek için bir yazılım paketleri deposuyla birlikte gelir. Örneğin, geliştiricilerin sunucusuz uygulamalar oluşturabilmeleri için Firebase’e erişmeye yardımcı olan birkaç paket sunar. Başka bir paket, bir Redux veri deposuna erişmeye izin verir veya platform hizmetlerine ve kamera gibi donanımlara erişimi kolaylaştırır.

Flutter’ın Faydaları:

Düşük Maliyetli Uygulama Geliştirme

İdeal bir çapraz platform iki gereksinimi karşılamalıdır: yüksek kaliteli bir kullanıcı deneyimi sağlama (akıcı animasyonlar, yavaşlamadan yerel UI öğeleri) ve geliştirme açısından maliyet dostu olmalıdır.

Flutter’ın avantajı sadece iki uygulama yerine bir uygulama yapması değildir. Bu framework sayesinde, uygulamanızı her bir platforma uyarlarken daha az sorunla karşılaşacaksınız. Çoğu framework bununla başa çıkabilir, ancak bu yalnızca onları basit uygulamalar bağlamında değerlendirirsek geçerli. Gerçek sorunlar, bir uygulama işlevlerle “aşırı büyüdüğünde” ve kaçınılmaz olarak karmaşıklaştığında başlar (bu, geliştirme aşamasındaki çoğu ürünle ilgilidir).

Yerel Uygulama Performansına Benzer

Bir Flutter uygulaması doğrudan makine koduna yerleşik olsa da, bu, yorumlama sırasında herhangi bir performans hatasını hariç tutacaktır. Bir Flutter uygulaması, diğer platformlar arası frameworklerin çoğunun aksine, herhangi bir ara kod temsiline veya yorumuna dayanmadığı için nihai uygulamadan ayırt edilemez olacaktır.

Mobilin Ötesine Geçer

Bahsettiğimiz gibi, Aralık 2018’de Flutter 1.0 olarak ortaya çıktı. O zamandan beri Flutter, yalnızca mobil platformlar için değil, aynı zamanda web ve masaüstü tarayıcıları için bir araç takımı olarak çalışma yeteneğini gösterdi. Mayıs 2019’da, geliştirme ekibi web için ilk olarak Hummingbird olarak adlandırılan bir Flutter ön izleme sürümünü duyurdu. Ancak daha sonra Flutter Web olarak yeniden adlandırıldı.

Kendi Render Motoru

Flutter, platformdan bağımsız olarak bir kullanıcı arayüzü oluşturmada mutlak özgürlük vaat ediyor. Bu, frameworkün widget’ları çizmek için kendi oluşturma motorunu kullanmasıyla elde edilir.

Birçok platformlar arası çözümdeki sorun, iPhone ve Android’de aynı görünmeleridir. Peki Android için Materyal Tasarımı ve iOS için İnsan Arayüzü kullanması gereken şirketler ne olacak? Bu tür şirketler için Flutter en uygun çözümdür. Her iki işletim sistemi için bir dizi özel widget içeren paketlerle donatılmıştır.

Basit Mantık Uygulaması

Flutter, GPS koordinatları, sensör verileri toplama, izin işleme, bluetooth, kimlik bilgileri ve Google tarafından desteklenen kullanıma hazır eklentilerdeki diğer özellikler gibi gelişmiş işletim sistemi özellikleri sağlar.

Uygulamanız, eklenti olarak mevcut olmayan işletim sistemi düzeyinde bir özelliğe bağlıysa, Flutter, Dart programlama dili ile platform kanallarını kullanarak yerel kod arasında iletişim kurabilir.

Harika Tasarım

Flutter’ın temelinde iki güçlü şey vardrı: mükemmel bir programlama dili (Dart) ve hızlı, yüksek performanslı bir işleme motoru (Skia). Böyle bir seçim, kullanıcıları daha uzun aramalardan kurtaran iyi düşünülmüş bir çözümdür.

Sonuç, tüm beceri seviyelerindeki geliştiricilerin uygun tasarım kalıplarını ve en iyi uygulamaları kullanarak uygulamalar oluşturmasına yardımcı olan mükemmel bir platformdur. Standartlara aykırılıkları veya programlama dilindeki kusurlardan kaynaklanan bazı teknik kusurları unutabilirsiniz. Flutter, Flutter uygulamalarının harika görünmesini ve hissettirmesini sağlayan güzel ve özelleştirilebilir widget’lar sağlar.

Flutter, Firebase’i Arka Uç Olarak Kullanır

Firebase’in neredeyse tüm avantajlarını Flutter uygulama geliştirmede yerel bir uygulama gibi kullanabilirsiniz. Ayrıca Flutter, reaktif uygulamaların oluşturulmasına izin verir ve Firebase eklentileri, verilerle çalışmak için reaktif akışlar sunar. Bu, belirli çözümleri Flutter uygulamalarına hızlı bir şekilde entegre etmenize olanak tanır.

Flutter, Dart’a Dayanmaktadır

Flutter geliştirmede, Dart programlama dili kullanılır. Aynı zamanda Ekim 2011’de oluşturulan Google dillerinden biridir ve son yıllarda önemli ölçüde iyileşmiştir. Dart statik olarak yazılır ve çok daha yapılandırılmış bir kod yazmanıza olanak tanır, yani daha karmaşık uygulamalar ve hiyerarşik yapılar oluşturabilirsiniz.

Dilin temiz ve inanılmaz derecede güçlü bir syntaxı var. Bu, herhangi bir uygulamanın net bir mimarisini ve tasarımını oluşturmak için ideal koşulları sağlar. Programcılar arasında çalışma tutarlılığı, dayanıklılık, düşük bakım ve ortak standartlar sağladığını da belirtmekte fayda var. Platformlar arası geliştirme için diğer çerçevelerin çoğundan çok daha fazlasını sunabilir. Halihazırda C#, Java ve TypeScript gibi popüler dillerle çalışmış olanlar için Dart’a geçmek ve hemen kullanmaya başlamak kolay olacaktır.

Özelleştirilebilir Widget Seti

Widget’lar, bir Flutter uygulamasının kullanıcı arabirimini oluşturmak için kullanılan temel bloklardır. Katmanlaması, her türlü karmaşıklıkta uygulamalar oluşturmayı kolaylaştırır. Material-UI’den hazır widget’ları kullanabilir veya temel widget’lara dayalı belirli bileşenleri uygulayabilirsiniz. Flutter ile animasyon ve hareket işleme ile esnek bir şekilde çalışmak da mümkündür. Böylece, hızlı çalışmayı yüksek seviyeli aletlerle birleştirebilir ve yine de daha derin katmanlar ekleme/yeniden tanımlama yeteneğine sahip olabilirsiniz.

Yazı gezinmesi

Mobil sürümden çık