Skip to content

yusufkecer/reelix

Repository files navigation

🎬 Reelix

Flutter ile geliştirilmiş, kullanıcıların film listesini görüntüleyebildiği, favorilere ekleyebildiği ve profil yönetimi yapabildiği modern bir mobil uygulamadır.
Clean Architecture + MVVM + BLoC state management prensipleriyle geliştirilmiştir.


🚀 Özellikler

1. Kimlik Doğrulama

  • Kullanıcı kayıt ve giriş işlemleri
  • Oturum tokenının güvenli bir şekilde saklanması
  • Kayıtlı oturumun korunması ve uygulamaya giriş yapılması
  • Başarılı giriş sonrası otomatik ana sayfa yönlendirmesi

2. Ana Sayfa

  • Sonsuz kaydırma (Infinite Scroll) ile film listesi
  • Her sayfada 5 film gösterimi
  • Otomatik yükleme göstergesi
  • Pull-to-refresh desteği
  • Favori film ekleme/çıkarma işlemlerinde anlık UI güncellemesi

3. Profil

  • Kullanıcı bilgilerini görüntüleme
  • Favori filmler listesi
  • Profil fotoğrafı yükleme özelliği

4. Navigasyon

  • Bottom Navigation Bar ile sayfalar arası geçiş
  • Ana sayfa state yönetimi ve korunması
  • Navigation Service ile merkezi yönlendirme yönetimi (auto_route)

5. UI & Tema

  • Custom Theme desteği (renk, yazı tipi, boyutlandırma)
  • Responsive UI (flutter_screenutil)
  • Animasyon implementasyonları (Lottie vs.)

6. Çoklu Dil Desteği 🌍

  • easy_localization ile çoklu dil desteği
  • Türkçe ve İngilizce dil desteği
  • Dinamik dil değiştirme özelliği

7. Firebase Entegrasyonu 🔥

  • Firebase Crashlytics → Crash ve hata takibi

8. Diğer Özellikler

  • Logger Service → Gelişmiş log yönetimi (logger)
  • Splash Screen ve uygulama ikonları (flutter_native_splash, icons_launcher)
  • Güvenli token yönetimi (shared_preferences + cache layer)

📂 Proje Mimarisi

Uygulama Clean Architecture ve MVVM prensiplerine uygun olarak geliştirilmiştir.
Katmanlar şu şekilde yapılandırılmıştır:

└── 📁lib
    ├── 📁core
    │   ├── 📁base
    │   ├── 📁cache
    │   ├── 📁constants
    │   ├── 📁enums
    │   ├── 📁env
    │   ├── 📁exception
    │   ├── 📁extension
    │   ├── 📁init
    │   │   └── 📁language
    │   │       └── 📁cubit
    │   ├── 📁network
    │   ├── 📁router
    │   ├── 📁theme
    │   ├── 📁util
    │   │   ├── 📁constants
    │   │   ├── 📁dialogs
    │   │   ├── 📁model
    │   │   │   └── 📁network
    │   │   └── 📁space
    │   └── 📁widget
    ├── 📁domain
    │   └── 📁entity
    ├── 📁feature
    │   ├── 📁home
    │   │   ├── 📁cubit
    │   │   ├── 📁model
    │   │   ├── 📁service
    │   │   └── 📁view
    │   ├── 📁login
    │   │   ├── 📁cubit
    │   │   ├── 📁model
    │   │   ├── 📁service
    │   │   └── 📁view
    │   ├── 📁movies
    │   │   ├── 📁cubit
    │   │   ├── 📁model
    │   │   ├── 📁service
    │   │   └── 📁view
    │   ├── 📁profile
    │   │   ├── 📁cubit
    │   │   ├── 📁model
    │   │   ├── 📁service
    │   │   └── 📁view
    │   ├── 📁register
    │   │   ├── 📁cubit
    │   │   ├── 📁model
    │   │   ├── 📁service
    │   │   └── 📁view
    │   ├── 📁splash
    │   │   └── 📁view
    │   └── 📁upload_photo
    │       ├── 📁cubit
    │       ├── 📁model
    │       └── 📁view
    ├── 📁injection
    └── main.dart

🧩 Mimari Diyagram

        +-----------------------+
        |     Presentation      |
        |-----------------------|
        | View (Widget, Page)   |
        | ViewModel (Cubit/Bloc)|
        | UI Widgets            |
        +-----------▲-----------+
                    |
                    |
        +-----------▼-----------+
        |        Domain         |
        |-----------------------|
        | Entities              |
        | UseCases              |
        | Repository Interfaces |
        +-----------▲-----------+
                    |
                    |
        +-----------▼-----------+
        |         Data          |
        |-----------------------|
        | Repository Impl.      |
        | Remote Data Sources   |
        | Local Data Sources    |
        +-----------------------+
  • Presentation Layer → UI, Bloc/Cubit, ViewModel
  • Domain Layer → İş kuralları, UseCase, Entity, Repository interface
  • Data Layer (Core + Feature) → Repository implementasyonları, API & Cache işlemleri

🛠️ Kullanılan Paketler

Paket Açıklama
flutter_bloc State management
equatable Model karşılaştırma kolaylığı
dio HTTP istekleri
flutter_native_splash Splash ekran
icons_launcher Uygulama ikonları
get_it Dependency Injection (DI)
injectable DI code generator
auto_route Otomatik route yönetimi
json_annotation / json_serializable Model serileştirme
logger Loglama
lottie Animasyonlar
shared_preferences Local storage
infinite_scroll_pagination Sonsuz kaydırma
envied Ortam değişkenleri
flutter_screenutil Responsive tasarım
kartal Extension yardımcıları
image_picker Fotoğraf seçimi
flutter_svg SVG desteği
cached_network_image Görsellerin cache’lenmesi

📷 Ekran Görüntüleri

Screenshot_1756329935 Screenshot_1756329937 Screenshot_1756330007 Screenshot_1756330010 Screenshot_1756330102 Screenshot_1756329973 Screenshot_1756329969 Screenshot_1756330206 Screenshot_1756329978 Screenshot_1756329990 Screenshot_1756330135 Screenshot_1756330156 Screenshot_1756329983 Screenshot_1756329992

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors