15 Derslik Flutter Programı (Ayrıntılı ve Örnek Kodlarla)

Hedef: 15 derslik bir programda sıfırdan Flutter öğrenip basit bir uygulama geliştirmek.

Ders İşleyişi:

  • Her ders teorik ve pratik bölümlerden oluşacak.
  • Teorik bölümde ilgili konunun detaylı anlatımı, görseller ve videolarla desteklenecek.
  • Pratik bölümde ise öğrenilen bilgiler pekiştirilecek ve mini projeler ile uygulamaya geçirilecek.

Ders Programı:

1. Ders:

Teorik:

  • Flutter nedir?
    • Flutter’ın tarihçesi ve popülerliği
    • Flutter’ın avantajları ve dezavantajları
    • Flutter’ın kullanım alanları
    • Flutter ile hangi tür uygulamalar geliştirilebilir?
    • Flutter’ı kimler kullanır?
  • Dart programlama dili:
    • Değişkenler: Farklı veri tipleri, tanımlama, atama, kapsam
    • Temel operatörler: Matematiksel, mantıksal, karşılaştırma operatörleri
    • Yorumlar ve satır içi kod

Pratik:

  • Basit bir hesap makinesi uygulaması geliştirme
  • Farklı veri tiplerini kullanma
  • Temel operatörler ile hesaplama yapma

2. Ders:

Teorik:

  • Dart programlama dili:
    • Kontrol yapıları:
      • if ve else blokları
      • switch-case deyimi
      • for döngüsü
      • while döngüsü
      • do-while döngüsü
    • Fonksiyonlar:
      • Tanımlama, parametreler, dönüş tipi
      • Yerel ve global değişkenler
      • Fonksiyon çağrıları

Pratik:

  • Kullanıcıdan veri alan ve kontrol yapıları ile işleyen basit bir uygulama geliştirme
  • Fonksiyonlar kullanarak kod tekrarını önleme

3. Ders:

Teorik:

  • Dart programlama dili:
    • Sınıflar ve nesneler:
      • Sınıf tanımlama, nesne oluşturma
      • Kalıtım ve polimorfizm
      • Özellikler ve metodlar
      • Yapıcılar (constructor)
    • Koleksiyonlar:
      • Listeler, kümeler, haritalar
      • Temel işlemler ve fonksiyonlar

Pratik:

  • Kullanıcı bilgilerini saklayan ve yöneten bir sınıf geliştirme
  • Koleksiyonlar kullanarak verileri organize etme

4. Ders:

Teorik:

  • Kalıtım, arayüzler ve soyut sınıflar:
    • Kalıtım türleri: Tekli ve çoklu kalıtım
    • Soyut sınıflar ve soyut metodlar
    • Arayüzler (interface)
    • Kalıtım ve arayüzlerin kullanım alanları

Pratik:

  • Farklı nesneler arasında kalıtım ilişkisi kuran bir uygulama geliştirme
  • Arayüzler kullanarak kodun modülerliğini ve tekrar kullanılabilirliğini artırma

5. Ders:

Teorik:

  • Flutter temelleri:
    • Widget kavramı:
      • Widget nedir?
      • Widget türleri: Stateful ve stateless widget’lar
      • Widget yaşam döngüsü
    • Widget ağacı (Widget tree):
      • Widget’ların hiyerarşik organizasyonu
      • Widget ağacını oluşturma ve yönetme

Pratik:

  • Basit bir “Merhaba Dünya” uygulaması geliştirme
  • Farklı widget’ları kullanarak arayüz oluşturma

6. Ders:

Teorik:

  • Flutter temelleri:
    • Temel widget’lar:
      • MaterialApp ve Scaffold
      • Layout widget’ları: Container, Row, Column, Stack, vs.
      • Temel widget’lar: Text, Image, Icon, vs.
    • Widget’ların özelleştirilmesi:
      • Özelliklerin belirlenmesi
      • Stillerin ve temaların kullanımı

Pratik:

  • Farklı layout widget’ları kullanarak karmaşık bir arayüz oluşturma
  • Widget’ları özelleştir

7. Ders:

