{"id":13537229,"url":"https://github.com/MarkYav/DrawBox","last_synced_at":"2025-04-02T04:30:26.952Z","repository":{"id":152046839,"uuid":"622234193","full_name":"MarkYav/DrawBox","owner":"MarkYav","description":"The first multiplatform drawing library!","archived":false,"fork":false,"pushed_at":"2023-11-17T11:11:47.000Z","size":145,"stargazers_count":19,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-03T02:32:43.155Z","etag":null,"topics":["android","compose","desktop","multiplatform","multiplatform-compose","multiplatform-kotlin-library","ui"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkYav.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-01T14:15:32.000Z","updated_at":"2024-11-01T09:01:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"9703e048-0ff3-4c14-8553-e12c5ab664bf","html_url":"https://github.com/MarkYav/DrawBox","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkYav%2FDrawBox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkYav%2FDrawBox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkYav%2FDrawBox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkYav%2FDrawBox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkYav","download_url":"https://codeload.github.com/MarkYav/DrawBox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246756761,"owners_count":20828762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","compose","desktop","multiplatform","multiplatform-compose","multiplatform-kotlin-library","ui"],"created_at":"2024-08-01T09:00:56.593Z","updated_at":"2025-04-02T04:30:26.452Z","avatar_url":"https://github.com/MarkYav.png","language":"Kotlin","readme":"# DrawBox\nDrawBox is a multipurpose tool to draw anything on canvas, written completely on Compose Multiplatform.\nThis is the first multiplatform drawing library!\n\n## Features\n\n- Cross-platform!\n- Customisable stoke size, color and opacity\n- Inbuilt Undo and Redo options\n- Reset option\n- Background with color/image\n- Custom opacity of drawing/background\n- Different subscriptions (dynamic update/after each drawing)\n- Easy Implementations\n\n**Next releases:**\n- Erase tool\n- Import/export\n- Background content scale\n\n\n**Planned:**\n- Different image rations\n- Filling tool\n- Optimizing rendering (convert drawn PATHes)\n- Migrate from Compose dependencies in [controller folder](drawbox/src/commonMain/kotlin/io/github/markyav/drawbox/controller)\n\n## Demo\n\nhttps://user-images.githubusercontent.com/39382424/230722003-e9b91b28-706a-4048-a950-609f0b357151.mp4\n\n## Usage\n\n```kotlin\nval controller = remember { DrawController() }\nDrawBox(drawController = controller, modifier = Modifier.fillMaxSize())\n```\n\n## Download\n\nUsing Gradle Kotlin DSL:\n```kotlin\nimplementation(\"io.github.markyav.drawbox:drawbox:1.3.1\")\n```\n\n## Examples\n\nYou can find example of the library basic usage in the [sample](sample) package:\n- [Android](sample/android/src/main/java/io/github/markyav/drawbox/android/MainActivity.kt)\n- [Desktop](sample/desktop/src/jvmMain/kotlin/Main.kt)\n\nAlso, I will share a link here to another independent project where you can find more sophisticated example!\n\n## Author\nThis project was created by [Mark Yavorskyi](https://www.linkedin.com/in/mark-yavorskyi/)\n\n## History\nI love my work.\nThe idea of creating this open-source project appeared because I needed a multiplatform (Android + desktop) library for drawing.\nI fround several popular libs for Android but there was **ZERO** for using in KMM/KMP.\nI still have some aspects to improve and I will be happy if you share your feedback or propose an idea!\n\nHope you enjoy it! \\\nMark\n\n## License\n\nLicensed under the Apache License, Version 2.0, [click here for the full license](LICENSE.txt).\n","funding_links":[],"categories":["Libraries"],"sub_categories":["GUI"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMarkYav%2FDrawBox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMarkYav%2FDrawBox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMarkYav%2FDrawBox/lists"}