# Closer A private, warm, intentional space for couples to build deeper emotional connection. ## About Closer is a native Android app designed to help couples communicate better, learn more about each other, and create intentional moments together. It focuses on emotional closeness — not task management, not social media, not productivity. ## Screens & Features ### Onboarding & Auth - Welcome flow with app introduction - Create profile (display name, photo) - Sign up with email or Google - Login and password recovery - Anonymous trial mode ### Home - Suggested next-best action ranked by state - Latest daily question status - Quick-action cards for daily question, question packs, and history - Streak tracking display - Answer stats at a glance ### Daily Question - One question per day for the couple - Multiple answer types: written, choice, scale, this-or-that - Each partner answers privately, then both answers are revealed ### Question Packs **20 categories across 2,500+ questions:** - Fun, Communication, Conflict, Values, Emotional Intimacy - Physical Intimacy, Sex & Desire, Future, Money, Stress - Boundaries, Conflict Repair, Date Night, Difficult Conversations - Gratitude, Home Life, Marriage, Parenting, Rebuilding Trust, Trust Each pack has curated questions at varying depth levels. Packs are labeled as free or premium. ### Answer System - Private written, choice, scale, or this-or-that answers - Partner answer reveal flow - Local answer history with delete - Emoji reactions to partner answers - Threaded conversation around specific questions ### Spin Wheel (Wheel of Questions) - Pick a category, spin the wheel, get a random question - Session-based: spin multiple questions in one session - Full session history for premium users - Perfect for date nights, long drives, or quiet moments together ### Partner Pairing - Generate a 6-character invite code - Invite partner via email - Accept invite and confirm pairing - Partner home screen showing partner's activity ### Settings - Account management (email, display name, photo) - Notification preferences (reminders, quiet hours) - Privacy controls - Subscription management via RevenueCat - Relationship settings - Account deletion ## Subscription Model | Tier | Key Features | |------|-------------| | **Free** | Daily question, recent answer history, basic categories, basic reminders, streak tracking, limited spin wheel sessions | | **Premium** | All free features + premium question packs, full spin wheel access with saved history, unlimited questions, full answer history with search, custom questions, private notes, exportable memories, advanced reminders, AI-assisted suggestions (future) | Powered by RevenueCat + Google Play Billing. ## Tech Stack | Layer | Tech | |-------|------| | Language | Kotlin | | UI | Jetpack Compose, Material 3 | | Architecture | Clean Architecture (data / domain / ui / core) | | Navigation | Navigation Compose | | DI | Hilt | | Local Storage | Room, DataStore Preferences | | Backend | Firebase Auth, Firestore, Cloud Functions | | Notifications | Firebase Cloud Messaging | | Analytics | Firebase Analytics, Crashlytics | | Payments | RevenueCat | | Security | Firebase App Check (Play Integrity) | | Min SDK | 26 | | Target SDK | 35 | ## Architecture ``` app/ ├── core/ # Cross-cutting: analytics, billing, crash, features, Firebase, navigation, notifications ├── data/ # Data layer: Room DB, Firestore datasources, repository implementations, question JSON parser ├── domain/ # Domain layer: models, repository interfaces, use cases └── ui/ # Presentation layer: screens + viewmodels per feature area ├── answers/ # Answer history, answer reveal ├── auth/ # Login, signup, forgot password ├── components/ # Shared UI components (empty, error, loading states, special dates) ├── home/ # Home screen, partner home ├── onboarding/ # Onboarding flow, create profile ├── pairing/ # Invite creation, acceptance, confirmation ├── paywall/ # Subscription upsell ├── questions/ # Daily question, pack library, categories, composer, thread ├── settings/ # Account, notifications, privacy, relationship, subscription, delete ├── theme/ # Color, typography, theme configuration └── wheel/ # Category picker, spin wheel, session, history, complete ``` ## Data Sources - **Firestore** — user profiles, couple relationships, question threads, invites, entitlements - **Room** — local question cache, answered questions offline - **DataStore** — user preferences, feature flags, settings - **JSON assets** — bundled questions (2500+ across 20 categories) ## Build ```bash cd app/ ./gradlew assembleDebug # Build debug APK ./gradlew installDebug # Install on connected device/emulator ./gradlew assembleRelease # Build release APK (minified + shrunk) ``` ### Prerequisites - Android Studio Hedgehog or later - JDK 17 - Firebase project with Auth, Firestore, Cloud Messaging, and App Check configured - `google-services.json` in `app/` directory - RevenueCat project configured for Google Play ## Design Principles - **Warm & Intimate** — The app should feel like a private emotional space, not a productivity tool - **Privacy-first** — Data isolated by couple, strict Firestore rules - **Offline-resilient** — Room cache keeps the app fast without network - **Intentional** — Short, meaningful interactions. 5 good minutes > endless scrolling - **2026 modern** — Smooth Material 3 animations, instant feedback, no jank ## License Private project. All rights reserved.