ylliX - Online Advertising Network

Graduating from View IDs

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 […]

iMessage reactions now appear as emoji on Android

iMessage reactions now appear as emoji inside the latest version of the Google Messages app on Android. Prior to this release, Android users saw somewhat lengthy template messages when they received an iMessage reaction from a contact using an iPhone. This change offers a cleaner, much more streamlined experience. Google Messages adds iMessage reactions If […]

All About Opt-In Annotations

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 […]

A Bit of Gradle Housekeeping

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 […]

Announcing requireKTX

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 […]