This document provides an overview of UI programming for mobile apps. It discusses state machine programming patterns and the model-view-controller (MVC) pattern. It explains how MVC is implemented in Android and iOS. It also describes Android programming basics such as activities, services, content providers, and resources. It covers views, layouts, fragments and other aspects of the Android user interface.