Flutter

Flutter, Google tarafından oluşturulan açık kaynaklı bir UI yazılım geliştirme kitidir. Android, iOS, Windows, Mac, Linux ve web için uygulamalar geliştirmek için kullanılıyor. Flutter'ın ilk sürümü "Sky" olarak biliniyordu ve Android işletim sisteminde çalışıyordu. Flutter ilk olarak 2015 Dart geliştirici zirvesinde tanıtıldı. Tanıtımında sabit bir şekilde saniyede 120 FPS çalışan uygulamalar geliştirilebileceği belirtildi. 4 Aralık 2018'de Flutter 1.0, Flutter Live etkinliğinde ilk "kararlı sürüm" olarak yayımlandı. 11 Aralık 2019'da Flutter Interactive etkinliğinde Flutter 1.12 yayımlandı.

6 Mayıs 2020'de, 2.8 sürümündeki Dart SDK ve 1.17.0 sürümündeki Flutter, Metal API'a desteğin eklendiği ve iOS cihazlarındaki (yaklaşık %50) ana widget'larındaki performansı büyük ölçüde artırdı. Ağ etkinlikleri izleme aracı ve çok daha fazlası eklendi.

Tarihçe ve Sürüm Gelişimi
Flutter, Google tarafından geliştirilmeye başlanmış ve ilk olarak 2015 yılında Dart geliştirici zirvesinde “Sky” adıyla tanıtılmıştır.
4 Aralık 2018: Flutter 1.0 sürümü yayımlanarak kararlı hâle gelmiştir.
2021: Flutter 2.0 yayımlandı. Bu sürüm ile web, masaüstü ve yerleşik cihaz desteği “kararlı” olmasa da “beta” veya “dev” kanallarında desteklenmeye başlandı.
3 Mayıs 2023: Google, Flutter 3.10 sürümünü duyurdu. Bu sürüm, Dart 3 ile birlikte geldi ve platformlar arası geliştirme araçlarını büyük ölçüde iyileştirdi.

Dart Programlama Dili
Flutter, Dart adlı programlama dili ile yazılır. Dart, yine Google tarafından geliştirilmiş, istemci tarafı odaklı, C tarzı sözdizimine sahip, JIT (Just-In-Time) ve AOT (Ahead-Of-Time) derleyicilerini destekleyen bir programlama dilidir.

Dart sayesinde:

Geliştirme sürecinde “hot reload” özelliği ile anında güncellemeler görülebilir.
AOT derleme ile yüksek performanslı, native (yerel) kodlar üretilebilir.

Teknik Mimari ve Bileşenler
Flutter Motoru

C++ ile yazılmıştır.
Grafik işlemleri için Skia grafik motorunu kullanır.
Platforma özgü API'lerle (kamera, GPS, dosya sistemi gibi) iletişimi sağlayan platform kanallarını içerir.

Widget Sistemi

Flutter’ın temel yapı taşı “widget”lardır.
StatelessWidget ve StatefulWidget türleriyle kullanıcı arayüzleri inşa edilir.
Material Design (Android) ve Cupertino (iOS) stillerinde önceden tanımlı widget’lar sunar.

Rendering (Çizim)

Flutter, platformun yerel UI sistemini kullanmak yerine kendi widget'larını çizer. Bu, daha tutarlı bir görünüm sağlar.
Skia motoru sayesinde yüksek performans elde edilir.

Platform Desteği
Flutter; aşağıdaki platformlarda çalışabilir:

Android
iOS
Web (HTML/CSS/CanvasKit ile)
Windows
macOS
Linux
Embedded sistemler (Raspberry Pi gibi)

Masaüstü desteği başlangıçta sadece deneyseldi; ancak Flutter 3.0 itibarıyla Windows, macOS ve Linux için kararlı destek sunulmuştur.

Flutter ile Geliştirilen Bazı Uygulamalar
Google Ads
Alibaba
BMW
eBay Motors
Reflectly
Hamilton Musical App

----

Flutter’ın Avantajları
Tek bir kod tabanıyla çoklu platformlara uygulama geliştirme imkânı
Hot reload ile hızlı geliştirme süreci
Yüksek performans (native benzeri)
Zengin widget kütüphanesi
Aktif topluluk ve düzenli güncellemeler

----

Rakipleri
Flutter, aşağıdaki diğer çapraz platform araçlarıyla rekabet halindedir:

React Native (Meta)
Xamarin (Microsoft)
SwiftUI (Apple, sadece iOS/macOS)
Kotlin Multiplatform (JetBrains)

Framework Mimarisi
Flutter'ın ana bileşenleri şunlardır:

Dart platformu
Flutter motoru
Temel kütüphane
Tasarıma özel widget'lar

Merhaba Dünya Örneği
Flutter kullanılarak yazılmış bir "merhaba dünya" örneği:
import 'package:flutter/material.dart';

void main() => runApp(HelloWorldApp());

class HelloWorldApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
//Uygulama arayüzünde gösterilecek olan alan.
// MaterialApp veya Scaffold açılabilir, yahut metot ile farklı bir yerden inşa edilebilir.

return MaterialApp(
title: 'Merhaba Dünya Uygulaması',
//title ile uygulamamızın ismi belirlenir (telefon ana ekranında görünecek olan isim).

home: Scaffold(
//AppBar() isimli widget otomatik olarak uygulamanın en üstüne bir bar oluşturur.
appBar: AppBar(
title: Text('Merhaba'),
// Uygulama barına "Merhaba" yazdırır
),

//Center isimli widget ile yazıyı sayfa ortasına yerleştiriyoruz.
body: Center(
child: Text('Merhaba Dünya'),
// ekrana "Merhaba Dünya" yazdırır.
),
),
);
}
}

Yararlı Bağlantılar
Resmi web sitesi

Kaynakça