Profile avatar
afzal.me
Android Developer @ Doist (Todoist and Twist) 🇨🇦. Words are my own. I write on https://afzal.me and https://doist.dev #Android #JetpackCompose #Kotlin
28 posts 233 followers 99 following
Prolific Poster
Conversation Starter

I was barely online during KotlinConf 2025, so here's my follow-up now. Thank you so much everyone who joined us, in person or online. It was an incredible experience connecting with the community! ❤️ Here are some highlights of news below, as you've probably missed some! 🧵

Union types + Rich Errors Still not clear to me how union types will work (typescript PSTD), but Im all in for rich errors

I wouldn't mind a future where I controlled my computer over voice to tell some LLM to code different things, wearing AR glasses to glance at what it was doing when needed, while walking in a park during the work day. The pieces are kinda all there, except maybe the AR glasses to peek at the screen.

Anybody tried out @getpieces.bsky.social ? I just tried it and while it's super cool. It gave me "keylogger with an AI" vibes just because it's always screen recording and has all the accessibility permissions. Plus, it didn't help that Local mode didn't do anything on my M1 Mac.

Don't use Gson on Android. Use Kotlin Serialization instead. It relies on code generation instead of reflection. This helps avoid optimization related crashes and faster app performance. github.com/google/gson?... github.com/Kotlin/kotli...

Wait, you *still* haven't listened to the Androids book? What are you waiting for? A sale? Good call: my publisher is selling the audiobook for 50% off until May 11 here: www.audiobooks.com/promotions/p...

🔥 Compose Multiplatform for iOS is Stable and Production-Ready! 🔥 Build mobile apps faster with shared UI code, full control over native experiences, and the confidence to ship at scale. Explore all the updates in Compose Multiplatform 1.8.0: 👇 blog.jetbrains.com/kotlin/2025/...

I'm currently looking for a new fully remote, contract role. I have 15 years of Android experience, and plenty more Kotlin, Java , C / C++, and even more obscure stuff

Google and new Google assistant APIs. Every couple of Android versions, there's some new way.

Using a todo app is good. I chuck tasks into the thing and trust I won’t drop ’em. Todoist is an excellent todo app. It’s easy to get started and has scaled really well for me.

Compose 1.8.0 dropped yesterday #AndroidDev - Finally auto-fill in Compose + autofill commit will be called automatically (we’ll see if that works for us though) - Text auto-size - `Modifier.onLayoutRectChanged`. Less overhead than `onGloballyPositioned` 🧵 1/2

🪿 It’s really Goose vs. Goose! 🪿 Matt and Joe go head-to-head in The Great Goose-Off! 🥊 They’ll have the same task, the same time limit, but different prompts, different MCP servers, and different strategies. 📆 April 8, 2025 at 10 am PT/ 1pm ET 📺 linktr.ee/blockopensou... Join us for episode 2!

🪿 Which LLMs pass the vibe check? We evaluated Goose's performance with popular closed and open source models — from coding Flappy Bird to creating wiki pages. Here's what we found → block.github.io/goose/blog/2...

Let's build an Electon video conferencing app (Around.co alternative maybe?) with Gemini! #vibecoding www.twitch.tv/afzal____

So those Octopus tablets in the back of Ubers are sneakily taking pics of you to see if you’re watching the ads.

People literally paid with their data here 🙈 www.wired.com/story/how-to...

Been trying to find an alternative to around.co now that it's shutting down and it's insane how many alternatives that were launched within the last 5 years have shut down or been acquired!

🚀 Should you use Kotlin Sequences for Performance? I have always thought that using asSequence() was the way to optimize chained operations in Kotlin. But after benchmarking, the results shocked me: Sequences are often slower! 😱 #Kotlin #AndroidDev chrisbanes.me/posts/use-se...

Bug fixes and beta releases headline today's #JetpackReleaseNotes with releases of Compose 1.7.8, Fragment 1.8.6, Navigation 2.8.7, Paging 3.3.6, and Wear Compose 1.4.1 plus Room KMP's first beta release! developer.android.com/jetpack/andr...

TIL that Dynamic colors for home screen widgets on #Android change not only based on what the wallpaper is but also where the widget is placed? #AndroidDev

Folks, I see a lot of you recently feeling free to use some variation of the "R" word for mentally disabled, including appending the last four letters as suffix to describe people you don't like. I'm not down with that, so if you do it in my comments, I'm gonna hide that shit at least. Be better.

Cool, then it's not just me holding it wrong. Large context models, like Google's Gemini with a supposed 1-2M context window, are a non-functioning party trick. Aider guy knows what he's doing. In my own work, i found the limit to be 32k tokens, before shit falls apart.

I'm currently looking for a new fit remote, Android development contract role. I have over 15 years of Android development experience, and bring lots of positive energy to the team. Although I'm based in the UK, I'm set up to work for companies based anywhere. I have immediate availability.

New blog post! If you are a Kotlin or Java Android developer, this one should make you go 🤯. www.romainguy.dev/posts/2024/n... I'm not even sorry.

Wait, what? I was hoping they were adding at least a replaceWith instruction, but it looks like it is only getting deprecated. It would be nice to hear why this is getting deprecated and if it will be replaced with another API. FlexLayouts play a key role in Adaptive layouts!

Ever wanted to make a stacked list of avatars or a fading edge effect in #JetpackCompose? 🤔 Check out the latest #ComposeTips to learn all about how a few tricks with BlendModes can help you get the UI you are looking for 👀 youtu.be/rdS4A2YFBHA?...

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

Hey #AndroidDev 👋, check the new #ComposeTips video 👇 #JetpackCompose #Android youtu.be/rdS4A2YFBHA?...

You can find the #AndroidDev team on 🦋 in this list.

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.

Optimizing blur hash, step by step: www.romainguy.dev/posts/2024/o...

Worked on this shared element transition in Compose this weekend for a not-yet open-source workout app. Pretty glad with how it turned out. It was quite easy, as long as you don't forget to use the targetState within the AnimatedContent's content 😅 #Compose #Kotlin #Multiplatform #AndroidDev

#AndroidDev, @androidfaithful.com at @droidcon.bsky.social NYC interview with @swank.ca is up! Hopefully not too much fan girling, but Jesse has been one of my Android heroes forever, & he has a lot to say about what I think is the spirit of the Android dev fam. 🫶 youtu.be/_6YKyjKfWh0