Colin White's Avatar

Colin White

@colinwhite.me.bsky.social

Android @ Cash App. Merge conflicts are my cardio https://github.com/colinrtwhite

1,138 Followers  |  451 Following  |  18 Posts  |  Joined: 27.03.2023  |  1.98

Latest posts by colinwhite.me on Bluesky

Change Log - OkHttp Squareโ€™s meticulous HTTP client for the JVM, Android, and GraalVM

OkHttp 5.0 has a stable API. ๐Ÿ—ฟ

03.07.2025 14:57 โ€” ๐Ÿ‘ 57    ๐Ÿ” 12    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 2

This is just a personal anecdote but probably worth noting for job hunters and learners:

I've been asked 3 times just in the past week (!) by hiring managers for native Android developers!

If you're deciding what you want to pick up/hone, that seems to be in pretty high demand right now.

22.03.2025 22:58 โ€” ๐Ÿ‘ 98    ๐Ÿ” 11    ๐Ÿ’ฌ 8    ๐Ÿ“Œ 1

Is there a reference implementation of this? Would be neat to see

22.03.2025 19:37 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Ukraine <3

02.03.2025 02:46 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Interesting - $7-8 for only no ads on YouTube feels pretty compelling imo. Iโ€™m sure theyโ€™re doing a ton of testing on it to make sure it doesnโ€™t cannibalize too many sales of the full Premium membership

22.02.2025 22:27 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I want to like YouTube Music, but it feels like an afterthought of a product from Google. If they ever unbundled it from YouTube Premium I think itโ€™d be in trouble.

21.02.2025 07:25 โ€” ๐Ÿ‘ 7    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Great podcast on data modeling and preventing invalid states!

19.02.2025 03:02 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

My favourite fact about the Super Bowl is businesses have to call it โ€œthe big gameโ€ since โ€œSuper Bowlโ€ is trademarked

10.02.2025 22:35 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks! ๐Ÿ™

15.01.2025 23:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Dispatchers.Unconfined and why you actually want EmptyCoroutineContext Use EmptyCoroutineContext instead of Dispatchers.Unconfined.

New post! Why you should use EmptyCoroutineContext instead of Dispatchers.Unconfined. code.cash.app/dispatchers-...

15.01.2025 21:09 โ€” ๐Ÿ‘ 55    ๐Ÿ” 16    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 5

No memory leaks? ๐Ÿ˜…

05.12.2024 17:44 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

go.bsky.app/BWjNgtr

Thank you @p-y.wtf for the wonderful idea (still building the list)

03.12.2024 04:25 โ€” ๐Ÿ‘ 26    ๐Ÿ” 3    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 2

I swear the notification sound hits different in the emulator

01.12.2024 07:58 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This is one of those top tier posts that everyone should read. It still helps me with designing APIs!

29.11.2024 22:07 โ€” ๐Ÿ‘ 10    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Getting feedback loops below the "I can alt tab while this builds" threshold is so critical for me. A 1 minute build is basically the same as a 3 minute build if I lose focus.

28.11.2024 01:25 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
The pursuit of fast feedback loops in Android development There's something magical about having a direct connection to what we're building

I wrote a blog post that's really just an excuse to trick you into watching @worrydream.com's Inventing on Principle talk

27.11.2024 19:09 โ€” ๐Ÿ‘ 59    ๐Ÿ” 17    ๐Ÿ’ฌ 8    ๐Ÿ“Œ 2

Two Kotlin functions that take 2 float parameters a and b. Each function returns a divided by b if b is not 0, or a constant called DefaultValue otherwise. The first function does so using takeIf, let, and the "elvis" operator. The second function uses a simple if/else statement.

Two Kotlin functions that take 2 float parameters a and b. Each function returns a divided by b if b is not 0, or a constant called DefaultValue otherwise. The first function does so using takeIf, let, and the "elvis" operator. The second function uses a simple if/else statement.

