  Mobile devices such as smartphones and tablets have become ubiquitous in
today's modern computing landscape. The applications that run on these mobile
devices (often referred to as "apps") have become a primary means of computing
for millions of users and, as such, have garnered immense developer interest.
These apps allow for unique, personal software experiences through touch-based
UIs and a complex assortment of sensors. However designing and implementing
high quality mobile apps can be a difficult process. This is primarily due to
challenges unique to mobile development including change-prone APIs and
platform fragmentation, just to name a few. This paper presents the motivation
and an overview of a dissertation which presents new approaches for automating
and improving mobile app design and development practices. Additionally, this
paper discusses potential avenues for future research based upon the work
conducted, as well as general lessons learned during the author's tenure as a
doctoral student in the general areas of software engineering, maintenance, and
evolution.