Teorik:

  • Widget İşlevselliği ve Etkileşim:
    • State yönetimi:
      • Stateful widget’lar ve state’i değiştirme
      • setState() metodu
      • Basit state yönetimi teknikleri
    • Kullanıcı etkileşimi:
      • GestureDetector widget’ı
      • onPressed, onTap gibi event handler’lar
      • Form widget’ları ve form doğrulama

Pratik:

  • Kullanıcıdan veri alan ve state yönetimi ile işleyen bir uygulama geliştirme
  • Form widget’ları kullanarak bir kayıt formu oluşturma
  • Form doğrulama ile hatalı girişleri kontrol etme

8. Ders:

Teorik:

  • Widget İşlevselliği ve Etkileşim:
    • Gelişmiş widget’lar:
      • Input, Slider, DropdownButton, etc.
      • Animasyonlar:
        • Basit animasyonlar ve geçişler
        • AnimationController ve Tween

Pratik:

  • Gelişmiş widget’ları kullanarak karmaşık bir arayüz oluşturma
  • Basit animasyonlar ve geçişler ekleme
  • AnimationController ve Tween kullanarak özel animasyonlar oluşturma

9. Ders:

Teorik:

  • Gelişmiş Konular:
    • Routing ve navigasyon:
      • Navigator ve Route widget’ları
      • Farklı sayfalar arasında geçiş
      • Parametre gönderme ve alma
    • State yönetimi için alternatif yaklaşımlar:
      • Provider
      • Bloc
      • GetX

Pratik:

  • Farklı sayfalar arasında navigasyon içeren bir uygulama geliştirme
  • Provider veya Bloc gibi alternatif state yönetimi yaklaşımlarını kullanma

10. Ders:

Teorik:

  • Gelişmiş Konular:
    • Uygulama performansı ve optimizasyonu:
      • Widget ağacı optimizasyonu
      • Görüntü optimizasyonu
      • Performans profilleme ve hata ayıklama

Pratik:

  • Uygulamanın performansını analiz etme ve optimize etme
  • Görüntüleri optimize etme ve bellek kullanımını azaltma

11. Ders:

Teorik:

  • Flutter paketleri ve API kullanımı:
    • Paket yönetimi: pubspec.yaml dosyası ve dependencies
    • Önemli Flutter paketleri: http, shared_preferences, flutter_bloc, vs.
    • Dart ve Flutter için API çağrıları ve veri işleme

Pratik:

  • Bir API’den veri alan ve gösteren bir uygulama geliştirme
  • HTTP paketini kullanarak API çağrıları yapma
  • Verileri işlemek ve görüntülemek için JSON ve FutureBuilder kullanma

12. Ders:

Teorik:

  • Firebase veya diğer backend servisleri entegrasyonu
    • Firebase Authentication ve Firestore
    • Veri depolama ve kullanıcı yönetimi

Pratik:

  • Firebase Authentication ve Firestore ile basit bir uygulama geliştirme
  • Kullanıcıları kaydetme ve doğrulama
  • Verileri Firestore’da depolamak ve okumak

13. Ders:

Teorik:

  • Çok platformlu uygulama geliştirme: iOS ve Android uyumluluğu
    • Platform kanalları ve platform özel kod yazma

Pratik:

  • Hem iOS hem de Android’de çalışan basit bir uygulama geliştirme
  • Platform kanalları kullanarak platform özel kod yazma

14. Ders:

Teorik:

  • Flutter web ve masaüstü uygulamaları oluşturma
    • Flutter web ve masaüstü için özel widget’lar ve API’ler

Pratik:

  • Basit bir web ve masaüstü uygulaması geliştirme
  • Flutter web ve masaüstü için özel widget’ları kullanma

15. Ders:

  • Proje sunumu ve değerlendirme
  • Öğrenilen bilgilerin pekiştirilmesi ve uygulamaya geçirme
  • Soru-cevap ve tartışma

Programın Ötesinde:

  • Derslerde işlenen konuların daha derinlemesine öğrenilmesi için ek kaynaklar ve referanslar paylaşılacaktır.
  • Öğrenilen bilgilerin pekiştirilmesi için mini projeler ve ödevler verilecektir.
  • Soru-cevap ve tartışma platformları aracılığıyla öğrenci-öğretmen etkileşimi sağlanacaktır

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir