Kotlin Everywhere Hamburg: Refactoring Legacy Code with Kotlin and Coroutines

Refactoring Legacy Code with Kotlin and Coroutines

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 it’s 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. ...

Droidcon NYC: Implementing the Paging Library

Implementing the Paging Library

The Android Paging Library makes it easy to integrate complex paging behaviour, gradually loading small chunks of data at a time to help reduce usage of network bandwidth and system resources. The library allows you to implement this behaviour using compositional components in a decoupled architecture making your code more reliable, scalable, and testable. Furthermore, you’ll be able to use familiar components such as LiveData or RxJava to interface with your existing architecture. ...

August 26, 2019 · Droidcon (NYC, New York, USA) · 1 min · Ash Davies

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. ...

July 9, 2019 · Droidcon Beta (Berlin, Germany) · 1 min · Ash Davies, Sinan Kozak
Droidcon Berlin: 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. ...

Photo by [William Daigneault](https://unsplash.com/@williamdaigneault) on [Unsplash](https://unsplash.com/photos/oWrZoAVOBS0)

A Short History of Android and Reactive Programming: Coroutines Edition

Preface Last year, there was a hot topic on Twitter about how relevant RxJava was with modern Android development, which garnered a pretty interesting debate with some convincing arguments from both sides. The claim was that given the popularity of modern frameworks, RxJava is too bloated and should be removed. The debate was even given a catchy title, which prompted a panel discussion at Droidcon Berlin last year, with Hasan, Ivan, x, and myself. ...

June 3, 2019 · 12 min · Ash Davies
mDevCamp: 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. ...

Google IO Extended: Android Jetpack

Android Jetpack: Navigation Component

A brief overview of the Navigation Component presented at Google IO Extended at the Google office in Berlin.

Android Dev Podcast: Activity Lifecycle Under the Hood

Activity Lifecycle Under the Hood

So many candidates nowadays are using live data on interview but less than half of them know how it works and what exact a problems with activity destroy during rotation and keeping activity in the backstack. We have GDE from Berlin Ash Davies to solve that puzzle and show clear picture what to do to deal with the state.

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. ...