As the Internet of Things (IoT) proliferates, the potential for its opportunistic interaction with traditional mobile apps becomes apparent. We argue that to fully take advantage of this potential, mobile apps must become things themselves, and interact in a smart space like their hardware counterparts. We present an extension to our Atlas thing architecture on smartphones, allowing mobile apps to behave as things and provide powerful services and functionalities. To this end, we also consider the role of the mobile app developer, and introduce actionable keywords (AKWs)-a dynamically programmable description-to enable potential thing to thing interactions. The AKWs empower the mobile app to dynamically react to services provided by other things, without being known a priori by the original app developer. In this paper, we present the mobile-apps-as-things (MAAT) concept along with its AKW concept and programming construct. For MAAT to be adopted by developers, changes to the existing development environments (IDE) should remain minimal to stay acceptable and practically usable, thus we also propose an IDE plugin to simplify the addition of this dynamic behavior. We present details of MAAT, along with the implementation of the IDE plugin, and give a detailed benchmarking evaluation to assess the responsiveness of our implementation to impromptu interactions and dynamic app behavioral changes. We also investigate another study, targeting Android developers, which evaluates the acceptability and usability of the MAAT IDE plugin.At the same time, the opportunistic dynamic development of domain-related applications and scenarios should not only be based on the services offered by the things but also on the relationships that could logically and functionally tie these services together. The social networking concepts started to converge with IoT technologies forming a new paradigm named Social Internet of Things (SIoT) [6,7]. SIoT is about creating a social network of things through a set of social relationships and interactions. The recently proposed ideas on social IoT [11] are to logically link the things according to their identification attributes (e.g., things from same vendor), not on the services offered by these things. However, the exploitation of service-level relationships in the context of social IoT adds an effective programming perspective to such a new evolving paradigm. The inter-thing relationships programming framework [17,18] broadens the social IoT thing-level relationships and utilizes a set of concrete relationships between the offered services to empower a much wider class of meaningful IoT applications.On the other hand, the typical models of the things in smart space are things with sensors that sense and collect environment parameters and things with actuators that perform actions and change the state of the environment. However, smart spaces are not only full of hardware models of things that offer hardware-based services, but also software models [25]. A software model-a mobile app-is a n...