Connected technology
Since we launched our first connected product in 2014, the MyDyson™ app has become integral to many of our machines. It's allowing owners to interact with our machines in ways they have never done before. Our new technology is advancing at speed. Network-based robotics and intelligent sensing technologies, all enabled by advanced software and app platforms, are all cementing Dyson's place as a pioneering global technology enterprise.
Always improving
Dyson engineers developed the MyDyson™ app, which is at the forefront of our IoT experience. Our IoT platform has over 3 million connected Dyson machines, with over 1 million active owners worldwide. We're proud of what we've accomplished so far, and we'll continue to develop and improve.
A diverse team
There are five Mobile App teams based in the United Kingdom, Singapore and Poland, each have up to six Mobile Developers, three Test Automation Engineers, a Scrum Master and a Product Owner. With different educational backgrounds and levels of experience; not everyone is a computer science graduate. We believe that teams made up of individuals from diverse backgrounds are more productive and innovative.
Our technology - iOS app
Dyson's iOS app is written in Swift and uses the MVVM pattern with Coordinators. We have multiple modules to separate functionality and reuse common code, managed along with our external dependencies using Cocoapods. Since almost everything that happens within our app is asynchronous, we use RxSwift extensively to capture, combine and manage event streams, and also to bind the UI layer. We write our unit tests with XCTest and RxTest, and we use XCUITest for automated UI testing.
Our technology - Android app
Dyson's Android app has a modular construction and is built using the MVVM pattern. Our code base is approximately 65% Kotlin, with an ongoing effort to migrate our remaining Java code. We are utilising an increasing number of JetPack libraries to help us develop quickly and reduce boilerplate code. These include Navigation Component for UI flows, Room for persistence and WorkManager for background tasks. We use Volley, AWS IoT SDK, and Gson for cloud and product API calls, and Dagger for dependency injection. Since almost everything in our app is asynchronous, we rely heavily on RxJava to capture, combine, and manage event streams. Our tests are written in JUnit, Robolectric, and Mockito, while our UI tests are written in Espresso with Kakao.
Meet our people
People stories
Devendra
Lead Test Engineer, Hullavington, UK
One Test Engineers journey from lone wolf to part of the pack.
Read all about Devendra Read more