← all projects

argent-ios

Native Swift (MVVM) fintech customer app — SIP/investment, KYC, bank-account & mandate flows, with a generic token-refreshing network layer.

View on GitHub ↗Swiftupdated today

SwiftUIKitSwiftUIMVVM

High-level design

A native iOS client organised feature-first around MVVM — authentication, investment (SIP/lumpsum), account and mandate domains each own their ViewModels and services behind one network layer.

Core

AuthManager, SessionManager (keychain token + refresh), onboarding & localization state

Services

generic NetworkService with automatic token refresh, per-domain API services

ViewModels

Authentication, Investment, Order, Home, Onboarding — each an ObservableObject

Views

SwiftUI screens plus UIKit-backed web/Lottie/M3U8 media components

Low-level design

The load-bearing piece is the network layer: token expiry is handled once, not per call site.

  • SessionManager holds access/refresh tokens in the Keychain, keyed by app domain
  • NetworkService centralises auth headers and refresh-on-401, so services stay thin
  • Codable models mirror the API contract; ViewModels expose plain published state