DrawBox is a multipurpose tool to draw anything on canvas, written completely on Compose Multiplatform. This is the first multiplatform drawing library!
- Cross-platform!
- Customisable stoke size, color and opacity
- Inbuilt Undo and Redo options
- Reset option
- Background with color/image
- Custom opacity of drawing/background
- Different subscriptions (dynamic update/after each drawing)
- Easy Implementations
Next releases:
- Erase tool
- Import/export
- Background content scale
Planned:
- Different image rations
- Filling tool
- Optimizing rendering (convert drawn PATHes)
- Migrate from Compose dependencies in controller folder
DrawBox-desktop-demo.mp4
val controller = remember { DrawController() }
DrawBox(drawController = controller, modifier = Modifier.fillMaxSize())
Using Gradle Kotlin DSL:
implementation("io.github.markyav.drawbox:drawbox:1.3.1")
You can find example of the library basic usage in the sample package:
Also, I will share a link here to another independent project where you can find more sophisticated example!
This project was created by Mark Yavorskyi
I love my work. The idea of creating this open-source project appeared because I needed a multiplatform (Android + desktop) library for drawing. I fround several popular libs for Android but there was ZERO for using in KMM/KMP. I still have some aspects to improve and I will be happy if you share your feedback or propose an idea!
Hope you enjoy it!
Mark
Licensed under the Apache License, Version 2.0, click here for the full license.