The growing number of mobile and IoT devices able to generate and show incoming notifications is fostering the spread of notifications in people lives.Nonetheless, although users are getting used to them, their presence is not always perceived as a benefit by recipients.With the aim of improving user experience with notifications, two different approaches are presented in this dissertation.The former acts at the distribution level, i.e., notifications are intercepted and then a system decides if, when, and how to show them; while the latter acts at the design level, i.e., notifications and their distribution strategies are designed with the aim of reducing user disruption and exploiting all the benefits that the availability of multiple devices could bring.

An IoT architecture is proposed for each approach: the Smart Notification System that relies on machine learning algorithms to adequately manage incoming notifications, and the XDN (Cross-Device Notification) framework that assists developers in creating cross-device notifications by scripting.The modular nature of both architectures allowed the simultaneous development and test of different independent but compatible subsystems and their exploitation in preliminary deployment sessions. The results, feedbacks and lessons learned from such sessions can foster the development of future solutions in the IoT notifications field and related domains.