Overview and Practicalities

Overview


Course in brief

This course will teach you what Device-Agnostic Design is, what has led to the emergence of Device-Agnostic Design, and what the present issues and challenges in Device-Agnostic Design are.

The focus is on hands-on practice, where you will learn to design, implement, and test applications that work on multiple devices. When working, you’ll also learn the basics of Dart and Flutter, a modern programming language and a modern framework for building software for multiple devices from a single codebase.

The big picture

Fig. 1 - The big picture: Device-Agnostic Design is a design philosophy, which is a part of the Cross-Device Interaction research field. As an example of a design approach within Device-Agnostic Design, we have e.g. Responsive Web Design; for Responsive Web Design, concrete implemementation could include working with JavaScript, HTML, and CSS.

Fig. 1 - The big picture: Device-Agnostic Design is a design philosophy, which is a part of the Cross-Device Interaction research field. As an example of a design approach within Device-Agnostic Design, we have e.g. Responsive Web Design; for Responsive Web Design, concrete implemementation could include working with JavaScript, HTML, and CSS.

In our big picture (see Fig. 1), Device-Agnostic Design is included in the overarching field of research called Cross-Device Interaction, while Device-Agnostic Design is introduced as a design philosophy to reach wide range of different devices from a single design and single code base.

Device-Agnostic Design aims to allow service delivery in a machine-independent manner. The way Device-Agnosticism is enabled in a design of course depends on the technology framing of the development and deployment environments. Nowadays for ubiquitous, all-encompassing online services the de facto go-to design approach has for more than a decade been Responsive Web Design (RWD). The actual implementation of services still relies on common markup and scripting languages and layout style sheets and themes.

Learning objectives

The high-level learning objectives of the course are as follows.

  • You understand the broad history and evolution of devices as well as the evolution of how software has been designed and developed for a wide range of devices.

  • You understand the concept of device-agnostic design and knows the key milestones and evolution of techniques used for device-agnostic design.

  • You understand the principles of designing user interfaces and interactions for a variety of devices.

  • You understand the key challenges in designing and developing software for a variety of devices.

  • You can design and create applications that work on multiple devices.

Each chapter in the learning materials also provide more detailed learning objectives.

Prerequisites

To succeed in this course, basic know-how of programming is required. Understanding of object-oriented programming, databases, server-side applications, and browser-based applications is highly beneficial (see e.g. the course on Web Software Development).