Skip to content

Latest commit

 

History

193 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Share: Android V1 🚀

When money comes in, My Share tells you exactly what to do next.

My Share is a manual-first, salary and payday planning companion for Android. It is designed around the philosophy of providing immediate financial clarity without requiring invasive bank syncs or complex setup.

🎯 V1 Release Candidate Features

  • The Hub: A focused, Jetpack Compose-driven interface to allocate and preview upcoming paydays.
  • Strategy & Drift: Keep track of financial goals, payday rules, and budget drift before it happens.
  • Paywall & Premium Options: Google Play Billing (8.3.0) integration offering deeper review histories and multiple recurring rules.
  • Revenue-First Free Ads: AdMob integration fortified by the Google User Messaging Platform (UMP) SDK to respect GDPR/CCPA. Eligible free users see ads after their first salary plan value is delivered: anchored banners on read-only Home/More surfaces, a native sponsored card in More, app-open ads from session 3, capped completed-action interstitials, and opt-in rewarded unlocks. Ads remain disabled for Premium/trial users, onboarding, paywall/purchase flows, salary/allocation input, edit forms, reminder permission flow, active keyboard states, and notification reminder deep links.
  • Background Reminders: WorkManager-powered local notifications for payday and weekly check-ins.

🛠️ Architecture

  • UI/UX: 100% Jetpack Compose using Material 3, optimized for compact devices and low-tier hardware.
  • Domain & Data: Clean architecture utilizing Kotlin Coroutines, Flow, and Hilt for dependency injection.
  • Billing: PlayBillingEntitlementRepository acts as the single source of truth for free vs. premium states.
  • Security: Keystore secrets and localized AdMob configurations are cleanly abstracted into Gradle properties outside the repository.

🚀 Getting Started

  1. Clone the repository.
  2. Add release-only secrets to ~/.gradle/gradle.properties or your CI secret store:
    MYSHARE_RELEASE_STORE_FILE=/path/to/keystore
    MYSHARE_RELEASE_STORE_PASSWORD=***
    MYSHARE_RELEASE_KEY_ALIAS=***
    MYSHARE_RELEASE_KEY_PASSWORD=***
    MYSHARE_ADMOB_APP_ID=***
    MYSHARE_ADMOB_BANNER_AD_UNIT_ID=***
    MYSHARE_ADMOB_NATIVE_AD_UNIT_ID=***
    MYSHARE_ADMOB_INTERSTITIAL_AD_UNIT_ID=***
    MYSHARE_ADMOB_APP_OPEN_AD_UNIT_ID=***
    MYSHARE_ADMOB_REWARDED_AD_UNIT_ID=***
  3. Sync Gradle and run on an Android Emulator or Device (Min SDK optimized for modern Android target).

📄 Documentation

  • Agent and contributor rules live in AGENTS.md.
  • For the extensive UI/UX component guidance, explore DESIGN.md.
  • Dated files in docs/ui-ux-qa-notes-* are historical QA evidence. Use them for context, but treat AGENTS.md and DESIGN.md as the current source of truth.
  • For Play Console Data Safety constraints, follow docs/play-data-safety.md.

Releases

Packages

Contributors

Languages