Shiori is a Flutter mobile/desktop application that serves as a comprehensive database and toolset for the game Genshin Impact. It provides detailed information on characters, weapons, artifacts, materials, and monsters, along with interactive tools such as an ascension material calculator, wish simulator with pity tracking, banner history analytics, inventory management, custom build planner, tier list builder, and notification scheduler for in-game timers. The app also includes charts and statistics derived from game data, a game code redemption tracker, and backup/restore functionality for user data. It is distributed on Android, iOS, Windows, and macOS, and is localized into over a dozen languages. The architecture follows a clean layered pattern: domain (service interfaces and models), application (BLoC state management with freezed events/states), infrastructure (implementations for file I/O, persistence, networking, and platform services), and presentation (Flutter widgets and pages). Dependency injection is handled via GetIt, and local persistence uses Hive CE. Remote resource updates are downloaded on demand from an external API. The codebase makes heavy use of the BLoC pattern with sequential event processing, and includes extensive unit and integration tests covering blocs, services, and UI flows. Although primarily an application, Shiori is heavily data-driven: all game content is loaded from JSON resource files, and the app provides analytical charts (element distribution, banner reruns, birthdays, ascension stats) that are computed from the data. This hybrid nature means the repository contains both application code and data-processing logic. The codebase demonstrates strong software engineering practices with reusable shared widgets, service abstractions, and a consistent pattern for file-based data services. The project is actively maintained with recent commits and an active issue tracker. However, there is some technical drift: the CI workflow pins Flutter 2.10.2 while the project configuration targets 3.41.6, and some localization files contain incomplete translations. Several TODO comments and commented-out code indicate areas of ongoing work. Overall, the codebase is well-structured and suitable for reuse of its isolated components.