Android and Kotlin
Authorization and retrying of web requests for OkHttp and Retrofit
Most remote APIs require some form of authorization in order to access them. We will explore using OkHttp Interceptors and Authorizers to authorize our web requests for use with OkHttp and Retrofit.
The power of lazy properties in Kotlin
Kotlin makes creating properties that are initialized on first access very simple. We will go through different options for creating them and how they can be really useful in our Kotlin code.
Uploading a file with progress in Kotlin
How to observe progress during a file upload may not be immediately obvious, when using Retrofit and OkHttp. We will build an implementation that uses a callback and then how to wrap it into a reactive stream.
Protecting secrets in an Android project
Managing secret values in a way that doesn't make them easy to extract can be difficult. We will explore techniques we can apply to keep them out of source control and how to secure access to them.
Enforcing type safety of IDs in Kotlin
Entities in our codebases will commonly need identifiers or IDs to refer to them with. We will have a look at the different options for them and how to make them type-safe, allowing our code to be safer and less error-prone.
The power of sealed classes in Kotlin
Modelling a type that can come in different forms, each with their own state, is a really handy language feature. We will look into how and when Kotlin sealed classes can be used and look at some use cases for them!
Using Kotlin to bind Android views
When retrieving views in Android there are many different ways to go about it. We will be looking at using both lazy delegated properties within Kotlin and the Kotlin Android Extensions to bind views to properties.
Adding Continuous Integration to your Android project
CI is a powerful tool that can improve your workflow. We will explore some of the options available for Android, before configuring Circle CI and Bitrise in order to compare the approaches two different services take.
Testing on Android using JUnit 5
How we write and run unit tests can be greatly improved by using JUnit 5 on Android, which has been available for a while. We will look through what is required to get it setup and the changes it makes to how we write tests.
Manage your Gradle dependencies in Kotlin, even from Groovy scripts
As projects grow we can quickly run into issues with dependency management. We will explore the ways Gradle allows us to define our dependencies, ending with looking at using Kotlin source files and easily accessing them from our Gradle scripts.