A separation of concerns: Clean architecture

September 18, 2015

Presented at YOW! Connected 2015 by Kamal Kamal Mohamed & Ryan Hodgman

As an Android developer, I want to deliver features without making compromises on code quality.

Scenario 1 – Given I am dealing with 1000+ line activities, when I have to develop a complicated feature, then I waste time orienting myself and fixing bugs.

Scenario 2 – Given I have integrated a backend API directly into my app logic, when that API changes, then I have to refactor large segments of unrelated logic in order to utilise the new API.

Scenario 3 – Given I have cleanly architected my application, when business/presentation/backend logic changes, then I can easily update the relevant code without breaking unrelated features!

In this talk, two Android developers will present their take on what clean architecture on Android looks like and why it makes our lives easier. A well-defined separation of concerns has benefits not just for our sanity as developers, but also for the project workflow as it allows multiple developers to collaborate on a single feature with ease. We will be exploring how the domain-driven approach can improve code clarity, allow you to easily write tests, and provide a scalable infrastructure for you to quickly iterate on. Join us on our path of discovery as we discuss the advantages, drawbacks and implementation specifics in the context of a small sample project.

Check out the slides: PDF


About the Presenters

Kamal Kamal Mohamed
Software Engineer – Android

Kamal is a software engineer focused on the mobile world and, in particular, on the Android platform. After working in Italy for 3 years delivering high-quality apps to national companies, he moved to Melbourne in 2014. Since then he’s been working to deliver awesome mobile experiences to Australian and international clients. He’s currently diving deep into possible architectures for Android mobile apps.


Ryan Hodgman
Software Engineer

Ryan is a relatively new face on the mobile development scene, who is rapidly discovering his appreciation of good UX patterns and code that screams “I am responsible for this one thing!”. He frequents both mobile and security developer meet ups in Melbourne, has co-presented a podcast on Google IO 2015, and has already worked across many active projects. In his spare time, he likes to theorise about everything from better political structures to the crossover between machine learning and neuroscience.



Clean architecture