I love Kotlin but please don't abuse its features. I regularly see code like in the first function when you can instead write a simple if statement: it's shorter, easier to read, and doesn't allocate an object!

Thankfully both functions compile to the same assembly when R8 is turned on.

27.11.2024 18:19 โ€” ๐Ÿ‘ 144    ๐Ÿ” 33    ๐Ÿ’ฌ 11    ๐Ÿ“Œ 5
Preview
November 2024: the state of Kotlin scripting *.main.kts files can replace most of your shell scripts

I wrote about Kotlin scripting

21.11.2024 14:17 โ€” ๐Ÿ‘ 69    ๐Ÿ” 17    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 3

Let's look at Bluesky performance on Android!

I managed to build a release build of the app and ran some traces, let's see what we can find...

I have ~hour, will add to this thread as I investigate

19.11.2024 01:31 โ€” ๐Ÿ‘ 417    ๐Ÿ” 58    ๐Ÿ’ฌ 27    ๐Ÿ“Œ 16

I donโ€™t think so. Itโ€™s more likely a symptom of an overly complex view hierarchy

@romainguy.dev would know best

15.11.2024 00:41 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

๐Ÿ‘‹ I made a starter pack of past & present Android engs from Block (Square, CashApp..)

Ask us what we think about fragments ๐Ÿ˜œ

If you want to be in this lost, you know what to do ๐Ÿ˜˜ block.xyz/careers/jobs...

#AndroidDev

go.bsky.app/SLiJNP5

12.11.2024 23:26 โ€” ๐Ÿ‘ 52    ๐Ÿ” 21    ๐Ÿ’ฌ 9    ๐Ÿ“Œ 1

Could I get added too? ๐Ÿ™ @androidhamilton.bsky.social and @birthdaybuffalo.bsky.social are here too

12.11.2024 23:38 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Building a Kotlin Multiplatform starter pack. Still working through followers and finding other folks on the platform. Lots of people joined recently, so I'm definitely missing accounts. Ping me with suggestions! go.bsky.app/2oR84o6

03.11.2024 21:20 โ€” ๐Ÿ‘ 64    ๐Ÿ” 12    ๐Ÿ’ฌ 18    ๐Ÿ“Œ 1
Post image

Me checking status.maven.org after it throws an exception when trying to release.

07.11.2024 04:43 โ€” ๐Ÿ‘ 17    ๐Ÿ” 0    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 0
Mix Native iOS Views in Compose Multiplatform With Touchlab's New Library!
YouTube video by Touchlab Mix Native iOS Views in Compose Multiplatform With Touchlab's New Library!

Mix Native iOS Views in Compose Multiplatform With Touchlab's New Library! youtu.be/UukFp6TbcZ8?...

Compose Swift Bridge (touchlab.co/composeswift...) looks like very useful addition to Compose Multiplatform ecosystem!

06.11.2024 11:26 โ€” ๐Ÿ‘ 30    ๐Ÿ” 8    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Picasso has officially been deprecated: github.com/square/picas...

04.11.2024 23:13 โ€” ๐Ÿ‘ 24    ๐Ÿ” 5    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Super easy to set up! Iโ€™m @colinwhite.me now.

04.11.2024 23:41 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Extension functions and top level functions! They changed the way I design classes and expose APIs (for the better).

04.11.2024 22:35 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Coil 3.0: Image loading for Compose Multiplatform - Colin White's Blog

Coil 3.0 is out now! The main feature of this release is full Compose Multiplatform support, but there are tons of other smaller improvements. Check it out! colinwhite.me/post/coil_3_...

04.11.2024 22:15 โ€” ๐Ÿ‘ 69    ๐Ÿ” 27    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 4
Preview
Kotlin Multiplatform parameterized tests with Burst Today weโ€™re announcing Burst 2.0

I am proud of this
code.cash.app/burst

30.10.2024 22:02 โ€” ๐Ÿ‘ 41    ๐Ÿ” 13    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 1

@colinwhite.me is following 20 prominent accounts