2021-06-17 • Márton Braun So, I got tired of writing code like this. requireArguments().getString(“user_id”)!! And seeing others have to write code like this: val channelType: String = inputData.getString(DATA_CHANNEL_TYPE)!! val channelId: String = inputData.getString(DATA_CHANNEL_ID)!! val messageId: String = inputData.getString(DATA_MESSAGE_ID)!! So I created requireKTX. What does it do? It adds extensions so that the code above becomes […]
14 Jun 2021 • 6 min read A high level overview of my work style and how it helps improve my productivity. Recently, I received this nice reply on Twitter: Seriously, how do you find the time to build so many things?? — Gil Goldzweig Goldbaum (@GilLongName) April 13, 2021 There’s some technique to […]
Stream now provides a Jetpack Compose Chat SDK. Check out the Compose Chat Messaging Tutorial and give it a try today! We’ve recently published a Jetpack Compose design sample on Twitter, recreating the Contacts & Messages design by Mickael Guillaume on Dribbble. The source code for this sample is available on GitHub. In this article, […]
Posted by Jake Wharton on June 8, 2021 Six years ago we added a screen to the Android Cash App to display the open source libraries we use and their licenses. This screen had to be updated manually, which meant it occasionally was missing a library or displayed one no longer in use. There are existing […]
Case-insensitive filesystems considered harmful (to me) 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 case-insensitive Mac. Unfortunately this can actually work against me as I interact with the computers of coworkers and service providers […]
Cross-compiling static Rust binaries in Docker for Raspberry Pi 27 May 2021 Earlier this year I built a web-based garage door controller using Rust for the Raspberry Pi called Normally Closed. My deployment includes a Pi 3b and a Pi Zero which are ARMv7 and ARMv6 devices, respectively. I deploy services with Docker and wanted […]
This article was originally planned for 🥧 Pi Day, and it clearly ran more than a month late. However, it’s finally complete! Concept This project is once again one of my older projects revived with Jetpack Compose. A couple years ago, I wrote an app that lets you practice and learn the digits of pi […]
Posted by Jake Wharton on April 15, 2021 Square’s Burst library burst onto the scene in 2014 stemming from general dissatisfaction with JUnit 4’s built-in parameterized runner. It enabled the use of enums to vary input to your test class, test methods, or some combination of both. enum class Soda { PEPSI, COKE } @RunWith(BurstJUnit4::class) class […]
Integration verbosity and good layering 07 April 2021 One of my favorite non-features from building view binding is that it lacks integration with activities or fragments. If you use view binding with activities or fragments, however, this fact might be to your disdain. Every activity using view binding is forced to do something along the […]
As part of the TechEd team, our team’s goal is to enable our technical talent through continuous learning programs. One of the most common programs we work on is new employee onboarding for Engineering and Data Science teams. However, we also constantly think about the broader needs of the engineering organization and, at times, create […]