Premium Jetpack Compose showcase application for Russian real estate investment funds (ЗПИФ).
Architectural mirror of the iOS showcase · Web: vsezpif.pages.dev
- 📊 Fund catalog — search, segment filters, Canvas sparklines, skeleton loading, pull-to-refresh
- 📈 Fund details — 90-day price chart, metrics grid
- 🧮 Portfolio constructor — amount slider, live yield calculation
- 🔔 Price alerts — toggles, creation bottom sheet, notification channels
- 💼 Personal account — portfolio value, allocation donut (Canvas), payout calendar
- 📉 Proprietary VZPIF indices
- ✨ Glass cards, gold gradients, haptic feedback, Material Motion transitions
| UI | Jetpack Compose, Material 3 (fully customized), Navigation Compose |
| Charts | Compose Canvas — zero chart libraries |
| State | ViewModel + StateFlow |
| Data | kotlinx-serialization, local JSON from assets — zero network code |
| DI | Manual AppContainer / RepositoryModule |
minSdk 29 (Android 10) · targetSdk 35 · one app for all devices (phones, foldables, tablets)
Compose UI → MainViewModel (StateFlow) → FundsRepository (interface) → MockRepository → assets/funds.json
When the REST API ships, RepositoryModule.provideRepository() returns ApiRepository
instead of MockRepository — no screen changes. Same bet as the iOS showcase.
Fund names, tickers, ISINs and prices are a real MOEX ISS snapshot. All derived analytics is demo data, generated deterministically from ISIN (same xorshift64* generator as iOS) and labeled inside the app.
git clone <this repo>Open in Android Studio (Ladybug+) → pick any emulator/device → Run.
Or CLI: ./gradlew assembleDebug.
🟢 Showcase — built for demos. Not Play Store-ready by design: no app icon, no signing config, no privacy declarations.
| 🍎 iOS Showcase | https://github.com/vreklameblogers-max/vsezpif-ios |
| 🌐 Web Platform | https://github.com/vreklameblogers-max/Vsezpif |
| 🔗 Live Demo | https://vsezpif.pages.dev |