DoodleVerse is a versatile, cross-platform drawing application built with Kotlin Multiplatform and Jetpack Compose. It offers a rich set of drawing tools and features, making it suitable for both casual sketching and more complex digital art projects.
- Cross-platform support: Runs on Android, iOS, Web, and Desktop.
- Multiple brush types: Including pencil, marker, watercolor, and various creative brushes.
- Shape tools: Rectangle, circle, line, arrow, ellipse, and polygon.
- Layer support: Create, manage, and organize your artwork in layers.
- Color picker: Advanced color selection with opacity control.
- Undo/Redo functionality: Easily correct mistakes or revisit previous states.
- Export options: Save your artwork as an image or share it with others.
- Import images: Load images from your device to use as a reference or background.
- Project management: Create, save, and edit multiple projects.
- Customizable canvas size: Choose from preset sizes or create custom dimensions.
- JDK 11 or later
- Android Studio Arctic Fox or later (for Android development)
- Xcode 12 or later (for iOS development)
- Gradle 7.0 or later
-
Clone the repository:
git clone https://github.com/TaalayDev/DoodleVerse-ComposeMultiplatform.git -
Open the project in Android Studio or your preferred IDE.
-
Sync the Gradle files.
-
Run the desired target:
- For Android: Run the
androidAppconfiguration. - For Desktop: Run the
desktopAppconfiguration. - For iOS: Open the Xcode project in the
iosAppfolder and run it. - For Web: Run the
wasmJsBrowserDevelopmentRunGradle task.
/composeApp: Contains the shared Kotlin code for all platforms.commonMain: Code shared across all platforms.androidMain,iosMain,desktopMain,webMain: Platform-specific code.
/iosApp: iOS-specific code and project files.
DrawingScreen.kt: Main screen for the drawing interface.DrawViewModel.kt: ViewModel managing the drawing state and operations.BrushData.kt: Defines various brush types and their behaviors.DrawCanvas.kt: Core drawing canvas implementation.LayersPanel.kt: UI for managing layers.ColorPicker.kt: Color selection component.
Contributions to DoodleVerse are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive commit messages.
- Push your changes to your fork.
- Submit a pull request to the main repository.
Please ensure your code adheres to the existing style and includes appropriate tests.
This project is licensed under the MIT License - You can search for the license on the web.
- Jetpack Compose for the UI framework.
- Kotlin Multiplatform for enabling cross-platform development.
For any queries or suggestions, please open an issue in the GitHub repository or contact TaalayDev at a.u.taalay@gmail.com.
