Flutter, Google’ın geliştirdiği açık kaynaklı bir mobil uygulama geliştirme çatısıdır. Tek bir kod tabanıyla hem Android hem iOS uygulamaları üretmeyi mümkün kılar. Arayüz bileşenleri “widget” adı verilen yapı taşlarıyla oluşturulur. Bu yaklaşım, geliştiriciye hem esneklik hem de hız kazandırır.
İçindekiler
Flutter’ın öne çıkan avantajları:
- Web ve masaüstü desteğiyle çapraz platform çözümler sunar.
- Native performansa yakın sonuçlar verir.
- Hot reload sayesinde kod değişiklikleri anında görülebilir.
- Dart diliyle çalışır; sade ve öğrenmesi kolaydır.

Başlangıç: Kurulum ve Ortam Hazırlığı
Flutter’a başlamak için aşağıdaki adımları izleyebilirsin:
- Flutter SDK’yı flutter.dev adresinden indir.
- Visual Studio Code veya Android Studio gibi bir IDE kur.
flutter doctor
komutuyla eksik kurulumları kontrol et.- Android emülatörü veya fiziksel cihazla test ortamı oluştur.
Bu adımlar tamamlandığında ilk uygulamanı terminalden şu komutla başlatabilirsin:
flutter create ilk_uygulamam
cd ilk_uygulamam
flutter run
Dart Diline Giriş
Flutter’ın temelini Dart oluşturur. Bu dili öğrenmeden ilerlemek verimsiz olur. Dart’ta dikkat etmen gereken başlıca konular:
- Değişken tanımlama (
var
,final
,const
) - Fonksiyonlar ve parametreler
- Sınıflar, miras alma, interface kullanımı
- Koleksiyonlar (
List
,Map
,Set
) - Null güvenliği ve
late
,required
gibi anahtar kelimeler
Dart’ın sade yapısı, Flutter ile birlikte düşünmeyi kolaylaştırır.
Widget Sistemi: Arayüzün Temeli
Flutter’da her şey bir widget’tır. Sayfa yapısından butonlara kadar tüm bileşenler widget olarak tanımlanır. İki temel tür vardır:
- StatelessWidget: Sabit yapılar, veri değişimi olmayan ekranlar
- StatefulWidget: Kullanıcı etkileşimiyle değişen ekranlar
Sık kullanılan widget’lar:
Text
,Image
,Icon
– Görsel ve metin bileşenleriContainer
,Padding
,Align
– Yerleşim ve stilRow
,Column
,Stack
– Sayfa düzeniListView
,GridView
– Listeleme yapılarıElevatedButton
,TextField
– Etkileşimli bileşenler
State Yönetimi: Veriyi Kontrol Etmek
Uygulama büyüdükçe veri yönetimi önem kazanır. Flutter’da state yönetimi için farklı yaklaşımlar vardır:
setState
: Basit uygulamalar için yeterlidirProvider
: Google’ın önerdiği yapıRiverpod
: Daha güvenli ve modüler bir alternatifBLoC
: Reactive programlama yaklaşımıGetX
,MobX
: Hızlı ve pratik çözümler
Her yöntemin avantajları farklıdır; proje yapısına göre tercih edilebilir.
API ve Veri Entegrasyonu
Flutter ile dış veri kaynaklarına bağlanmak oldukça kolaydır. Örneğin:
http
paketi ile REST API’lere istek gönderilir- JSON verileri
dart:convert
ile işlenir - Firebase ile kullanıcı girişi, veritabanı ve bildirim özellikleri eklenebilir
Örnek bir API çağrısı:
final response = await http.get(Uri.parse('https://api.example.com/data'));
final data = jsonDecode(response.body);
Yayınlama ve Dağıtım
Uygulamanı gerçek cihazlara veya mağazalara dağıtmak için:
- Android için:
flutter build apk
veyaflutter build appbundle
- iOS için: Xcode üzerinden Apple Developer hesabı ile dağıtım
- Web için:
flutter build web
komutu ile HTML dosyaları oluşturulur
Uygulamanın performansını test etmek için flutter analyze
ve flutter test
komutlarını kullanabilirsin.
Öğrenme Sürecini Destekleyen Kaynaklar
Flutter öğrenimini hızlandıracak bazı öneriler:
- Resmi dokümantasyon: flutter.dev
- YouTube kanalları: Veli Bacık, Kodlama Vakti, Barış Aslan
- Udemy kursları: “Flutter ile Mobil Uygulama Geliştirme”
- Topluluklar: Stack Overflow, Reddit, Discord Flutter grupları
Uygulamalı Proje Fikirleri
Öğrendiklerini pekiştirmek için aşağıdaki projeleri geliştirebilirsin:
- Not alma uygulaması
- Yapılacaklar listesi
- Hava durumu uygulaması (API ile)
- QR kod okuyucu
- Firebase ile kullanıcı girişi ve profil yönetimi
İlk Yorumu Siz Yapın