Currency Converter
A private pre-release mobile app for fiat and cryptocurrency conversion, offline rates, favorites, and user-defined currencies, with a Play Store release planned.
- Role
- Mobile App Developer
- Ownership
- Independent product
- Scope
- Fiat, crypto + custom rates
- Status
- Private pre-release
The Challenge
Most currency tools handle one quick conversion well, but become awkward when users need to compare several favorites, work with cryptocurrency, or model values that do not come from a public exchange-rate API. This project brings those jobs into one consistent mobile experience that remains useful with unreliable connectivity.
My Role
I designed and built the application end to end, including the conversion workflow, custom calculator interface, rate retrieval and caching, favorites dashboard, cryptocurrency support, and the system for user-defined currencies and folders.
What I Delivered
- Fiat conversion: Current rates from the Frankfurter API with fast currency switching and readable results.
- Cryptocurrency support: The same calculator-led workflow for digital assets.
- Favorites dashboard: A quick view of frequently checked currencies relative to a chosen base currency.
- Custom currency model: Create, edit, search, favorite, and group user-defined currencies into folders.
- Offline behavior: Cache previously retrieved rates so common conversions remain available without a network connection.
Key Decisions
- Calculator-first interaction: A dedicated numpad keeps repeated conversions quick and avoids relying on a generic text field and keyboard.
- One mental model: Fiat, crypto, and custom currencies use the same From/To structure, reducing the learning curve as users move between modes.
- Local resilience: Persisted rates and preferences keep the app useful offline and preserve the user's working setup between sessions.
- Expandable custom data: Folders, search, sorting, and editable values let the product cover loyalty points, game economies, or any private unit of exchange.
Outcome
The current build is a working product in active development that already goes beyond a single exchange-rate screen. I am continuing to refine its features, polish, and testing before a planned release on the Google Play Store.
Release Automation
Every push to main triggers a GitHub Actions pipeline that builds a signed
release APK (Flutter + Java/Zulu toolchain), decodes the release keystore from a repository
secret, and publishes it as a versioned GitHub Release — so a working build is always
one push away without a manual export.
Tech Stack
- Application: Flutter, Dart, Provider
- Data: Frankfurter API, HTTP integration
- Local state: Shared Preferences and cached rates
- Release automation: GitHub Actions, signed APK builds, versioned GitHub Releases
- Release plan: Private development with a future Google Play Store launch