I'm developing a flowchart drawing app for Android. I implemented the shapes, toolbars etc, now users can drag and drop a shape to the drawing surface and the gets drawn using Canvas. I even added a seekbar to let the user decide how big or small shapes will be.
But...
Since this is a flowchart app, users should be able to delete previously placed shapes, undo, redo... etc. I don't know how to implement this feature.
On top of that, users may want to draw a very long and complex flowchart diagram. In that case, I'd have to expand the surface (custom layout?) and let the user zoom in and out by pinching. I don't know how to implement that either.
Are there any libraries/frameworks that'd be helpful? Or can I implement these features without any extra libraries? Please push me in the right direction.