Skip to content

Repository files navigation

iBank

Modern Android Banking App

Built with Jetpack Compose, Clean Architecture, and Material 3

Kotlin Compose Architecture License


Screens

iBank Screens

  • Home — Balance card, quick actions, recent transactions
  • Search — Filter chips, payee suggestions, real-time search
  • Messages — Segmented tabs, alert cards, transaction notifications
  • Settings — Profile, security toggles, preferences

Architecture

┌─────────────────────────────────────────────┐
│                Feature Layer                │
│  Screen ← ViewModel ← UseCase               │
├─────────────────────────────────────────────┤
│                Domain Layer                 │
│  Repository Interface ← Domain Models       │
├─────────────────────────────────────────────┤
│                 Data Layer                  │
│  Repository Impl → LocalDataSource → Room   │
└─────────────────────────────────────────────┘
  • MVI — Unidirectional data flow with StateFlow
  • Package by domain — Account, Transaction, Message, Settings
  • Clean separation — No framework leaks between layers

Tech Stack

Category Library
UI Jetpack Compose + Material 3
Navigation Navigation 3
DI Hilt (KSP)
Storage Room
Images Coil 3
Serialization kotlinx-serialization
Testing JUnit4, MockK, Turbine, Truth

Design System

Meridian — A Material 3 banking design system with:

  • Emerald primary (#0B6E4F) — Trust and growth
  • Gold tertiary — Positive money highlights
  • Manrope + Inter + JetBrains Mono — Display, body, and tabular numerals

See the full spec at specs/ui/meridian-design-system.html

Module Structure

iBank/
├── app                    # Entry point, navigation
├── core-presentation      # Meridian theme, shared composables
├── core-domain            # Models, repository interfaces, use cases
├── core-data              # Room DB, DAOs, repository implementations
├── feature-home/          # Home screen
├── feature-search/        # Search screen
├── feature-message/       # Messages screen
├── feature-settings/      # Settings screen
└── specs/                 # Design system specification

Getting Started

# Build
./gradlew assembleDebug

# Test
./gradlew testDebugUnitTest

# Instrumented Test
./gradlew connectedDebugAndroidTest 
    -x :core-domain:connectedDebugAndroidTest 
    -x :core-data:connectedDebugAndroidTest

License

MIT

About

A modern Android banking application featuring Clean Architecture with MVI, Jetpack Compose + Material 3, Navigation 3, Room persistence, and the custom Meridian design system. Built with Kotlin, Hilt, and package-by-domain organization.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages