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
Developers Alliance: The Next Challenges for the EU Mobile Economy

The Highs and Lows of Developing for a Digital Europe

This event will focus on the state of the mobile economy in Europe. Data shows that the ecosystem is thriving, for the benefit of consumers, business and investors. Such a growing and innovative space needs an enabling regulatory environment to continue to prosper. Come and join us for a discussion with developers and decision makers about the future of mobile innovation in Europe.

Photo by [Digital Buggu](https://www.pexels.com/@digitalbuggu) on [Pexels](https://www.pexels.com/photo/colorful-toothed-wheels-171198/)

Dagger 2: Module Parameters

Last month, I went into detail about how to use the recently released Dagger 2 Android modules, and how you can make your injection code much more concise. Google have gone through a lot of effort to enable developers to use Dagger with very little integration and more importantly on how to use a common injection paradigm without the injection target being concerned with how it is being provided with it’s necessary dependencies. ...

June 19, 2017 · 3 min · Ash Davies
Photo by [Alog Sharma](https://www.pexels.com/@aloksharma/) on [Pexels](https://www.pexels.com/photo/black-android-smartphone-177707/)

Dagger 2: Android Modules

Many of the articles I write tend to involve application structure or architectural design patterns; and one of the most recurring topics I tend to visit is that of dependency injection. Dependency injection is probably one of the most important topics of modern application development, whilst often overlooked as a necessity, it allows us to build highly scalable, powerful applications and platforms. Dependency inversion works seamlessly with many other design principles and in many ways facilitates them, most specifically single responsibility. Effective dependency injection is achieved by providing dependencies through the constructor, usually as interface types, thereby allowing the class in focus to not worry about the instantiation of these types. I’ve gone into further detail about this in my previous article Effective Dependency Injection. ...

May 1, 2017 · 5 min · Ash Davies