Features Implemented:
- Create a Custom View canvas.
- Create Shapes like Circle, Triangle And Rectangle
- Display buttons on screen, to add these shapes at random positions in screen.
- Taping on a button will transform that shape to another shape.
- User is able to UNDO action (creation and deletion) both
- Long Press on a shape, will delete that shape
- Deletion can be undone
- Stats screen shows count of all shapes
- Delete button to delete shapes of specific row in Canvas.
About UI I have tried to create minimal UI, focussing more on code functionality , simplicity and architecture.
About Data Structures Used 'LinkedList' of Shape objects to suit the required functionalities and minimize time and space complexity.
A detailed article explaining canvas creation and custom drawing for this repo is here
- Android Studio - The Official IDE for Android
- [Java] (https://www.oracle.com/technetwork/java/javase/overview/java8-2100321.html)
- Kotlin - The Official Language for Android
- Gradle - Build tool for Android Studio