Skip to content

harrydbarnes/FaceLapse

Repository files navigation

FaceLapse

FaceLapse is an Android application for creating time-lapse videos of faces. It allows users to import photos, automatically align them based on face detection, and generate high-quality MP4 videos with optional date overlays.

Features

  • Photo Sources:

    • Import photos from Google Photos and Local Storage via the unified Android Photo Picker.
    • Support for browsing, selecting, and re-selecting images.
  • Face Alignment:

    • Uses ML Kit for on-device face detection.
    • Automatically crops and aligns images to ensure the face remains consistent across frames.
  • Project Management:

    • Create multiple projects.
    • Add, remove, and reorder photos (using arrow buttons).
    • Re-run face alignment on demand.
    • All edits are stored locally using Room Database.
  • Output Animation:

    • Generate MP4 time-lapse videos.
    • Export to local storage and share via Android Sharesheet.
  • Date Overlay:

    • Optional date label on the video.
    • Toggle overlay per project.
    • Global settings for font size, date format, and "Day of Week" display.
  • Material 3 Expressive Style:

    • Built with Jetpack Compose and Material 3.
    • Supports Dynamic Colors and Light/Dark themes.
    • Adaptive Layout: Uses a Bottom Navigation Bar on narrow screens and a Navigation Rail on wide screens.
  • Performance & Privacy:

    • All processing is done on-device.
    • Permissions are minimized (uses Photo Picker).

Build Instructions

To build the project, use Gradle:

# Debug APK
./gradlew assembleDebug

# Release APK (Unsigned by default)
./gradlew assembleRelease

Dependencies

  • UI: Jetpack Compose (Material 3)
  • Image Loading: Coil
  • DI: Hilt
  • Database: Room
  • Storage: DataStore
  • ML: ML Kit Face Detection
  • Navigation: Compose Navigation

CI/CD Workflow

The project uses GitHub Actions for continuous integration and delivery:

  • Build: Runs on every push and pull request to main to verify the build and run tests.
  • Release: Automated versioning and release. Pushes to main trigger a version bump and tag creation. Pushes of new tags trigger the release creation and artifact upload.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages