Droidcon Berlin: Everything is an API

Everything is an API

When creating a new app module, or modularising an existing one, it becomes easy to forget who might be consuming it. It becomes easy to forget that every decision you make will affect how it is used, or in the worst case, abused. We’re told that code should document itself, but how do these design decisions reflect in the understanding of intended use? Just because we might not be exposing a module as a public or open-sourced library, doesn’t mean we can’t benefit from making good decisions towards an effective and sensible API. By taking the stance that every piece of code we write is an API we can build more versatile and scalable applications. ...

Android Worldwide: Everything is an API

Everything is an API

When creating a new app module, or modularising an existing one, it becomes easy to forget who might be consuming it. It becomes easy to forget that every decision you make will affect how it is used, or in the worst case, abused. We’re told that code should document itself, but how do these design decisions reflect in the understanding of intended use? Just because we might not be exposing a module as a public or open-sourced library, doesn’t mean we can’t benefit from making good decisions towards an effective and sensible API. By taking the stance that every piece of code we write is an API we can build more versatile and scalable applications. ...

[MonkeyUser: The Struggle](https://www.monkeyuser.com/2018/the-struggle/)

How Much QA Is Too Much QA

It’s a common age-old adage, the ongoing war between Software Engineer and QA Engineer, the eternal struggle between the bright-eyed, and those tasked with enforcing practical reality. I mean not to demonise either party here, this is exactly the picture that can be seen if both are performing their roles adequately. It is very important to understand, at least from a Software Engineering perspective, that QA Engineers, not out to make your life difficult, and often will be happy to help you work out the kinks… mostly. ...

July 19, 2021 · 7 min · Ash Davies
mDevMeet: Material UX for Engineers

Material UX for Engineers

It’s a familiar story, it’s Monday morning, and you’re ready to start on the latest feature to solve all your user woes! You’re excited! You’re engaged! But then you see the design, your joyous smile fades, your world turns dark once more. Why? Another iOS carbon copy… It doesn’t need to be this way. Learn how to share the joy of Material Design with your colleagues, and pitch the benefits of a truly native design with user affordance, effective navigation patterns, and usable usability. ...

DevFest Live: Material UX for Engineers

Material UX for Engineers

It’s a familiar story, it’s a Monday morning, and your PM gathers the team together, ready to brief you all on the new, latest and greatest feature to grace your app, solve all your user woes, and bring in countless five-star reviews! You get excited! Why wouldn’t you? This is why we got into this in the first place right? To build exciting and shiny new things, and feel pride when we see our users enjoying the fruits of our labours. ...

May 22, 2021 · DevFest Live (Online) · 2 min · Ash Davies
Droidcon EMEA: Material UX for Engineers

Material UX for Engineers

It’s a familiar story, it’s a Monday morning, and your PM gathers the team together, ready to brief you all on the new, latest and greatest feature to grace your app, solve all your user woes, and bring in countless five-star reviews! You get excited! Why wouldn’t you? This is why we got into this in the first place right? To build exciting and shiny new things, and feel pride when we see our users enjoying the fruits of our labours. ...

October 9, 2020 · Droidcon EMEA (Online) · 2 min · Ash Davies
Droidcon Italy: Working with Dagger and Kotlin

Working with Dagger and Kotlin

Dagger has become one of the most widely used libraries in Android development, and is often one of the first to be thought of when bootstrapping a new project, but there are still many nuances and caveats that often get overlooked! Many questions arose after the adoption of Kotlin on how to continue following best practices from Java, so whether you’re using dagger-android or vanilla Dagger, I’ll go through some tips and tricks to make sure you’re using Dagger to its best capacity. ...

October 5, 2020 · Droidcon (Online) · 1 min · Ash Davies
droidcon Online: Navigation and the Single Activity

Navigation and the Single Activity: Learnings from a Skeptic

Fragments have often been controversial, and to some, the stuff of nightmares, with the inconsistency of lifecycle events, complex UI interaction, and unexpected behaviours making many Android developers suspicious of their usage. But with the development and recent stable publication of the navigation library, it may be the right time to give them a chance. Giving Fragments a second chance is not something I’d ever thought I’d be saying, but it’s a fantastic opportunity to find a solution to sharing data across a single screen. ...

June 11, 2020 · droidcon (Online) · 1 min · Ash Davies
mDevCamp: Refactoring Legacy Code with Kotlin

Refactoring Legacy Code with Kotlin

In this session, you’ll learn how to get started with Kotlin in your projects, tips and tricks on how to preserve your version control history, some pitfalls when migrating from Java, and what new technologies you can make use of in your journey with Kotlin.

droidcon Online: Refactoring Legacy Code with Kotlin

Refactoring Legacy Code with Kotlin

Legacy code can be quite the challenge to manage, often resulting from untested scenarios, quick fixes, or less than successful initiatives. With few developers wanting to deal with it, it can end up with little remaining knowledge of its inner workings. We can take many learnings from Michael Feathers book on “Working Effectively with Legacy Code”, but we can also use Kotlin migration as an effective tool to leverage the management, reduction, and removal of legacy code in our applications. ...

April 30, 2020 · droidcon (Online) · 1 min · Ash Davies