This document discusses software engineering approaches for mobile application development. It begins with an introduction to the growth of mobile applications and discusses current research trends across the software development lifecycle including requirements, design, development, testing and maintenance. It focuses on resource usage and security as important non-functional requirements. For each phase of the lifecycle, it examines recent advances and current challenges as well as opportunities for future advances in mobile application software engineering.