Skip to content
/ PicOff Public

A native Android app for social photo challenges built with Kotlin, MVVM, and Firebase. Features real-time sync and robust state management.

License

Notifications You must be signed in to change notification settings

libaum/PicOff

Repository files navigation

📸 Pic Off

Social Photo Challenge App for Android

Kotlin Android Firebase License

💡 About

Pic Off makes photo challenges fun and effortless. Built natively with Kotlin, it allows users to challenge friends to take the best picture based on a specific theme.

The goal was to engineer a robust Single-Activity application utilizing MVVM architecture to handle complex state transitions seamlessly.


📱 Screenshots

Home & Feed Challenges Start New Challenge
Home Screen Create Screen Voting Screen

🛠 Tech Stack

  • Architecture: MVVM, Single Activity (Navigation Component), ViewBinding
  • Core: Kotlin, Coroutines, LiveData
  • Backend (Firebase): Auth (Google Sign-In), Realtime Database, Storage
  • Key Features: AlarmManager (Resilient Notifications), Camera Intents, Offline Support

🔄 Challenge State Logic

Managing the lifecycle of a challenge between two users is handled via a state machine in the MainViewModel:

graph LR
    A[Sent] --> B[Open]
    B --> C[Vote Recipient]
    C --> D[Vote Challenger]
    D --> E[Result]
    E --> F[Done]
Loading
  1. Sent: Challenger sends request.
  2. Open: Recipient accepts and uploads photo.
  3. Vote Recipient: Recipient votes.
  4. Vote Challenger: Challenger votes.
  5. Result: Winner is calculated and displayed.
  6. Done: Challenge completed.

📥 Installation

  1. Clone the repo

    git clone https://github.com/libaum/PicOff.git
  2. Firebase Setup

    • Add your own google-services.json to the /app directory.
  3. Build

    • Open in Android Studio (Electric Eel+) and run (minSdk 26).

Built with ❤️ and Kotlin for Android

About

A native Android app for social photo challenges built with Kotlin, MVVM, and Firebase. Features real-time sync and robust state management.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages