Skip to content

Repository files navigation

🎴 Swipe Gallery

A modern, Tinder-style photo triage & gallery management app built with Compose Multiplatform.

Kotlin Compose Multiplatform Platform Design License


Download APK

🎬 Feature Walkthrough

🎴 Swipe & Album Triage 🗑️ Safe Pending Review ⚙️ Settings & Native Sharing
Swipe & Album Triage Safe Pending Review Settings & Native Sharing
Quẹt phân loại & Chọn Album
Quẹt trái/phải, Undo mượt mà và theo dõi tiến độ "Còn X / Y ảnh"
Kiểm duyệt hàng chờ xóa
Xem lại ảnh đã quẹt xóa, khôi phục ảnh nhầm hoặc dọn dẹp an toàn
Cài đặt & Quyền riêng tư
Xóa lịch sử an toàn, chia sẻ báo cáo dọn dẹp qua native share sheet

✨ Key Features

  • 🎴 Tinder-style Card Triage:
    • Quẹt phải để Giữ lại (Keep), quẹt trái để Đưa vào hàng chờ xóa (Delete).
    • Xử lý cử chỉ vật lý mượt mà đạt chuẩn 60fps với độ nghiêng xoay theo lực kéo và ngưỡng vuốt tùy biến.
  • 🔄 Physics-based Fly-in Undo Animation:
    • Khi ấn nút Hoàn tác (Undo), thẻ ảnh không xuất hiện đột ngột mà lướt và xoay ngược trở lại ngăn xếp từ đúng hướng vừa bị quẹt ra ngoài màn hình (sử dụng spring physics không gây nhấp nháy).
  • 🛡️ Safe Staging Review (Hàng đợi an toàn):
    • Ảnh quẹt xóa được gom vào hộp "Ảnh Chờ Xóa" thay vì xóa vĩnh viễn ngay lập tức.
    • Thanh tác vụ kép (Dual Action Bar): Cho phép người dùng Khôi phục (Restore) để giữ lại an toàn hoặc Xóa vĩnh viễn (Delete) kèm hộp thoại cảnh báo chống thao tác nhầm.
  • 📳 Hardware Haptic Feedback:
    • Tích hợp engine rung phần cứng đa nền tảng (Vibrator trên Android và UIImpactFeedbackGenerator trên iOS).
    • Rung phản hồi tức thì khi vượt ngưỡng quẹt thẻ, khi bấm các nút hành động và khi kích hoạt toggle cài đặt.
  • 🔥 Streak & Storage Metrics:
    • Gamification thúc đẩy thói quen dọn dẹp hàng ngày với chuỗi ngày liên tục (Streak) tính chuẩn xác theo múi giờ địa phương (Local Timezone).
    • Thống kê trực quan tổng dung lượng bộ nhớ đã giải phóng và tỷ lệ giữ lại ảnh.
  • 🔒 Privacy-First & 100% Offline:
    • Không yêu cầu quyền Internet, không gửi dữ liệu ra máy chủ bên ngoài.
    • Đọc và đồng bộ trực tiếp với thư viện ảnh hệ thống qua Android MediaStore API.

🛠️ Architecture & Tech Stack

Dự án được xây dựng theo kiến trúc Clean Architecture kết hợp mô hình MVI/MVVM:

SwipeGallery/
├── composeApp/                     # 100% Shared UI & Business Logic (KMP)
│   ├── commonMain/
│   │   ├── components/            # SwipeableCard, FullscreenViewer, PhotoView
│   │   ├── domain/models/         # PhotoItem, Album
│   │   ├── screens/               # DiscoverScreen, AlbumScreen, PendingReviewScreen, SettingsScreen
│   │   └── data/repository/       # PhotoRepo, SwipePreferences
│   ├── androidMain/               # Android Platform Implementations (Haptics, BackHandler)
│   └── iosMain/                   # iOS Platform Implementations (Haptics, BackHandler)
└── androidApp/                    # Android Application Entry Point
    └── src/main/                  # MainActivity, Permissions, Manifest
  • Core Language: Kotlin 2.3.20 (Kotlin Multiplatform)
  • UI Toolkit: Compose Multiplatform 1.10.3 (Jetpack Compose shared across platforms)
  • Design System: Material Design 3 OLED Dark Theme
  • Asynchronous: Kotlin Coroutines & StateFlow / SharedFlow
  • Image Loading: Coil 2.7.0 (Async image fetching & cache management)
  • Local Storage: Multiplatform Key-Value Preferences

🚀 Getting Started

Yêu cầu môi trường

  • JDK: 17 hoặc mới hơn
  • Android SDK: Compile SDK 37, Min SDK 30
  • Android Studio: Ladybug / Koala hoặc IntelliJ IDEA mới nhất

Cài đặt & Build APK

  1. Clone repository:

    git clone https://github.com/plozdev/SwipeGallery.git
    cd SwipeGallery
  2. Chạy kiểm thử Unit Tests:

    ./gradlew testAndroidHostTest
  3. Build file APK Debug / Demo:

    ./gradlew :androidApp:assembleDebug

    File APK hoàn chỉnh sẽ được tạo tại: androidApp/build/outputs/apk/debug/androidApp-debug.apk


📄 License

Dự án được phân phối dưới giấy phép MIT License.

About

🎴 Modern Tinder-style photo triage & gallery cleaner mobile app built with Compose Multiplatform, Kotlin & Clean Architecture.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages