Sign in

AJ Kueterman

Remove some boiler plate and make manual dependency injection with Android View Models easier with the power of Kotlin extensions.

Photo by Toan Chu on Unsplash

The Android team has been increasingly vocal about their support for frameworks like , going so far as to develop and recommend — their Android DI framework built on top of Dagger — for modern Android development.

In their guide to the Android team lays out approaches to manual DI for View Models. They offer both the basic approach to manual DI — just instantiating everything you need in onCreateand using lateinit var View Models - and the container approach using a custom AppContainer to handle dependencies across all your Activities.

The alternative they…

Opinion — It’s hard to see what’s below the surface until you actually dive in.

Boat floating by icebergs
Boat floating by icebergs — Annie Spratt on Unsplash

Estimation is one of the hardest problems in software development. Trying to calculate the time required to solve complex technical and organizational problems is more magic than art. As on Twitter put it…

When you give a developer 5 hours for a task, they’ll let you know they need 50 hours once they’ve used up 10.

Even looking at the most atomic of these calculations — estimating an engineering task or user story — it’s clear to see that estimations are no exact science. …

Photo by on

Launching suspend functions in Kotlin can be a complicated affair. Managing your CoroutineScope and making sure exceptions are handled properly can be confusing and easy to forget.

In Android, when using the ViewModel or Lifecycle specific scopes this gets much easier. We let the Android system provide a CoroutineScope and manage killing our coroutines when the lifecycle of those things end.

fun getObjectFromNetwork() {
viewModelScope.launch {
val response = networkRepository.getObject()

However, there are cases when exceptions can be thrown from the CoroutineScope. A real life example I experienced recently was a SocketTimeoutException that was thrown from a Retrofit…

I’m still blown away when I think back to my experience attending WWDC 2018. The sheer scale and production value of the event, the overwhelming number of world class developers, and the downright fun I had attending — it was just so awesome.

Me, nerding out over Apple in San Jose & Cupertino

When I reflect on my time in San Jose and everything that I learned and saw, and I think back to all of the awesome events and talks I attended, one of the most unlikely sessions still stands out. .

Like it’s name suggests, the talk focused on the basics of TextKit…

The highest level explanation of GitHub Flavored Markdown in the context of iOS markdown rendering.

To start, lets break it down.

What is Markdown

Markdown is a markup language that uses plain text formatting syntax to allow it to be easily converted to HTML. This means you can write content in a more intelligible way (no more <> everywhere) that can be easily displayed in a prettified HTML form.

Markdown is intended to be as easy-to-read and easy-to-write as is feasible.

What is a Markdown ‘spec’?

Markdown was originally in 2004, but there are many different implementations — or — of it that…

Battle of the Static Site Generators

Static sites have become something of a hobby of mine recently. I’ve become addicted to spinning up new Jekyll sites both at work and for fun for a myriad of purposes. Portfolios, blogs, documentation — really any site hosting static content or managed by a CMS are great candidates for a simple static site.

I’ve been a huge fan of Jekyll to do just that. It enables you to write and manage content in markdown and just sit back and let Jekyll to the heavy lifting of putting your site together. …

The meandering journey of an old blogger.

For a recent episode of the podcast “What’s Tech?” from The Verge, Chris Plante has a conversation with The Verge’s Social Media Manager Kaitlyn Tiffany about .

Listening to this podcast, I began reflecting on my time over the last several years of using Tumblr, and I began to realize that I actually have a somewhat interesting perspective of the site after my experiences. …

AJ Kueterman

Mobile developer and designer. Into the Jamstack. Read on at

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