Premium Flutter Animasyonları Sergileme Uygulaması
Gerçek dünya uygulamalarından ilham alınmış, prodüksiyon kalitesinde animasyon örnekleri
Flutter Motion Lab, Flutter'da yüksek kaliteli animasyonların nasıl oluşturulacağını gösteren bir showcase (sergileme) uygulamasıdır. Bu proje, popüler uygulamalardan (Spotify, Duolingo gibi) ilham alınarak hazırlanmış animasyon demolarını içerir.
- Flutter'da ileri seviye animasyon tekniklerini öğrenmek ve sergilemek
- Lottie, AnimatedBuilder ve özel animasyon controller'ları kullanımını göstermek
- Clean Architecture prensipleriyle organize edilmiş, genişletilebilir kod yapısı sunmak
- Gerçek uygulama senaryolarında animasyonların nasıl kullanıldığını pratik olarak göstermek
- Lottie ile equalizer animasyonu
- just_audio paketi ile gerçek ses çalma desteği
- Şarkı ileri/geri sarma, oynat/duraklat kontrolleri
- Dinamik progress bar ve süre göstergesi
- Pulse efektli gradient arka plan
- Eurovision Türkiye şarkıları playlist'i
- AnimatedBuilder ile ölçekleme ve sallanma animasyonu
- Confetti (konfeti) parçacık animasyonları
- Glow efektli kartlar
- XP kazanım badge'leri
- Bounce ve elastic easing efektleri
- Modern, koyu tema tasarım
- Material Design 3 uyumlu
- Haptic feedback (dokunsal geri bildirim)
- Smooth sayfa geçiş animasyonları
- Responsive ve modüler widget yapısı
| Paket | Versiyon | Kullanım Amacı |
|---|---|---|
flutter |
SDK | Temel framework |
lottie |
^3.1.0 | JSON tabanlı vektör animasyonları (After Effects export) |
rive |
^0.13.0 | İnteraktif animasyonlar için (gelecek demolar için) |
just_audio |
^0.10.5 | Cross-platform ses çalma desteği |
cupertino_icons |
^1.0.6 | iOS tarzı ikonlar |
lib/
├── main.dart # Uygulama giriş noktası
├── core/ # Çekirdek modüller
│ └── theme/
│ └── app_theme.dart # Uygulama teması ve stil tanımları
└── features/ # Feature-based mimari
└── animation_showcase/
├── data/
│ └── demo_animations.dart # Demo listesi ve metadata
├── domain/
│ └── animation_demo.dart # AnimationDemo model sınıfı
└── presentation/
├── pages/
│ ├── home_page.dart # Ana sayfa
│ ├── spotify_now_playing_page.dart # Spotify demo
│ └── duolingo_celebration_page.dart # Duolingo demo
└── widgets/
└── demo_card.dart # Demo kartı widget'ı
assets/
├── animations/
│ └── equalizer.json # Lottie equalizer animasyonu
└── audio/
├── song1.mp3 # We Could Be the Same - maNga
├── song2.mp3 # Everyway That I Can - Sertab Erener
└── song3.mp3 # Düm Tek Tek - Hadise
- Flutter SDK: 3.9.2 veya üzeri
- Dart SDK: 3.9 veya üzeri
- IDE: VS Code (önerilen) veya Android Studio
- Desteklenen Platformlar: Android, iOS, Web, Windows, macOS, Linux
git clone https://github.com/dusova/motionlab-flutter.git
cd motionlab-flutterflutter pub getflutter doctorTüm kontrollerin ✓ işareti ile geçtiğinden emin olun.
# Debug modda çalıştır
flutter run
# Release modda çalıştır (performans testi için)
flutter run --releaseflutter run -d iosflutter run -d chromeflutter run -d windowsflutter run -d macosflutter run -d linux# Mevcut cihazları listele
flutter devices
# Belirli bir cihazda çalıştır
flutter run -d <device_id>- Ana Sayfa: Uygulama açıldığında mevcut animasyon demolarını listeleyen ana sayfa görüntülenir
- Demo Seçimi: Herhangi bir demo kartına tıklayarak ilgili animasyon sayfasına geçiş yapın
- Spotify Demo: Şarkıları çalın, duraklatın ve playlist'te gezinin
- Duolingo Demo: Kutlama animasyonunu izleyin ve "Tekrar" butonuyla yeniden oynatın
- Geri Dönüş: Sayfa üzerindeki geri tuşu veya aşağı ok ile ana sayfaya dönün
# Debug APK
flutter build apk --debug
# Release APK
flutter build apk --release
# APK Split (boyut optimizasyonu)
flutter build apk --split-per-abiAPK dosyası: build/app/outputs/flutter-apk/ klasöründe oluşturulur.
flutter build appbundle --releaseflutter build ios --releaseflutter build web --releaseBuild çıktısı: build/web/ klasöründe oluşturulur.
flutter build windows --release# Tüm testleri çalıştır
flutter test
# Coverage ile test çalıştır
flutter test --coverageBu projede kullanılan animasyon tekniklerini öğrenmek için:
- Özel animasyon controller'ları oluşturma
- Tween ve CurvedAnimation kullanımı
vsyncveTickerProviderStateMixin
- After Effects'ten export edilen JSON animasyonları
- AnimationController ile senkronizasyon
- Performans optimizasyonu
just_audioile cross-platform ses çalma- Stream listener'lar ile durum yönetimi
- Playlist ve şarkı geçişleri
- Bu repository'yi fork edin
- Feature branch oluşturun (
git checkout -b feature/YeniAnimasyon) - Değişikliklerinizi commit edin (
git commit -m 'Yeni animasyon eklendi') - Branch'inizi push edin (
git push origin feature/YeniAnimasyon) - Pull Request açın
- Rive animasyon demoları eklenmesi
- Hero animasyonları örneği
- Custom painter ile çizim animasyonları
- Implicit animations koleksiyonu
- Physics-based animasyonlar
- Staggered animasyonlar
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.
Mustafa Arda Düşova - Kırklareli Üniversitesi Bilgisayar Programcılığı 2. Sınıf Öğrencisi
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!
Made with ❤️ and Flutter