android application design essentials diagram