Project stage
Cross-platform prototype
Native iOS and Android foundations built around voice-first expense capture, multi-currency tracking, and local storage.
Project / app experiment
Just Spent started with one simple idea: tell Siri or Gemini something like "I just spent 20 dollars for groceries," and let the app log the expense for you. It is a native iOS and Android experiment around making everyday expense tracking feel as quick as speaking a sentence.
Project stage
Native iOS and Android foundations built around voice-first expense capture, multi-currency tracking, and local storage.
Test status
The repo keeps test status visible across iOS and Android, so the remaining reliability work is easy to track.
Architecture
SwiftUI/Core Data on iOS and Kotlin/Compose/Room on Android, with shared ideas for currency data, voice parsing, tests, and assistant entry points.
What it does
The app is not trying to become a heavy finance dashboard first. It starts with the most common problem: people forget to record expenses because opening a form takes too long. The real product bet is that voice assistants can make that capture step almost instant.
The intended flow is to tell Siri or Gemini, "I just spent 20 dollars for groceries," and have the app create the expense automatically.
Expenses can be grouped by currency. The app uses a default currency from the device locale and creates currency views when new currencies appear.
Common words like coffee, fuel, taxi, grocery, rent, medicine, books, and shopping map to useful spending categories.
The product is built around local persistence: Core Data for iOS and Room for Android. That keeps the basic expense history available without a server.
Siri/Shortcuts, Android voice, shortcuts, and App Functions are the planned integration surfaces for assistant-driven logging.
The project uses unit, UI, integration, and local CI checks as a major part of the experiment, not as an afterthought.
Build details
Current blockers
The repo does not show a broken idea; it shows a prototype that reached the point where the remaining work depends heavily on the assistant platforms becoming easier to trust, test, and ship.
The goal was natural voice logging through Siri, not just opening the app. At the time, Siri was not reliable enough for that full "I just spent 20 dollars for groceries" path, so the iOS AI integration is waiting for newer Siri and App Intents improvements.
The Android idea moved toward Gemini and app actions, but the Play Console testing and setup path became a blocker before the flow could be validated cleanly end to end.
One UI test still fails when checking that all expected currency tabs appear from test data. The docs say the test data exists, so the next step is to inspect UI state, accessibility identifiers, and tab generation timing.
Two phone UI tests still fail around the edit dialog: one cannot find the Cancel button quickly enough, and one checks category dropdown options before the dropdown appears reliably.
The app is phone-only. A tablet emulator caused many false failures, so CI should consistently use a phone AVD such as a Pixel profile.
The deployment guides and Fastlane lanes are useful, but the current roadmap still places store submission, beta testing, and post-launch monitoring in planned work.
Next steps
Restart the iOS assistant work when the newer Siri/App Intents direction is ready enough for a real voice-to-expense flow.
Revisit Android Gemini integration with a clearer Play Console testing path and less setup friction.
Finish the remaining UI test failures and update the status docs after a clean run.
Lock Android CI to a phone emulator and add validation so tablet AVDs are not picked accidentally.
Decide whether the project should stay a portfolio experiment or move toward a real beta release after assistant logging works.
Why this project matters
Just Spent is useful as a product idea, but it is also useful as a development record: architecture, test plans, local CI, platform-specific implementation, and release automation all live in one cross-platform app experiment.
The important part is not claiming that AI magically replaces engineering. The important part is using AI to move faster while still checking the work through tests, platform behavior, documentation, and honest status tracking.