Composites
✨ Composites are a collection of tools and handy libraries that make it easier to use Jetpack Compose.
Please consider giving this repository a star ⭐ if you like the project.
Articles
Modules
- composites-carbon — Lightweight annotation processor for generating Route objects that help with navigation based on the Navigation Component
- composites-fiberglass — A tool for building complex screens based on simple blocks.
Current versions
| Module | Version |
|---|---|
| composites-carbon-core | |
| composites-carbon-processor | |
| composites-fiberglass |
Using in your projects
Use the Kotlin DSL instructions for your module:
- Carbon setup and navigation examples, including the Navigation dependency and task ordering for common source generation.
- Fiberglass setup and examples. Fiberglass can be used independently and does not require KSP.
Configure dependency repositories in settings.gradle.kts:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}
Snapshot builds
To use the development version, replace 0.6.0 with 0.7.0-SNAPSHOT in the module instructions, keeping Carbon core and processor on the same version.
Add the Central Portal snapshot repository to the repositories above:
maven("https://central.sonatype.com/repository/maven-snapshots/") {
content { includeGroup("ru.ldralighieri.composites") }
}
Snapshots are updated in place and may differ from a particular checkout.
Run App:
- Android: use the
androidApprun configuration - iOS: use the
iosApprun configuration - Desktop:
./gradlew :app:desktopApp:run - Desktop Hot Reload:
./gradlew :app:desktopApp:hotRun - Web (WASM):
./gradlew :app:webApp:wasmJsBrowserDevelopmentRun - Web (JS):
./gradlew :app:webApp:jsBrowserDevelopmentRun(use this to test the JS target independently)
If you're finding performance issues
Make sure to try running your app or sample app in release mode.
Missed or forgot something?
If I forgot something or you have any ideas what can be added or corrected, please create an issue or contact me directly.
License
Copyright 2023-2025 Vladimir Raupov
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
