Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ 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

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /