Sign in

Oliver Spryn
I’m connecting people with technology, seamlessly. Since 2008, I’ve been a software architect and a leading engineer, delivering smart and intuitive software.

The handguide for a manual setup

Almost as easy as a brew install

I recently switched my shell from Bash to Zsh, and after installing my new favorite extensions (Powerlevel10k and Meslo Nerd Font), I realized I was missing a key component from Bash: Git completion.

Layered terminal windows showing a directory listing and htop
Layered terminal windows showing a directory listing and htop
By Sai Kiran Anagani on Unsplash

Finding the Dependencies

The Git community maintains all the shell completion scripts in their repository on GitHub. Navigating to this folder reveals scripts for a variety of shells, including Bash and Zsh.


A blueprint for your journey

Taking Jetpack to the next level

A classic, red London telephone booth
A classic, red London telephone booth
Photo by KMA . on Unsplash

The Android Jetpack Navigation Component has both revolutionized and standardized how routing is done on Android. Yet, as with every evolution, there is a learning curve to adapt existing conventions to new implementations. Let’s see how we can adapt this library to route users to a telephone number and web URLs.

  1. Telephone & Web URLs (this article)
  2. Reusable Dialogs
  3. External Apps With Fallback to the Play…


Make your (developer) life easier

When you have a spare 60 seconds, try them out

I suppose you could say I’m a bit of a JetBrains-family of IDEs polyglot. It’s not uncommon to see me using IntelliJ, WebStorm, AppCode, and DataGrip. And the estranged child called Android Studio.

An up close image of an RGB mechanical keyboard
An up close image of an RGB mechanical keyboard
Photo by Marius Niveri on Unsplash

During my tenure as a satisfied JetBrains developer, I’ve tried out a good selection of IDE plugins, and there are just a few that stand out above the others and add an exceptional shine to my daily development experience. Over the next several minutes, I’d like to introduce you to a boiled-down list of my favorite plugins. …


95% and above coverage ratio is not a pipe dream

The journey begins at the start of your project

Sometimes, you have to say it straight: Google does not build Android with unit testing in mind. Even as recently as API 30, the platform continues to evolve in this unfortunate direction, making critical components of your app increasingly challenging to test. Thus, if you want to build an app with 95% or higher code coverage, then the burden lies with the app developer to make this a reality.

A standardized test answer sheet with a white pencil on top, post-it notepads, and a pencil sharpener nearby
A standardized test answer sheet with a white pencil on top, post-it notepads, and a pencil sharpener nearby
Photo by Nguyen Dang Hoang Nhu on Unsplash

Yet is it such a burden to achieve such a respectable amount of code coverage? …


A thorough guide to setting up a more secure development flow on your machine

A padlock with chains securing access to a gate
A padlock with chains securing access to a gate
Photo by Georg Bommeli on Unsplash

Git is full of useful commands, powerful capabilities, and often overlooked features. One of its hidden gems is its ability to sign commits and tags with a key. For this job, Git turns to GPG, a widely-adopted and open-source program designed for tasks such as this.


Tips for a hands-off setup experience

A 100% command-line based solution to a working emulator

Photo by Irina Nalbandian on Unsplash

When it comes to setting up the Android emulator on a computer, most online tutorials start with “Download Android Studio.” Subsequent steps explain how to use the interface to pick the API and device profile before finally creating the AVD.


For the times when there’s no app for that

Demystifying the three-step process by learning by example

Photo by James Hammond on Unsplash

You can find a Gradle plugin to do just about anything with Java. If you have ever worked on any modern Java application with this build tool, then you are no doubt accustomed to importing and applying plugins to the top of your .gradle files before you can build.

The Blueprint

There are a few concepts I’ll discuss which do not readily appear in the…


Leveraging the open library to take it further

Extending Jetpack’s ability to navigate anywhere

New York City from the space
New York City from the space
Photo by NASA on Unsplash

With the introduction of Android Jetpack, developers now have a marvelous new set of libraries which offer an unprecedented level of simplicity and reusability. Before Jetpack’s debut, fragment and activity-based navigation often proved to be complicated, fragile, and nearly unique to each app on the market. Google has heard our pleas for help and given us the Navigation Component.

Current State of the Navigation Component

Since the preliminary release of the navigation component in May 2018, much of its functionality has improved, changed, and expanded. As of November 2020, the current state of this library offers native support for these destination types:

  • Fragments
  • Activities
  • DialogFragments

Support…


When Groovy becomes your Swiss army knife

Optimize your build times and gain back precious minutes

Gradle is a powerful build tool that reigns as the dominant choice among Android developers. Despite its popularity, the complexity of fine-tuned optimizations can sometimes baffle newer engineers.

Android Studio open on a Windows computer displaying Java code
Android Studio open on a Windows computer displaying Java code
By Maximilian Weisbecker on Unsplash

Establishing a Use Case from Experience

Anyone who uses Gradle should know that most builds include at least one plugin. For Android, at least, it is common to see these plugins applied at the top of a configuration file:

Oliver Spryn

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