Dealing with timezone data in a desugaring world.
My team recently cleaned up an API in an internal storage library. While it’s a simple case, it covers a couple interesting language tools and tradeoffs. Let’s dig
About three years ago, I worked on a project at Uber to try to detect when photos taken client-side were blurry. The goal was to be able to fail fast, ask the user to retake them if necessary, and save the cycle of waiting
About two years ago, just after migrating my CatchUp side project to RxJava 2, I started a branch called “boundObservers” to try out an idea I had for RxLifecycle-style automatic
“RxAndroid meets VSYNC rubber” — Icon used with permission from Ray WenderlichRxAndroid 2.1.0 has a new APIAndroidSchedulers#from(Looper looper, boolean async) This new async parameter affects Android APIs 16 and newer, and can significantly improve UI performance when set to true if
I also wanted to do some practice with using different APIs. This blog is an account of how each one’s special in its own way. There’s no real overarching technical takeaway here other than some neat clever solutions along the way.
For context — see the introduction post. This is part of a series of technical deep dives into different things I’ve learned along the way. This post assumes some prior knowledge of Dagger. In CatchUp, the principle architecture is that you have a set