Mobile devices are already woven into our everyday life, and we became accustomed that mobile applications assist us in a multitude of daily activities. With the rise of the Internet of Things, new opportunities to further automatize tedious tasks open up. New functional and user experience requirements demand for further resources and new ways to acquire these, because mobile devices remain comparatively limited in terms of, eg, computation, storage, and battery life. To face these challenges, current approaches augment mobile applications either with cloud resources (mobile cloud computing) or with resources near the mobile device at the logical edge of the network (mobile edge computing) onto which tasks can be offloaded during runtime. However, this does not automatically solve the conflict between resource demands and good user experience, as current solutions prove. It is the dynamically changing context that makes for good or bad offloading strategies. In this paper, we corroborate this finding by first evaluating 40 existing solutions based on a requirements catalogue derived from several application scenarios as well as the International Organization for Standardization/International Electrotechnical Commission criteria for software quality. Afterward, we present CloudAware, which is a mobile cloud computing/mobile edge computing middleware that supports automated context‐aware self‐adaptation techniques that ease the development of elastic, scalable, and context‐adaptive mobile applications. Moreover, we present a qualitative evaluation of our concepts and quantitatively evaluate different offloading scenarios using real usage data to prove that mobile applications indeed benefit from context‐aware self‐adaptation techniques. Finally, we conclude with a discussion of open challenges.