Ryan Hodgman

Share

Software Engineer – Android at Outware Mobile
@glyphalcon

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 at Outware Mobile. In his spare time, he likes to theorise about everything from better political structures to the crossover between machine learning and neuroscience.

YOW! Connected 2015 Melbourne

A Separation of Concerns: Clean Architecture on Android

CASE STUDY/DEMO –  VIEW SLIDES   WATCH VIDEO

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 a cleanly architected app 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.