Tech Stack
Icarus is built with modern Flutter technologies:- Flutter: Cross-platform UI framework
- Riverpod: State management
- Hive: Local NoSQL database for storing strategies
- Shadcn UI: Component library for consistent UI
Core Features
- Interactive map drawing and annotations
- Save, load, and organize strategies locally
- Agent and ability helpers for Valorant characters
- Desktop-focused UX for planning sessions
- Multi-page strategy support
- Export/import strategies as
.icafiles
Project Structure
The codebase is organized as follows:Key Concepts
Strategies
Strategies are the core data model in Icarus. Each strategy contains:- Multiple pages for different phases of a plan
- Drawing elements (lines, free-form drawings)
- Placed agents and abilities
- Text annotations and images
- Map selection and attack/defend side
Folders
Strategies are organized in a hierarchical folder structure, similar to a file system. Folders can be nested and customized with icons and colors.State Management
Icarus uses Riverpod providers for state management. Key providers include:strategyProvider- Manages current strategy and persistencefolderProvider- Manages folder hierarchydrawingProvider- Canvas drawing stateagentProvider,abilityProvider- Placed game elements
Development Requirements
- Flutter SDK 3.38.4 (via FVM)
- Dart >= 3.4.3
- Platform-specific build tools (see Setup)