The Art of Command Query Separation

Functions have side-effects. At times they change the state of the system when you least expect them to and wreak all kinds of havoc. It’s difficult to get rid of all side-effects in an Object Oriented programming paradigm. We just need to make sure to manage them so that they don’t bite us when we aren’t looking.

Topics: Tutorials

Introduction to Networking Using Kotlin

As an Android developer, it's highly likely that you have heard about Kotlin and all it's awesomeness :). For those who haven't heard about it, Kotlin is a relatively new programming language created by JetBrains(developers of the intelliJ IDEA).

Topics: Kotlin, Tutorials

Reusing features in different flows of your app with Dagger

Problem Statement

Imagine that your app provides Fingerprint authentication. Your users will have to enable it manually. They can do it either after they register into your app (Registration Flow) or once they've logged in (In App – Settings).

Topics: Dagger, Tutorials

Implementing Android App Shortcuts

With every release of Android, there comes a myriad of new features and Android Nougat 7.1 is no different. One of these new features is App Shortcuts. App Shortcuts allow the user to access primary actions in your app straight from the launcher, taking the user deep into your application, by long pressing on your app icon. Users can also pin these shortcuts to the home screen for even quicker access to your app’s primary actions. In this tutorial, we’ll cover how to boost your user’s experience by implementing App Shortcuts in your app.

Topics: Tutorials

'Rxify': The Anti Cache-then-Network OR Network-then-Cache Problem

By - @ragdroid (Twitter, Medium)

We all have heard about the classic “Cache-First then Network” problem. If not, then let’s discuss about it a bit. Cache-First then Network problem states that:

Topics: RxJava, Tutorials

Best Practices for Android App Build Script Configuration

In the previous post I shared some of best practices our team is using for the developer productivity, now it is time to focus on gradle-specific hacks to make your everyday Android developer life better.


Topics: Gradle, Tutorials

Crash Course on RxJava with Thomas Nield (Part 2)

Observables and Timing

Topics: RxJava, Tutorials

Crash Course on RxJava with Thomas Nield (Part 1)

A Quick Introduction

If you follow news on Android or Java development, chances are you have heard the phrase "reactive programming" more than once. Proving to be more than a trend, it is becoming harder to ignore thanks to Netflix's maturing implementation of RxJava. To raise its pertinence even more, Android jobs are increasingly listing RxJava as a skill requirement.

Topics: RxJava, Tutorials

Keddit — Part 10: Kotlin & Dagger 2 (Dependency Injection)

Part 10: Kotlin & Dagger 2

 For parts 1-9 click this link

I have to be honest with you and say that I didn’t have any plans to write about Dagger 2 in the Keddit app. In fact, I was about to write the last article with some conclusions about the Kotlin language, but I really like Dagger as a dependency injection framework, and nowadays it’s a hot topic as it’s being used heavily in many Android apps. So, let’s talk a little bit about Dagger 2 in Kotlin and the required steps to have it working in the app.

Topics: Kotlin, Keddit, Dagger, Tutorials

Is your app Aware? (Part 2)

We already saw an overview of the new Awareness API from Google, but we didn’t dive into the Snapshot version of it. Instead of reacting to changes like the Fence API, these have been created with a polling method in mind, so that it’s us, the developers, requesting the updates whenever we need it.

Topics: Tutorials