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.