Photo by [Goh Rhy Yan](https://unsplash.com/@gohrhyyan) on [Unsplash](https://unsplash.com/photos/FFgcWvplwsc)

The Dangers of Language Abuse

Much of our responsibility as software engineers is based upon problem-solving, we are required to use our knowledge of available tools, and our experience, to find the most appropriate solution to a given problem. That’s what I’d like to focus on here, on finding the most appropriate solution. More often than not, the solution to a problem can be quite simple and doesn’t require over-engineering, which is perhaps where the age-old KISS and YAGNI principles come from. ...

March 9, 2019 · 4 min · Ash Davies
Berlindroid: RxJava and Coroutines

RxJava and Coroutines

Kotlin has taken the Android world by storm, and is quickly becoming the most popular language, with coroutines approaching stability, does it make sense to replace your RxJava implementations for Coroutines? Despite the hype, it may not make sense to jump on the bandwagon just yet, with RxJava having already proven its stability and usefulness, and in many cases the comparison between the two frameworks showing that they simply fit different purposes. ...

Diving into Flutter: An Android Perspective

Earlier this year I demonstrated the strengths of Flutter by developing a showcase application, in this presentation I talk about my experience with the platform, and how you can use the strengths of Flutter to build fast prototypes and beautiful UI’s with a blazingly fast development cycle.

Kotlin Night Berlin: RxJava and Coroutines

RxJava and Coroutines

Kotlin has taken the Android world by storm, and is quickly becoming the most popular language, with coroutines approaching stability, does it make sense to replace your RxJava implementations for Coroutines? Despite the hype, it may not make sense to jump on the bandwagon just yet, with RxJava having already proven its stability and usefulness, and in many cases the comparison between the two frameworks showing that they simply fit different purposes. ...

November 22, 2018 · Kotlin Night (Berlin, Germany) · 1 min · Ash Davies
Photo by [Elena Mozhvilo](https://unsplash.com/@miracleday/) on [Pexels](https://unsplash.com/photos/ArLds1dWvuw)

Leveraging Android Data Binding With Kotlin

Android Data Binding is a support library that allows us to bind UI components to data sources declaratively rather than programmatically, it’s potentially really powerful and complex, but used effectively it can really cut down on presentation boilerplate. We started off with Data Binding beta in 2015 when Google announced it after Google IO as a support library that can be used right back down to Android 2.1 which is API version 7, to write declarative layouts and minimise the glue code required to use your application logic in layouts. ...

November 12, 2018 · 17 min · Ash Davies
Droidcon London: Preparing Your App for Google Play Instant

Preparing Your App for Google Play Instant

Android Instant applications are becoming increasingly available, and thanks to the work from the Android platform team can already be installed on devices running Android Lollipop or later. As an application developer for a large application, or one with plenty of untested legacy code, preparing an application that might be tightly coupled into a single module requires us to carefully de-tangle and move concerns to independent modules. This talk covers how we managed to prepare our application for instant apps by breaking off base elements and isolating essential key features into self-contained, independent modules, with all the difficulties that this entails and how you can avoid the common pain points and pitfalls. ...

October 26, 2018 · Droidcon (London, United Kingdom) · 1 min · Ash Davies
Droidcon Berlin: Leveraging Android Data Binding with Kotlin

Leveraging Android Data Binding with Kotlin

Android Databinding is considered as both a powerful toolchain, empowering your views with access to view data without the necessity to build cumbersome presenters, and conversely as an overly complex, convoluted mess of binding statements opening the door to unnecessary, irresponsible domain logic in your view layouts. Whilst the latter of these statements can be true, Databinding offers a very powerful code generation syntax, allowing you to utilise the power of the compiler to ensure that your binding statements are runtime safe. Combining this with the concise syntax afforded by Kotlin allows us to dramatically cut down on boilerplate and build complex user interfaces with relative ease. ...

July 27, 2018 · Droidcon (Berlin, Germany) · 1 min · Ash Davies
Droidcon Berlin: Rx Must Die

Rx Must Die

Is the learning curve of Rx too steep? Do we overuse Rx Java? Is LiveData an alternative? Do Coroutines and Kotlin build-in features make it obsolete? The Context: Episode 21: Rx Must Die

July 27, 2018 · Droidcon (Berlin, Germany) · 1 min · Ivan Morgillo, Joannes Orgis, Hasan Hosgel, Ash Davies
Berlindroid: Kotlin Test Robots

Berlindroid: Kotlin Test Robots

Following the announcement at this years Google IO we’ve seen a dramatic uptake in Kotlin and over the last few months we’ve learnt how we can use it to improve and produce clean architecture applications and supercharge our unit tests, but what about our UI tests? In this session, I’ll show you how you can utilise Kotlin with the Robot pattern to build concise, terse and easy to read UI tests ...

Embracing Impostor Syndrome

Early on in my career, you could say I had what you might like to call a mentor, we were friends, we still are, and naturally he taught me a few things. Things like how to be taken seriously in the workplace as a young developer, how to deal with office politics, but also something quite significant, which has stuck with me since then. Something that I’ve always believed to be his mantra, to, as he would put it, “fucking own it”. ...

July 21, 2017 · 3 min · Ash Davies