A simple yet powerful drawing application built with Flutter. This app allows users to create digital sketches, doodles, and artworks with various tools and features.
- Freehand drawing with adjustable brush sizes
- Color picker for selecting custom colors
- Eraser tool for easy corrections
- Undo and Redo functionality
- Clear canvas option
- Save drawings to device gallery
- Automatic saving and loading of drawings
- Continue drawing from where you left off, even after closing the app
Before you begin, ensure you have met the following requirements:
- Flutter SDK (version 2.0 or higher)
- Dart SDK (version 2.12 or higher)
- Android Studio / VS Code with Flutter extensions
- An Android or iOS device/emulator for testing
- flutter
v3.19.5 - mobile sdk
- stacked
state management
- iconsax
icon pack
- shared_preferences
local storage
- path_provider
file access
- gallery_saver
save images
- mockito
unit testing
- build_runner
code generation
- flutter_launcher_icons
app icon
- flutter_native_splash
splash screen
-
Clone the repository: git clone https://github.com/Cypher-O/drawing_app.git
-
Navigate to the project directory: cd drawing_app
-
Get the dependencies: flutter pub get
-
Run the app: flutter run
-
Drawing: Tap and drag on the screen to draw. The default color is black.
-
Change Color: Tap the color picker icon to select a different color for drawing.
-
Adjust Brush Size: Use the slider to adjust the thickness of the brush stroke.
-
Eraser: Tap the eraser icon to switch to eraser mode. Drag over existing strokes to erase them.
-
Undo/Redo: Use the undo and redo buttons to reverse or reapply recent actions.
-
Clear Canvas: Tap the trash can icon to clear the entire canvas.
-
Save Drawing: Tap the save icon to save your drawing to the device gallery.
-
Automatic Saving: Your drawing is automatically saved as you draw. When you reopen the app, your previous drawing will be loaded automatically, allowing you to continue where you left off.
To run the unit and widget tests for this project:
-
Ensure you're in the project root directory.
-
Run the following command: flutter test
This will execute all the tests in the test/
directory.
Contributions are welcome! Here's how you can contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch-name
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature-branch-name
. - Create a pull request.
Please make sure to update tests as appropriate and adhere to the existing coding style.
- Flutter and Dart teams for providing an excellent framework and language.
- Contributors and open-source projects that inspired this app.
![]() |
![]() |
---|---|
Image 1 | Image 2 |
![]() |
![]() |
---|---|
Image 3 | Animated GIF |
If you have any questions, feel free to reach out to Olumide Awodeji at [email protected].