I found an old screen in Cash App today that wasnโt retaining its scroll position across configuration changes. A peek into git history revealed that the author forgot to assign an ID to its scrollable layout for enabling state restoration. And would you even blame them? Sure, View IDs are necessary, but maintaining them manually […]
Trello Android recently converted from using Gson to Moshi for handling JSON. It was a bit tricky so I wanted to document the process. (For context, Trello Android primarily parses JSON. We rarely serialize JSON, and thus most of the focus here is on deserializing.) There were three main reasons for the switch from Gson […]
The opt-in mechanism in Kotlin allows you to mark APIs that should be used carefully โ or perhaps not at all. If you mark a declaration (a class, a function, a property, anything really) as opt-in required, using it will produce a warning or error in the code, prompting the user to explicitly opt in […]
Switching from Android to iPhone could soon be a little bit easier. WhatsApp is working on a new tool that will allow users to transfer all their chat data from Googleโs platform to iOS, according to a new beta version of the app. WhatsApp already gives users the ability to backup their conversations so they […]
While cleaning is traditionally a spring activity, let me invite you to do it at the end of summer this time around. Note: Yes, Iโm still using Groovy because I never found a compelling reason to upgrade to Kotlin DSL ๐คทโ Something Iโm quite enthusiastic about is having the simplest and most default Gradle configuration […]
Within the Stream Chat Android SDK project, we use the Kotlin binary compatibility validator plugin to keep track of all the changes we make to our public API. This is a first-party plugin by JetBrains, though it’s still experimental (it’s an incubator project by JetBrains on GitHub). In this article, you’ll learn what the plugin […]
Thereโs no reason to miss out on the growing number of MagSafe accessories just because you donโt have an iPhone 12. Place the inexpensive Elago MagSafe Guide Sticker on the back of your handset and magnetic chargers will cling to the device. Elago can retrofit MagSafe onto your iPhone or Android MagSafe is an improved […]
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 […]
Apple moved to address many of the privacy concerns raised after the release of AirTags. The item trackers launched with anti-stalking features, but a new firmware update is tightening them up further. AirTags will start more quickly warning people if theyโre being used to follow someone. And an Android app that can detect these trackers […]