A Koin Operated Repo Browser In this post I want to take a look at the less sharp and more round DI framework that gets a lot of use in android projects: Koin Koin bills itself as being light weight with no magic. It doesn't do code generation and
Proguard 101 I wanted to write about every android developer's favorite code shrinking and obsfucation tool: Proguard. I know that when I was first learning to develop on android that information on what Proguard was, how it worked, and how you can configure it were sparse.
Ktor 1.0 - Revisiting our Christmas list service Last Christmas I looked into a beta version of the Ktor framework and used it to create a really simple restful API. The API allowed you to create "users", "wishlists" and "wishlist items". You can find the project on github and read the accompanying
Exploring the new Java 11 HttpClient Java 11 is hot off the press and it comes with a brand new HttpClient class. Say good-bye to fussing with HttpUrlConnections! Let's dive right in by having a look at how we go about creating one and then we'll explore how to make
Android WorkManager Google announced the WorkManager library at I/O 2018 and in this month's post we'll explore the API and see how we can use it to handle some of the most common background work scenarios. You can see code examples in this post's companion
Dagger2 And ViewModel Injection In this post I'll go over how you can bring dagger2 injection to your android app's view model objects. I'll also briefly cover how to make this work in a multi module android project in case you've started to break your app into modules
An updated look at the Paging Library The paging library has come a long way since I first wrote about it last September. It recently had a 1.0 release and so I thought now would be a good time to review. We'll go over whats changed and give an example
No More notifyDataSetChanged() Let's take a look at the magic of DiffUtil in this month's post. What is DiffUtil? It is a simple class that can help you calculate exactly what items have changed whenever you need to update a RecyclerView adapter. Why would you want to
Containerized Payara with a Google Cloud SQL JDBC resource In this post we'll explore how we can use docker to automatically setup the Payara application server with a jdbc resource that will securely communicate with a Google Cloud SQL instance and then auto deploy a war file. We'll make use of payara's pre
Exploring Java 9's Module System Java 9 came out a few months ago and it has brought some of the biggest changes to the Java language in a very long time. In this post we will take an introductory look at the new module system Java 9 delivered to
A Kotlin Christmas List Service Let's look at ktor, a new web app framework being developed to take advantage of all the awesome that Kotlin has to offer. In the spirit of the Christmas season I figured we could explore this framework by building a Christmas wishlist web service.
Simple and Sane Video Playback in Android This month's blog post is a little late so November will hopefully end up with two posts :). Let's look at how quickly and easily we can build a minimum viable video playing app in Android using the ExoPlayer library. ExoPlayer is an open source
Getting Started With The Paging Library Update: The paging library has changed a lot since this post. If you want to see an updated example based on the 1.0 release, then click here Android development just keeps getting easier. Google has now released another Architecture Components library and this
Android CI with Jenkins and Firebase Test Lab Repeatable tested builds are essential to delivering a high quality android app that your users will love. We will look at how we can achieve repeatable tested builds using Jenkins and Firebase Test lab in this month's post. We will even configure our process
Dagger2 Android Injection Dagger2's 2.10 and 2.11 updates brought Android developers a new set of APIs designed to make injecting Android components even easier. This post will explore how you can take advantage of these new classes and remove some injection boilerplate from your Android
Android Lifecycle and Room Google I/O 2017 was last month and it included a lot of really awesome announcements, especially in the Android world. We'll explore one of those announcements in this blog post as we dive into the Lifecycle and Room libraries released by Google. Let's
Docker swarm with compose files In a previous post we showed how you can create compose files to launch multiple dockerized web services at once. We even created a little set of services that were "load balanced" behind a dockerized instance of nginx. In that post though
Android shared element transitions In this post we will look at how you can create shared element transitions in the android framework. You can see a simple project making use of shared element transitions here. The first thing we'll need to do is make sure that our project
An intro to Java8 lambdas and streams In this post we are going to walk through a brief introduction to Lambdas and streams in Java8. Let's begin by transforming an anonymous inner class into a lambda expression and finally a method reference. class Example { public void example(){ Runnable myRunnable = new Runnable(
Creating a restful web service with SparkJava, Dagger2 and Gradle In this post we are going to learn how to create a restful web service using SparkJava, Dagger2, and Gradle. If you're an android developer like I am then you probably recognize Dagger2 and Gradle, but let's go over what each of these pieces
Getting Started Easy service load balancing with docker-compose In this blog post I am going to walk through how you can easily setup a load balanced web service using docker-compose. Our web service will have a single end point that returns a message. We will write the web service using Spark to