- LLM-assisted contributions are not allowed
- Typo contributions are allowed
- Code cleaning contributions are allowed
- Format your code
- Test your changes, ensure UI is correct on different themes and form factors
- Include a screenshot for UI changes
- Keep PRs focused, create separate PRs for unrelated changes
- Use conventional commits
- Use conventional branch names
This project is structured like most Compose Multiplatform apps are.
| Module | Description |
|---|---|
composeApp |
Almost everything is here. This might change in the future and be split up into multiple modules. |
iosApp |
The Xcode project for iOS. There is usually no reason to modify this at all. |
| Package | Description |
|---|---|
paige.navic.data |
General models, types and repositories |
paige.navic.shared |
Classes and functions which specific platforms must implement. |
paige.navic.ui |
All of the UI code and components. |
paige.navic.utils |
Random helper functions or modifiers. |
Strings, fonts and other things are in composeApp/src/commonMain/composeResources
SVG icons are in composeApp/src/commonMain/valkyrieResources. Run
./gradlew :generateValkyrieImageVector to regenerate code for these
icons. Access them in code using Icons.<Category>.<Icon>
Most icons are sourced from Material Symbols with the rounded variant.
You will need:
- Android Studio
- You can use JetBrains Toolbox to get this
- High-end development box
- You should ideally have MORE than 16GB of RAM
- Ensure you have 50GB or so of free storage
On macOS, you will also need: