Yazar: Admin | Yayın: 20.06.2025 | 1756 görüntüleme | 23 beğeni
Yazilim
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, ColumnAppBar, Scaffold, Image, ListViewForm, TextFormField, ButtonScaffold(
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)ProviderRiverpodBlocChangeNotifierProvider( 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, locationgoogle_maps_flutterhttpflutter_local_notificationsshare_plusdevice_calendarprovider 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 | 1771 | 10