Back to portfolio

Ad-free Android · Finance · com.michael.microbudgeting

Micro Budgeting ad-free Android app icon

Micro Budgeting

Ad-free offline budgeting app for Android. Track expenses, category budgets, charts, and encrypted backups — no ads, no bank login, no internet permission.

Completely ad-free — no ads, no trackers, no sponsored clutter.

Ad-free Android app

What is Micro Budgeting?

Micro Budgeting is an ad-free, offline Android expense tracker for logging everyday spending, setting category budgets, and reviewing monthly charts — without accounts, ads, or bank connections.

Ad-free advantage: Completely ad-free — no ads, no trackers, no sponsored clutter. MichaelSam94 apps are built without banner ads, interstitial ads, or video ad interruptions.

Key capabilities

  • Manual expense logging by category
  • Monthly category budgets and charts
  • Paste bank-alert text parsing (no SMS inbox access)
  • Passphrase-encrypted local backups
  • No ads and no internet permission

Frequently asked questions

Is Micro Budgeting ad-free?

Yes. Micro Budgeting is completely ad-free and does not show finance ads or sponsored offers.

Does Micro Budgeting connect to my bank?

No. It is offline by design with no bank sync. You log expenses manually or paste alert text for review.

Can I back up my budget data privately?

Yes. Export and import use passphrase-based AES-GCM encryption so backups stay under your control.

Micro Budgeting is an ad-free, offline Android expense tracker for logging everyday spending, setting category budgets, and reviewing monthly charts — without accounts, ads, or bank connections.

Ad-free: Completely ad-free — no ads, no trackers, no sponsored clutter.

Build status and coverage badges are not shown because this repository does not currently include CI or coverage configuration.

Project Overview

Micro Budgeting is an offline Android app for tracking everyday expenses, setting category budgets, and reviewing monthly spending. It is built for people who want a small personal finance tool without accounts, cloud sync, bank connections, or internet permission.

The app stores data locally, uses SQLCipher-backed Room storage on real devices, and supports passphrase-protected export

Key Features

  • 🔒 Offline by design: the manifest declares no internet, SMS, contacts, location, camera, or microphone permissions.
  • 🧾 Manual expense logging: add amount, category, note, and date for each transaction.
  • 🏷️ Category budgets: set spending caps and track remaining budget by category and month.
  • 📊 Spending charts: review monthly distribution and budget progress with Compose visualizations.
  • 📨 Bank alert parsing: paste transaction alert text manually to extract an amount and suggested category for review.
  • 🔐 Encrypted local backups: export and import budget data with passphrase-based AES-GCM encryption.
  • 🎨 Store-ready branding: includes launcher icons, a feature graphic, phone screenshots, and tablet screenshots.
  • 🧪 Screenshot automation: Roborazzi tests regenerate Play Store assets from deterministic seeded scenes.

Architecture Overview

Components And Layers

  • MainActivity starts the Compose app, enables edge-to-edge drawing, and creates FinanceViewModel.
  • presentation/ contains tabs, dialogs, charts, bottom navigation, toolbar branding, and UI state rendering.
  • domain/ defines Category, Transaction, Budget, BudgetSummary, and repository interfaces.
  • data/repository/ maps Room entities to domain models and seeds default categories.
  • data/local/db/ contains Room entities, DAOs, and SQLCipher database setup.
  • data/sms/SmsParser.kt parses manually pasted bank alert text; it does not read the device inbox.
  • data/backup/EncryptedBackupSerializer.kt serializes backup payloads with Moshi and encrypts them with AES-GCM.

Data Flow

1. A user adds an expense, configures a budget, pastes a bank alert, or imports/exports a backup. 2. Compose UI events call FinanceViewModel methods. 3. The ViewModel validates input and delegates persistence work to repository interfaces. 4. Repository implementations write Room entities to the encrypted local database. 5. Room Flow streams feed updated categories, transactions, and budgets back to the UI. 6. Backup export serializes local data, encrypts it with a passphrase, and places the encoded payload where the user can copy or save it.

Design Patterns

  • MVVM for UI state, user actions, and lifecycle-aware data observation.
  • Repository interfaces to separate domain behavior from Room persistence.
  • A small dependency container in AppContainerImpl for application-level wiring.
  • Reactive Kotlin Flow streams for month-scoped transaction and budget summaries.
  • Test-only fixtures for deterministic Play Store screenshot generation.

Tech Stack & Libraries

