Skip to content

A simple android app that lets you create shapes on a canvas showcasing MVVM + Clean Architecture using Kotlin, Coroutines, Flow, ViewModel, LiveData, Room, Dagger Hilt etc.

License

Notifications You must be signed in to change notification settings

rahulsainani/shapes

Repository files navigation

Shapes


A simple android app that draws shapes on a canvas showcasing MVVM + Clean Architecture using Kotlin, Coroutines, Flow, Dagger, Room, LiveData, View Model etc. The app is modularised by feature.


License API

What it does

Editor screen

  1. There are 3 buttons (square, circle, and triangle). Each time you tap on a button: an object of that shape will be created, and displayed in a random position on screen.
  2. Tapping on a shape will cause it to become another shape: tapping a square will make it a circle, tapping a circle will make it a triangle, tapping a triangle will make it a square.
  3. Long pressing on a shape will remove the shape.
  4. You can undo any action. Each time you press undo it will cancel the last action performed.

Stats screen

  1. Shows a list with the name and count of each shape.
  2. Tapping on a list item will delete all shapes of that kind.

Screenshots

Tech Stack + Libraries Used

License

Copyright 2020 Rahul Sainani

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

A simple android app that lets you create shapes on a canvas showcasing MVVM + Clean Architecture using Kotlin, Coroutines, Flow, ViewModel, LiveData, Room, Dagger Hilt etc.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages