Gradle dependency license validation
Jake Whartonby Jake Wharton8 Jun 2021
Gradle dependency license validation Six years ago we added a screen to the Android Cash App to display the open source libraries we use and their licenses.
jakewharton.comadded August 2026
Jake Whartonby Jake Wharton8 Jun 2021
Gradle dependency license validation Six years ago we added a screen to the Android Cash App to display the open source libraries we use and their licenses.
Jake Wharton4 Jun 2021
04 June 2021 Having been burned by case-insensitive filesystem bugs one too many times, I long ago switched my development folder to a case-sensitive filesystem partition on my otherwise...
Jake Wharton27 May 2021
27 May 2021 Earlier this year I built a web-based garage door controller using Rust for the Raspberry Pi called Normally Closed.
Jake Whartonby Jake Wharton15 Apr 2021
Migrating from Burst to TestParameterInjector Square’s Burst library burst onto the scene in 2014 stemming from general dissatisfaction with JUnit 4’s built-in parameterized runner.
Jake Wharton7 Apr 2021
07 April 2021 One of my favorite non-features from building view binding is that it lacks integration with activities or fragments.
Jake Whartonby Jake Wharton31 Mar 2021
AssistedInject is dead, long live AssistedInject! After ~5 years of existing and ~4 years as an open source project, our AssistedInject library has been deleted.
Jake Wharton30 Dec 2020
30 December 2020 I really like Jetpack Compose. Between work and personal stuff I have three projects which are each built on top of it. It's great!
Jake Wharton3 Dec 2020
03 December 2020 I use Docker to run a lot of tools. With the tools all wrapped up in containers, my computers are free of Python and Go and the various other dependencies needed for their use.
Jake Wharton24 Aug 2020
24 August 2020 We'll get to the shrinking, but first let's motivate the binary in question. Three years ago I wrote the "Surfacing Hidden Change to Pull Requests" post which covered pushing...
Jake Whartonby Eric Firestone19 Aug 2020
Wire Support For Swift, Part 1 Introduction We’re excited to announce support for Swift in Wire. Wire already supports compiling your protocol buffer files into Java and Kotlin, and today Swift...
Jake Wharton30 Apr 2020
30 April 2020 Note: This post is part of a series on D8 and R8, Android's new dexer and optimizer, respectively. For an intro to D8 read "Android's Java 8 support".
Jake Wharton23 Apr 2020
23 April 2020 I've been porting the AndroidX collection library to Kotlin multiplatform to experiment with binary compatibility, performance, tooling, and the different memory models.
Jake Wharton15 Apr 2020
15 April 2020 I recently played a minor role in helping add Cast support to an Android app. Both the Android app and Cast display are written in Kotlin.
Jake Wharton8 Apr 2020
08 April 2020 When writing multiplatform code, Kotlin's three compiler backends each have different memory models which must be considered.
Jake Wharton25 Mar 2020
25 March 2020 Note: This post is part of a series on D8 and R8, Android's new dexer and optimizer, respectively. For an intro to D8 read "Android's Java 8 support".
Jake Wharton18 Mar 2020
18 March 2020 I want to remove Google as a single point of failure in my life. In the first blog post on this subject I detailed my setup for backing up Google Photos and Google Drive contents onto...
Jake Wharton19 Feb 2020
19 February 2020 I want to remove Google as a single point of failure in my life. They have two decades of my email. They have two decades of my photos.
Jake Wharton12 Feb 2020
12 February 2020 In 2010 I built a home server with five 2TB drives. It ran Solaris and ZFS for the redundancy and data checksumming to ensure no data could be lost or corrupted.
Jake Wharton18 Dec 2019
18 December 2019 Note: This post is part of a series on D8 and R8, Android's new dexer and optimizer, respectively. For an intro to D8 read "Android's Java 8 support".
Jake Wharton21 Nov 2019
21 November 2019 Kotlin is justifiably lauded for its language features compared to today's Java. It has constructs which allow expressing common patterns with more concise alternatives.