Back to all courses

Device-agnostic design

Individual course

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 on software, we use Dart and Flutter, a modern programming language and a modern framework for building software for multiple devices from a single codebase.

Course contents

  • Methodologies and evolution of device-agnostic design, including how software has been designed and developed for the wide variety of devices in the past.
  • How software is designed and developed for the multitude of devices in the present.
  • How software will (likely) be designed and developed for the plethora of devices in the future.

Learning outcomes

After the course, the student

  • knows the broad history and evolution of designing and developing software for a wide range of devices
  • understands the principles of designing user interfaces and interactions for a variety of devices
  • can evaluate the capabilities and commonalities of different devices and can identify key challenges in designing and developing device-agnostic software for different devices
  • understands the concept of device-agnostic design and can apply software development techniques for device-agnostic design
  • can design, create, reflect on, and evaluate applications that work on multiple devices

Course material

The course uses open source software (mainly Dart and Flutter). Online materials available at

Completion methods

Course assignments including exercises, readings and projects.

You can get a digital badge after completing this course.

mobile applications, mobiilisovellukset

Responsible teacher

Aalto University
Arto Hellas, Senior university Lecturer
Start here
Start here
User interfaces and usability,
Web programming
Course code:
Study credits:
0 €
Course level:
Teaching period:
Continuously on-going
Application deadline:
Continuously on-going
Host university:
Aalto University
Who can apply:
Adult learner,
Degree student
Teaching method:
Teaching language:
General prerequisites:
Basic knowledge of programming and programming environments.
Course suitable for:
People interested in building applications that work on multiple devices.
Interested in this course? Subscribe and get updates about the course directly to your email. You can cancel subscription any time you want.