Technical blog from Craig Russell.
Discusses whether the Repository layer should expose `suspend` functions or not.
Describes the two provided coroutine test dispatchers, standard and unconfined, the difference between them and when to use each
How to create links in markdown, both those which display just the URL and those which display custom text
Apple Shortcut which integrates with Finder, for an easier way of adding images to a blog post
How to get the day of the week when using Apple Shortcuts
Easier git commands using git-number, which can be used to number each file listed in git commands for a quicker way to choose files
Building a journaling tool using Apple Shortcuts and Notes
The latest tooling to help test Android Coroutines, provided as part of the kotlinx.coroutines test libraries, which aim to “provide utilities for efficiently testing coroutines”.
A pattern for launching coroutines which cancel when the Activity or ViewModel is destroyed, but support allowing important parts of the coroutine to run uncancelled.
Kotlin coroutines provide an elegant way to write asynchronous code, but sometimes coroutines make it difficult to write unit tests. This post describes how to use TestCoroutineDispatcher to write efficient and stable unit tests for code written with coroutines.
Code Confessions; openly confessing your coding sins to your team. Involve your team and absolve yourself.
A potential WorkManager pitfall when refactoring or deleting your Worker subclasses.
How to install the privacy-focussed Fathom website analytics on an Amazon EC2 instance.
How to include the author tag in the generated RSS feed for a Hugo-generated site.
An example of how to configure an Amazon AWS Lambda to send a push notification to Firebase FCM, written with the Node.js 8.10 runtime.
How to use Coroutines in ViewModels, making use of the new ViewModelScope extension property. This allows coroutines to be cancelled automatically when the ViewModel is being cleared.
The functions `add()` and `plus()` which are available on some Kotlin collections, and how despite their similar looking names, their underlying implementations can make a big difference.
kscript, an easy way to write and execute scripts in Kotlin. This post covers what kscript is, how to install it on a Mac, and offers some kscript examples.
Medium. We need to talk. 💔
If you launch a coroutine using launch(Dispatchers.Main) while already on the main thread, will the code execute immediately?
Kotlin utility function to execute code and measure how long that took
Are Android WebViews vulnerable to Magellan vulnerability?
ListAdapter is a new class bundled in the 27.1.0 support library and simplifies the code required to work with RecyclerViews
How to download an image from a WebView triggered by the user long pressing the image
Diving into a crash caused by a log statement with mixed parameter styles
Exploration of a bug report about a third party keyboard not submitting when done button pressed
How to define a live template in Intellij/Android Studio which can be used to quickly add a unit test in the exact style you prefer.
Using Kotlin data classes to represent view state
Stripping log statements using Proguard
Beware a silent cast that can cause unexpected behavior
How to disable crash reporting for your BuildConfig.DEBUG builds when using Crashlytics, part of the Fabric tool suite.
This article outlines a solution for allowing Presenters to survive a View’s configuration change in an MVP architecture.
How to manage multiple SSH keys for different GitHub.com accounts so that you can access multiple accounts and projects, each with different credentials.
How to write unit tests for asynchronous code using Bolts