This document provides an overview of user interface (UI) programming for mobile apps. It discusses UI programming patterns like state machines and model-view-controller (MVC). It explains how MVC is implemented in Android and iOS. It also describes core Android application components like activities, services, content providers and more. Finally, it covers topics like layouts, views, resources and more aspects of Android UI programming.