Yazar: Admin | Yayın: 20.06.2025 | 438 görüntüleme | 23 beğeni
Mobil dünya bugün her zamankinden daha rekabetçi. Kullanıcılar sadece hızlı çalışan değil; aynı zamanda estetik, kullanıcı dostu ve tutarlı deneyim sunan uygulamalar bekliyor. Flutter, bu beklentilere tam anlamıyla karşılık verebilen bir framework. Peki Flutter ile bir uygulama geliştirme süreci nasıl işler, nereden başlanır, hangi araçlar gerekir?
Bu rehberde Flutter dünyasına adım atacak, temel kavramlardan gelişmiş uygulama örneklerine kadar detaylıca her şeyi birlikte inceleyeceğiz.
🚧 Flutter Nedir ve Neden Tercih Edilir?
Flutter, Google tarafından geliştirilen açık kaynaklı bir UI toolkit’tir. Tek bir kod tabanından hem Android hem iOS için native hissiyatlı uygulamalar geliştirmeni sağlar.
🎯 Temel Avantajlar:
⚙️ Kurulum & Ortam Hazırlığı
🛠️ Gerekli Araçlar:
🔍 Flutter Kurulumu
flutter doctor
Bu komut sistemin ihtiyaç duyduğu her şeyi kontrol eder. Eksikler varsa yönlendirmeleri takip ederek tamamlayabilirsin.
🧱 Flutter Projesi Oluşturma
flutter create codegital_ilk_uygulamam cd codegital_ilk_uygulamam flutter run
İlk uygulaman hazır. Şimdi geliştirmeye geçebiliriz!
📐 Flutter'da Widget Sistemi
Flutter, "her şey bir widget’tır" yaklaşımıyla çalışır. UI bileşenlerinin tümü aslında widget’lardır.
Temel Widget’lar:
Text
, Container
, Row
, Column
AppBar
, Scaffold
, Image
, ListView
Form
, TextFormField
, Button
Scaffold( appBar: AppBar(title: Text("Ana Sayfa")), body: Center(child: Text("Merhaba Codegital!")), );
👨💻 Sayfalar Arası Geçiş (Navigation)
Navigator.push( context, MaterialPageRoute(builder: (context) => IkinciSayfa()), );
Sayfalar arasında geçiş yapmak için Navigator sınıfını kullanıyoruz. Alternatif olarak Named Routes
da tercih edilebilir.
📝 Kullanıcıdan Veri Almak ve Doğrulamak
Form( key: _formKey, child: TextFormField( decoration: InputDecoration(labelText: 'E-posta'), validator: (value) => value!.contains('@') ? null : 'Geçerli bir e-posta girin', ), );
Form bileşenleriyle kullanıcıdan alınan veriler kolayca doğrulanabilir.
💾 SharedPreferences ile Lokal Veri Saklama
final prefs = await SharedPreferences.getInstance(); await prefs.setString('kullaniciAdi', 'Codegital');
Verileri yerel olarak saklamak için hızlı ve pratik bir yöntemdir. Alternatif: Hive
(daha kompleks yapı için)
🌐 REST API Entegrasyon
final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts')); if (response.statusCode == 200) { List data = jsonDecode(response.body); print(data[0]['title']); }
Uygulamanı dinamik hale getirmek için üçüncü parti servislerden veri çekebilirsin.
🎨 Temalar ve UI Özelleştirme
MaterialApp( theme: ThemeData.light(), darkTheme: ThemeData.dark(), themeMode: ThemeMode.system, )
Kullanıcı tercihine göre Light/Dark tema geçişi sağlanabilir. themeData
ile renkler, fontlar detaylı biçimde tanımlanabilir.
🎬 Animasyonlar ile Canlılık Kat
FadeTransition( opacity: animation, child: Text("Hoş Geldin!"), )
Flutter'daki AnimationController
, Tween
, AnimatedContainer
, Hero
gibi widget’larla çok etkileyici geçiş ve animasyonlar oluşturabilirsin.
📥 Bildirimler ile Etkileşim Artır
flutter_local_notifications: ^x.x.x
Kütüphaneyi yükleyerek hem planlanmış hem de anlık bildirim gönderebilirsin. Firebase Cloud Messaging ile push notification desteği de entegre edilebilir.
🧠 State Management (Durum Yönetimi)
En Popüler Yaklaşımlar:
setState()
(küçük projeler için)Provider
Riverpod
Bloc
ChangeNotifierProvider( create: (_) => SayacModel(), child: Sayfa(), );
Büyüyen uygulamalarda veri yönetimini daha sürdürülebilir hale getirir.
🔐 Firebase Authentication ile Giriş Sistemi
final user = await FirebaseAuth.instance.signInWithEmailAndPassword( email: email, password: parola, );
Güvenli kimlik doğrulama için Firebase çok güçlü bir çözümdür. Aynı zamanda kullanıcı kayıt, şifre sıfırlama gibi işlemleri de destekler.
🌟 Proje Fikri: "Etkinlik Avcısı" – Konum Bazlı Sosyal Etkinlik Uygulaması
🎯 Amaç:
Kullanıcının bulunduğu konuma göre yakın çevresindeki etkinlikleri (konser, sergi, tiyatro, seminer vb.) listeleyen, katılım durumunu kaydeden ve arkadaşlarıyla paylaşmasını sağlayan şık bir uygulama.
🚀 Temel Özellikler:
ListView.builder
üzerinden gösterim.SharedPreferences
veya Firebase ile sakla.💡 Bonus Özellikler (İlerisi için):
👨💻 Kullanılacak Teknolojiler ve Flutter Paketleri
geolocator
, location
google_maps_flutter
http
flutter_local_notifications
share_plus
device_calendar
provider
veya riverpod
📎 Sık Yapılan Hatalar ve İpuçları
Hot Reload
bazen State
’i sıfırlamaz → Hot Restart
kullan.const
anahtarını kullan → Performans artar.SingleChildScrollView
'a dikkat et!🏁 Sonuç ve Öneriler
Flutter sadece bir framework değil; üretkenlik, estetik ve performans dengesidir. Başlangıç seviyesinden ileri düzeye kadar her geliştiriciye hitap eder. Eğer temiz kod yapısını seviyor, modüler çözümlerle uygulama geliştirmek istiyorsan, Flutter tam senlik!
📍 Unutma: Küçük bir "Merhaba Dünya" projesiyle başlayan her yolculuk büyük bir uygulama fikrine dönüşebilir.
Henüz yorum yapılmamış.
Admin
27.06.2025 | 355 | 10