Mobile app developer, focusing on Android. Working at Brightec ( Links:

How to use JAXB bindings with WSDL to separate schemas into different packages.


As discussed in my previous blog, WSDL is an XML format that describes network services. It defines endpoints and their request and response formats.

WSDL files contain schemas to describe those request and response objects. A single WSDL file could contain multiple schemas. This is commonly used to share some…

How and where to define your user-facing strings.

You’ve probably already read about the file. It allows you to define any strings you wish to present to an end-user.

To retrieve one of these strings in code you first need to get a MessageSource. This is provided via spring dependency injection.

Constructor injection:

@Service //…

Using the new and improved AnimatedVectorDrawable to pause and seek your animations.


Android SDK 21 introduced both the VectorDrawable and the AnimatedVectorDrawable. This allowed you to use vector assets within your app, and even animate them.

They’ve iterated on these since then, but AnimatedVectorDrawable was still missing something. You couldn’t manipulate and control the animation. There was no pause or seek functionality.


Educating Android users can be subtle by using motion

Material Design

The material design system will be familiar to most, as one of the most widely used design systems. It’s a visual language that represents good design principles whilst allowing expressive branding.

Foundationally, it is based on the physics of the world. This makes it natural and familiar to users. …

How to implement certificate pinning in Kotlin Multiplatform using Ktor

Certificate Pinning

Pinning certificates is a common practice when interacting with remote APIs. It is the act of constraining which certificates you trust. This helps to defend against attacks on certificate authorities. It also helps combat man-in-the-middle attacks.

There is a multitude of information available about certificate pinning. …

How should you structure your multiplatform project?

Kotlin Multiplatform

Kotlin Multiplatform (KMP) is a way of writing cross-platform code in Kotlin. It is not about compiling all code for all platforms, and it doesn’t limit you to a subset of common APIs. KMP provides mechanisms for writing platform-specific implementations for a common API.


One of the common use-cases, and…

Alistair Sykes

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store