The Wayback Machine - https://web.archive.org/web/20230327133614/https://jakewharton.com/blog/
-
2023-01-16
Using jlink to cross-compile minimal JREs
-
2022-09-20
Report card: Java 19 and the end of Kotlin
-
2022-05-17
Build on latest Java, test through lowest Java
-
2022-04-05
Slope-intercept library design
-
2021-11-11
⇖ The state of managing state (with Compose)
Cash App Code Blog
-
2021-11-04
Multiplatform Compose and Gradle module metadata abuse
-
2021-06-08
⇖ Gradle dependency license validation
Cash App Code Blog
-
2021-06-04
Case-insensitive filesystems considered harmful (to me)
-
2021-05-27
Cross-compiling static Rust binaries in Docker for Raspberry Pi
-
2021-04-15
⇖ Migrating from Burst to TestParameterInjector
Cash App Code Blog
-
2021-04-07
Integration verbosity and good layering
-
2021-03-31
⇖ AssistedInject is dead, long live AssistedInject!
Cash App Code Blog
-
2020-12-30
A Jetpack Compose by any other name
-
2020-12-03
Treating Dockerfiles as shell scripts
-
2020-10-28
Peeking at command-line ANSI escape sequences
-
2020-09-01
Smaller APKs with resource optimization
-
2020-08-24
Shrinking a Kotlin binary by 99.2%
-
2020-08-19
⇖ Wire Support For Swift, Part 1
Cash App Code Blog
-
2020-08-06
Sixteen corners
-
2020-04-30
R8 Optimization: Lambda Groups
-
2020-04-23
Which is better on Android: divide by 2 or shift by 1?
-
2020-04-15
Simple Multiplatform RPC with Kotlin Serialization
-
2020-04-08
Litmus-Testing Kotlin's Many Memory Models
-
2020-03-25
D8 Optimization: Assertions
-
2020-03-18
Removing Google as a Single Point of Failure Part 2: Gmail
-
2020-02-19
Removing Google as a Single Point of Failure
-
2020-02-12
Extracting 100% of Data From a Stubborn, Dying ZFS Pool
-
2019-12-18
D8 Library Desugaring
-
2019-11-21
Public API challenges in Kotlin
-
2019-10-30
D8 Optimizations
-
2019-10-16
R8 Optimization: Enum Switch Maps
-
2019-10-09
R8 Optimization: Enum Ordinals and Names
-
2019-09-25
R8 Optimization: Class Reflection and Forced Inlining
-
2019-09-20
Calculating the true impact of zip file entries
-
2019-07-31
Exceptions and proxies and coroutines, oh my!
-
2019-04-11
R8 Optimization: Method Outlining
-
2019-04-02
Optimizing Bytecode by Manipulating Source Code
-
2019-03-26
The Economics of Generated Code
-
2019-02-27
R8 Optimization: Class Constant Operations
-
2019-02-12
R8 Optimization: String Constant Operations
-
2019-01-22
R8 Optimization: Value Assumption
-
2019-01-15
R8 Optimization: Null Data Flow Analysis (Part 2)
-
2019-01-10
Inline Classes Make Great Database IDs
-
2018-12-18
R8 Optimization: Null Data Flow Analysis (Part 1)
-
2018-12-11
R8 Optimization: Staticization
-
2018-12-04
Avoiding Vendor- and Version-Specific VM Bugs
-
2018-11-27
Android's Java 9, 10, 11, and 12 Support
-
2018-11-20
Android's Java 8 Support
-
2018-08-07
Increased accuracy of aapt2 "keep" rules
-
2018-08-01
Tracing Gradle task execution
-
2018-02-05
⇖ Introducing Android KTX: Even Sweeter Kotlin Development for Android
Android Developers Blog
-
2017-07-13
⇖ Surfacing Hidden Change to Pull Requests
Square Corner
-
2017-05-16
⇖ Generating Kotlin code with KotinPoet
Square Corner
-
2017-05-14
⇖ An Optional's place in Kotlin
Square Corner
-
2017-05-12
⇖ Square Open Source ♥s Kotlin
Square Corner
-
2016-12-02
⇖ Web Sockets now shipping in OkHttp 3.5!
Square Corner
-
2016-09-06
Forcing bytes downward in Okio
-
2016-01-21
Just Say mNo to Hungarian Notation
-
2015-12-11
Java Interoperability Policy for Major Version Updates
-
2015-02-25
⇖ SQLBrite: A reactive Database Foundation
Square Corner
-
2014-11-21
⇖ Better Parameterized Tests with Burst
Square Corner
-
2014-11-20
The Conference Speaker Investment
-
2014-10-24
Coercing Picasso To Play With Palette
-
2014-07-03
Play Services 5.0 Is A Monolith Abomination
-
2014-06-16
Android Needs A Simulator, Not An Emulator
-
2014-05-30
⇖ Hello Picasso 2.3
Square Corner
-
2014-01-20
⇖ Dynamic Images with Thumbor
Square Corner
-
2013-05-14
⇖ Enhance Your Application Using Picasso
Square Corner
-
2013-05-13
⇖ Easy HTTP Requests with Retrofit
Square Corner
-
2013-05-08
⇖ MimeCraft, JavaWriter, and ProtoParser
Square Corner
-
2013-05-06
⇖ Seven Days of Open Source
Square Corner
-
2013-04-03
⇖ The Resurrection of Testing for Android
Square Corner
-
2012-10-01
Deprecated From Inception
-
2012-07-22
The Android Build System Is Broken
-
2012-07-02
⇖ Decoupling Android App Communication with Otto
Square Corner
-
2012-05-15
⇖ Using ActionBarSherlock As A Base
Square Corner
-
2012-03-07
Announcing ActionBarSherlock Version 4.0
-
2012-01-18
Advanced Pre-Honeycomb Animation with NineOldAndroids
-
2012-01-02
Something Beta This Way Comes!
-
2012-01-01
ActionBarSherlock - A Love Story (Part 3)
-
2011-12-19
ActionBarSherlock - A Love Story (Part 2)
-
2011-12-01
ActionBarSherlock - A Love Story (Part 1)