LayerTechnologyVersionPurpose
LanguageKotlin2.2.10Android app implementation
BuildAndroid Gradle Plugin9.1.1Android build system
UIJetpack Compose Material 3Compose BOM 2024.09.00Declarative UI
ActivityAndroidX Activity Compose1.10.1Compose activity entry point
LifecycleAndroidX Lifecycle2.8.7ViewModel and lifecycle-aware state
NavigationAndroidX Navigation Compose2.8.9Available dependency; current UI uses tabs
PersistenceRoom2.7.0SQLite abstraction and DAO generation
SQLiteAndroidX SQLite2.6.2SQLite integration
EncryptionSQLCipher Android4.16.0Encrypted local database storage
Key StorageAndroidX Security Crypto1.1.0-alpha06MasterKey and encrypted preferences
JSONMoshi1.15.2Backup payload serialization
Networking libsOkHttp / Retrofit4.10.0 / 2.12.0Present as dependencies, not used for app networking
CoroutinesKotlinx Coroutines1.10.2Background work and Flow collection
ScreenshotsRoborazzi1.59.0Play Store screenshot and feature graphic generation
JVM Android testsRobolectric4.16.1Local Android runtime tests
Unit testsJUnit4.13.2Test runner and assertions

Configuration

The primary app configuration lives in app/build.gradle.kts:

  • namespace: com.michael.microbudgeting
  • applicationId: com.michael.microbudgeting
  • minSdk: 24
  • targetSdk: 36
  • compileSdk: 36.1
  • versionCode: 5
  • versionName: 1.0.3

Release signing is configured in the signingConfigs.release block. Credentials can come from environment variables or from key.properties; keep keystores and passwords out of public repositories.

Theme and brand colors live in:

  • app/src/main/java/com/michael/microbudgeting/ui/theme/Color.kt
  • app/src/main/java/com/michael/microbudgeting/ui/theme/Theme.kt
  • app/src/main/res/values/colors.xml

Gradle restart or sync is required after changing build files, dependency versions, signing settings, or SDK versions.

Usage / Quick Start

Build, Install, And Launch

./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell monkey -p com.michael.microbudgeting 1

Generate A Signed Release Bundle

Set STORE_PASSWORD and KEY_PASSWORD in the shell or key.properties before running Gradle.

export KEYSTORE_PATH=/absolute/path/to/my-upload-key.jks
export KEY_ALIAS='upload'
./gradlew :app:bundleRelease

The release bundle is written to:

app/build/outputs/bundle/release/app-release.aab

Regenerate Play Store Assets

./gradlew generatePlayStoreAssets

Generated assets are written to:

API Reference

Not applicable. Micro Budgeting is a local Android application and does not expose an HTTP API, SDK, command-line API, or public service endpoint.

Testing

JVM And Robolectric Tests

./gradlew :app:testDebugUnitTest

Test locations:

  • app/src/test/java/com/michael/microbudgeting/
  • app/src/test/java/com/michael/microbudgeting/playstore/

Naming convention: JVM and Robolectric tests use *Test.kt. Play Store screenshot tests are marked with the PlayStoreScreenshotTests JUnit category and are included when screenshot generation is requested.

Instrumented Tests

./gradlew :app:connectedDebugAndroidTest

Instrumented tests live in app/src/androidTest/.

Screenshot And Store Asset Tests

./gradlew generatePlayStoreAssets

Coverage

Not configured. No JaCoCo, Kover, or hosted coverage report is present in this repository.

Deployment

Debug APK

./gradlew :app:assembleDebug

Output:

app/build/outputs/apk/debug/app-debug.apk

Release AAB For Google Play

./gradlew :app:bundleRelease

Output:

app/build/outputs/bundle/release/app-release.aab

Before uploading to Play Console, confirm:

  • versionCode is greater than the last uploaded bundle.
  • The Play Store app name is Micro Budgeting.
  • The installed app label is Micro Budgeting.

Docker And Cloud

Not applicable. This repository builds a native Android app and has no Dockerfile, server process, cloud deployment target, or backend health endpoint.

Health Check

Not applicable for a server endpoint. For app health, run tests, install the APK on a test device, and verify that the app launches and can add an expense, parse pasted alert text, and export/import a backup.

InsightlySpend ad-free Android app iconFinance
InsightlySpend

Ad-free local-first finance app for Android. Track income and expenses, budgets, insights, receipt vault, CSV/PDF export, and biometric lock — no ads cluttering your money data.

com.michael.insightlyspend
Subtrackr ad-free Android app iconFinance
Subtrackr

Ad-free subscription tracker for Android. Monitor recurring payments, renewals, and monthly costs in one dashboard — no ads interrupting your bill overview.

