WriteBuddy
1.0.5indexedEnhances writing experience with features like sticky notes, text boxes, images, and interactive tools such as lasers and tape for dynamic note-taking.
Enhances writing experience with features like sticky notes, text boxes, images, and interactive tools such as lasers and tape for dynamic note-taking.
📝 Write smarter, smoother: A Compose-based handwriting assistant ✍️
Supports Sticky(PostIt, TextBox, Image), Tool(Laser, Tape)
Add the dependency below to your module's build.gradle file:
commonMain.dependencies {
implementation("io.github.henni99:writebuddy:<latest-version>")
}
| 📌 Post-it | 🔤 TextBox | 🖼️ Image |
|---|---|---|
Sticky mode is a feature that allows users to place and manage various sticky items on the screen, such as Post-its, images, and text boxes. Users can add sticky items, move them around, adjust their size, and modify their properties.
val controller = rememberStickyItemController(
painterImageProperty = PainterImagePropertyExample(),
vectorImageProperty = VectorImagePropertyExample(),
)
LaunchedEffect(Unit) { // For BitmapImage
controller.updateBitmapImageImageBitmap(
Res.readBytes("drawable/ic_launcher.webp").decodeToImageBitmap(),
)
}
StickyNote(
modifier = Modifier
.padding(innerPadding)
.fillMaxSize(),
controller = controller,
)
| 🔦 Laser | 🩹 Tape |
|---|---|
ToolMode provides new functionalities through user touch interactions. Users can enjoy fun note-taking with Laser Mode and Tape Mode. To use Laser and Tape modes, you need to declare a separate controller for each.
val laserPointerController = rememberLaserPointerController()
val progress = animateLaserAlphaFloatAsState(laserPointerController) {
laserPointerController.clearLaserPaths()
}
val tapeController = rememberTapeController()
var selectedMode by remember { mutableStateOf(ToolMode.LineLaserMode) }
Box(
modifier = modifier
.padding(innerPadding)
.fillMaxSize()
.useLaserPointerMode(
laserPointerController,
progress,
selectedMode == ToolMode.LineLaserMode,
)
.useTapeMode(tapeController, selectedMode == ToolMode.TapeMode),
)
If you find any bugs or have suggestions for better features, please feel free to share your feedback. Contributions are always welcome!
For more details, you can check out the documentations
Surfaced from shared tags and platforms — no rankings paid for.