Kotlin

Using Tailwind CSS with Jetpack Compose for Web

This post outlines how to set up and use Tailwind CSS in Jetpack Compose for Web projects.

Read
Kotlin

A Redux implementation for Kotlin Multiplatform

Business logic is usually platform independent but UI state management is always influenced by the platform you are building on. In this post, I will outline how I implemented a Redux inspired state management solution for my recent Kotlin multiplatform project and how it is connected to UI on Android and iOS.

Read
Web

Protecting Private Content with Login on GatsbyJS websites

In this post, I will walkthrough how we supported user login inside our Gatsby website and protected statically generated private content.

Read
Talk

Building Whitelabel Apps at Scale

My DroidCon London 2021 talk about how I scaled our whitelabel e-commerce app to be built and deployed automatically as a no-code solution.

Read
Android

Custom Side Drawer In Jetpack Compose

This post describes how to build a custom side drawer that opens from the right side of the screen using Jetpack compose

Read
Android

Faking Dagger Injection in Instrumentation Tests

This blog explains a simple setup to fake Dagger Android injections when writing instrumented tests. We will explore the new `FagmentScenario` and `ActivityScenario` as well as using them to simplify writing instrumentation tests when using Dagger Android

Read
Kotlin

Kotlin Coroutines and Synchronisation: An Example of using Mutex

Applications utilising concurrency must synchronise access to shared state. In this blog post, we will go through an example of building a class that can safely share access to mutable between concurrent operations with the help of `Mutex`.

Read
Kotlin

Setting up a Kotlin multiplatform project

This blog will show you how to setup a Kotlin multiplatfrom project with an Android and an iOS application and a shared kotlin module.

Read
Kotlin

Building a GraphQL server with Kotlin + Ktor

This blog post summarises the steps I took to build a GraphQL API with Kotlin and Ktor. It goes the logic needed define routes, execute GraphQL queries and mutations as well as adding JWT authentication with a simple permissions system for access control.

Read
Android

AndroidDevSummit 2019: What's new in Android Fragments

Google announced AndroidX fragment 1.2.0 At AndroidDevSummit 2019. In this blog post we will go through this release to see what's new and how can we use this new version in our projects.

Read
Flutter

Clean Architecture in Flutter - FlutterLDN 2019

In here you would fine the slides I presented at Flutter LDN meetup on 21st October 2019 for "Clean Architecture in Flutter using BLoC" talk.

Read
Flutter

Clean Architecture in Flutter

In this series of blogs, I will discuss how I implemented clean architecture in a flutter project I am working on. Robert C. Martin (Uncle Bob), introduced clean architecture which enforces separation of concerns between the different layers of a system. This makes the system testable and independent of any frameworks. This blog outlines what is clean architecture and describes the different layers to be considered in a clean architecture project.

Read
Android

WebRTC for Android

This article serves as a how-to guide for implementing basic video conferencing with WebRTC. WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimised to best serve this purpose.

Read
Android

HTTP requests on Android using Ktor

Ktor is a new framework for building asynchronous servers and clients. It's 100% Kotlin and runs on Coroutines. In this blog, we will explore using the Ktor client to make HTTP requests in an Android App.

Read
Android

Custom Views Lifecycle and handling onMeasure()

A quick introduction to the lifecycle of Android Views and an example on how to implement onMeasure to negotiate your view's size.

Read
Android

Robolectric 4: Bridging the gap between Robolectric and Espresso

This is the second part of a series of blogs about Robolectric 4. It will explain how Robolectric works and what might go wrong. This blog will also explain how can we bridge the gap between Robolectric and Espresso.

Read
Android

Robolectric 4: A quick introduction

This is the first part of a series of blogs about Robolectric 4. This part will go through project setup steps and running the first shared test.

Read
Android

How To Debug Your Android App Over Wi-Fi

Setup wireless ADB and debug your Android app over Wi-Fi

Read