Production
MentalMind
iOS App · Meditation
Meditation and self-development app rebuilt from scratch and shipped under tight deadlines.
- iOS App
- Meditation
- UIKit
- StoreKit
- AVFoundation
- RxSwift

Summary
Meditation and self-development app with onboarding, content discovery, playback customization, habit reminders, progress tracking, and subscription paywalls. I joined late when the existing codebase was incomplete and low quality, rewrote the app from scratch to hit a fixed deadline, and handled App Store release. Key highlights:
- Full rewrite under a tight timeline to ship a production-ready v1
- Audio player with voice + background sound selection
- Subscription flow with server receipt validation and restore handling
Quick facts
- Role: Sole iOS Developer (project takeover + rewrite)
- Timeframe: 1 month delivery window
- Platform: iOS (iPhone)
- Status: Discontinued (was live on the App Store for years)
- Team: Solo (handoff from previous developer)
Problem
- Project was ~30% done with low-quality code and a near-term launch deadline.
- Needed a stable content app with many screens, offline/error states, and subscription access control.
- Required multiple auth methods and localization (RU/KZ) without time for a heavy architecture refactor.
Solution
I rebuilt the app from scratch with a pragmatic MVVM/MVC hybrid and RxSwift to keep feature delivery fast. The app shipped with a clean navigation structure (Home/Tools/Create/Profile), content catalogs and detail screens, a configurable meditation player, reminders, progress history, and StoreKit subscriptions with server-side receipt posting. I also drove App Store publishing and post-launch stability work.
- Focused on reliability and scope control over long-term maintainability due to the deadline
Architecture
- UIKit app with MVVM/MVC hybrid: ViewControllers own ViewModels and bind via RxSwift subjects
- APIPoint + router-based networking on Alamofire with typed Codable responses
- Localization stored in app settings and propagated via Accept-Language headers
- Meditation playback uses AVPlayer for narration + AVAudioPlayer for looping background sounds
- StoreKit subscriptions: product fetch, purchase flow, transaction queue handling, receipt upload to backend
- Profile/history features use calendar-based UI and server-backed history models
Tech stack
- iOS: Swift, UIKit, RxSwift, StoreKit, AVFoundation
- Architecture: MVVM/MVC hybrid, Router-based networking, Codable models
- Backend/Infra: REST APIs, server receipt validation for subscriptions
- Tooling: CocoaPods, Alamofire, SnapKit, Kingfisher, Firebase (Analytics/Crashlytics/Messaging)
Hard problems solved
- Decided to rewrite instead of refactor to de-risk delivery under a one-month deadline
- Built a stable audio session: switching narrator voices, syncing durations, mixing background audio
- Implemented subscription flow end-to-end: purchase, transaction handling, receipt posting, duplicate protection
- Coordinated many dependent API calls with predictable UI state using Rx (loading/error/ready signals)
- Kept localization consistent across UI and server behavior (language picker → headers → content)
- Shipped resilience states (no internet, retry, generic errors) across the critical flows
Impact / Results
- Delivered a complete v1 from an incomplete codebase within the remaining deadline window
- Released to the App Store and kept the app running in production for multiple years
- Established a working baseline for content catalogs, playback, and subscription access control