com.aistudio.subtrackr
AuraSound ad-free Android app iconAudio
AuraSound

Ad-free offline ambient sound mixer for Android. Layer focus, nature, ambient, and sleep loops with volume controls, presets, and a sleep timer — no ads, no streaming account.

com.michael.aurasound
BLE Finder ad-free Android app iconDeveloper
BLE Finder

Ad-free BLE scanner for Android. Find nearby Bluetooth Low Energy devices with RSSI radar, hot/cold proximity, and optional audio pings — no ads while you track peripherals.

com.michael.blefinder
Bulk QR & Barcode Suite ad-free Android app iconScanner
Bulk QR & Barcode Suite

Ad-free bulk QR and barcode scanner for Android. High-speed batch scanning, CSV/Excel exports, and branded logo QR generation — no ads, offline-first inventory tools.

com.michael.bulkqrscanner
ClearVoice AI ad-free Android app iconAI
ClearVoice AI

Ad-free on-device speech enhancer for Android. Isolate vocals, reduce echo and static, batch-process audio, and use live loopback — no ads, no cloud audio uploads.

com.michael.clearvoiceai
ClipVault ad-free Android app iconProductivity
ClipVault

Ad-free privacy clipboard manager for Android. Encrypted local clipboard history, regex triggers, and offline text transforms — no ads, no internet permission, no cloud sync.

com.michael.clipvault
DevPocket ad-free Android app iconDeveloper
DevPocket

Ad-free offline developer utilities for Android: code workspace, JSON/XML formatters, regex playground, JS sandbox, and reference docs — no ads, no telemetry, on-device.

com.michael.devpocket

All ad-free Android app names

Complete index of completely ad-free Android apps by Michael Samuel Naeem on Google Play and GitHub — utility, privacy, productivity, developer, media, finance, and device tools with no ads. Completely ad-free — no ads, no trackers, no sponsored clutter. Every listed Android app is published without ads. Search engines can discover each exact product name, package, marketplace listing, and source page from this index.

  • AuraSound ad-free · Audio · com.michael.aurasound · ad-free ambient sound mixer Android
  • BLE Finder ad-free · Developer · com.michael.blefinder · ad-free BLE scanner Android
  • Bulk QR & Barcode Suite ad-free · Scanner · com.michael.bulkqrscanner · ad-free bulk QR barcode scanner
  • ClearVoice AI ad-free · AI · com.michael.clearvoiceai · ad-free noise reduction Android
  • ClipVault ad-free · Productivity · com.michael.clipvault · ad-free clipboard manager Android
  • DevPocket ad-free · Developer · com.michael.devpocket · ad-free developer toolkit Android
  • Doc Scanner Vectorizer ad-free · Document · com.michael.docscannervectorizer · ad-free document scanner Android
  • EdgeFlow ad-free · Utility · com.michael.edgeflow · ad-free edge gestures Android
  • FolderFlow ad-free · Productivity · com.michael.folderflow · ad-free app organizer Android
  • FrozenDroid ad-free · Utility · com.michael.frozendroid · ad-free app freezer Android Shizuku
  • InsightlySpend ad-free · Finance · com.michael.insightlyspend · ad-free personal finance Android
  • Micro Budgeting ad-free · Finance · com.michael.microbudgeting · ad-free offline budget app Android
  • NotchCommand ad-free · Utility · com.michael.notchcommand · ad-free notch shortcuts Android
  • PDF Toolkit ad-free · Document · com.michael.pdftoolkit · ad-free PDF toolkit Android
  • Photo Optimizer ad-free · Media · com.michael.photo.optimizer · ad-free photo compressor Android
  • PrivAI ad-free · AI · com.michael.privai · ad-free on-device AI notes OCR
  • SensorScope ad-free · Developer · com.michael.sensorscope · ad-free Android sensor diagnostics
  • Smooth-Mo ad-free · Utility · com.michael.smoothmo · ad-free slow motion video Android
  • StoreClear ad-free · Utility · com.michael.storeclear · ad-free storage cleaner Android
  • Subtrackr ad-free · Finance · com.aistudio.subtrackr · ad-free subscription tracker Android
  • Tic Tac Toe ad-free · Game · com.michael.tic_tac_toe · ad-free tic tac toe Android
  • Todo App ad-free · Productivity · com.michael.todoapps · ad-free todo list Android
  • WalkPlanner ad-free · Health · com.michael.walkplanner · ad-free walk route planner Android
  • Wi-Fi Drop ad-free · Utility · com.michael.wifidrop · ad-free Wi-Fi file transfer Android