I spent some time in early 2014 building out a touch library for myself to build just about anything I wanted for touchscreen based mobile applications. So multitouch, pinching, 2D and 3D manipulation, swiping and other gestures are among the things I figured out. Most of this was put into a prototype 3D painting application I built, which does all of the above and more. You can paint in any color, build a palette any way you want for colors, paint with up to 5 fingers at once, paint in 3D!, create, select and manipulate 3D objects (scale,translate, rotate), as well as modify the physical characteristics of both 3D objects and your paint, including adding rigidbody characteristics to your paintdabs. On the interface-side I put together touch, touch and hold, 2D graphic and 3D object buttons with states. I also built in some basic camera controls for navigating the 3D scene. All of this works great on any android device.
Here is the paint tool showcasing finger painting and color selection. Notice the custom palettes on the left side. Palette buttons allow for quick touch to change to that color, or touch and hold to bring up a palette to choose a new color.
3D painting is being shown here, as well as multi-finger painting. The buttons along the top and right are 3D objects programmed with toggle states based on touch. Multiple buttons can be active at a time creating combined painting camera, and object manipulation effects.
Creation and manipulation of 3D Objects seen here, these cubes and spheres can be grabbed, rotated, scaled, and dragged anywhere. Also you can color the 3D objects much in the same way you color the paint.
Here I showcase the 2 types of painting, regular paint has collision, but not rigidbody properties. The "fuzzy' pink and green balls are painted 2D rigidbodies that can interact with the regular paint.