Skip to content

Repository files navigation

Heroic Spirits

Offline encyclopedia for the Fate franchise — linking each Servant to their historical and mythological origins.

Architecture

app/                     Application, Navigation, Hilt entry
core/common/             AppResult, dispatchers
core/model/              Immutable domain models
core/domain/             Repository interfaces + UseCases
core/data/               Room, DataStore, JSON asset seeding, mappers
core/designsystem/       Fate dark-fantasy Material 3 theme + shared UI
feature/home/            Catalog grid, search, class filters
feature/details/         Anime / History / Comparison tabs

Pattern: Clean Architecture · MVVM · UDF · Offline-first · Feature modules

ViewModels never talk to repositories — only UseCases.

Stack

Kotlin · Jetpack Compose · Material 3 · Hilt · Coroutines/Flow · Navigation Compose · Room · DataStore · Coil · kotlinx.serialization · JUnit · MockK · Turbine

Data

Servants live under app/src/main/assets/servants/{id}/:

  • servant.json — encyclopedia payload
  • anime.webp / history.webp — optional artwork (gradient placeholders used when missing)

On first launch, JSON assets are imported into Room (source of truth).

Run (Android Studio only)

Verification is done in Android Studio Panda 2 (2025.3.2) — no CLI Gradle build is required from agents or contributors for day-to-day work.

  1. Open the project root in Android Studio.
  2. File → Sync Project with Gradle Files (wait until sync finishes).
  3. Select a Pixel 7A emulator (API 34+ recommended).
  4. Run the app configuration (green Run / Shift+F10).

If sync fails after a toolchain bump, use File → Invalidate Caches once, then Sync again.

Adding a servant

  1. Create assets/servants/{new-id}/servant.json
  2. Optionally add anime.webp and history.webp
  3. Clear app data (or bump Room version) so seeding re-imports

Images / copyright

Use official licensed art for anime portraits and public-domain Wikimedia Commons works for historical portraits. Placeholders render automatically until assets are added.

About

Multi-Model project regarding mithology and fate characters with Android and Jetpack compose

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages