
Building Oren - where "I'll read someday." becomes "I finished it." · Co-founder @MetichaHQ
Get the App 👉
Joined September 2022
- Tweets2.2K
- Following380
- Followers920
- Likes4.4K
Cavin Macwan retweeted
One of the most useful components I've built isn't AI.
It's an image uploader.
I got tired of workflows like this:
Image URL → Download image → Open website → Upload image again 😩
So I built a component that accepts images in four different ways:
✅ Paste a direct image URL
✅ Paste a Base64 string
✅ Upload using the file picker
✅ Drag & drop an image
No unnecessary downloads.
No switching between tabs.
Everything goes through the same upload flow.
I originally built this for llmtool.dev last year, and it's been one of those small features that quietly makes the product feel much smoother.
Now I'm wondering...
Is this solving a real problem that you've run into, or am I overengineering a convenience feature?
I'd genuinely love your honest feedback. If you'd use something like this, let me know what else you'd add.
Cavin Macwan retweeted
📢 The androidx.compose.material.icons library is no longer recommended for displaying Material Icons in Compose. We have stopped publishing updates to this library & it has been removed from the latest Material 3 release, you can still manually reference it if you cant migrate.
Cavin Macwan retweeted
🏡 We just rebuilt our digital home.
Welcome to the new Meticha, tools that think ahead, docs that speak clearly, and a whole lotta builder energy.
🔗Explore new vibes: meticha.com/
Shoutout to @DarshitDudhaiya @milanpsurelia @cavin_1910 You all really went all in💜
Cavin Macwan retweeted
Great news for Indian 🇮🇳 Android developers!
The India paperback edition of Manifest Android Interview has been published. It's available in the Indian subcontinent only.
🔗: shroffpublishers.com/books/9…
Cavin Macwan retweeted
✨ New article showing how to create a #JetpackCompose modifier that wraps buttons with fancy ribbons.
This can be used to make that important action in your app feel much more special.
#AndroidDev
Cavin Macwan retweeted
Do you know how serialization libraries, like Gson or Jackson, work? They are both based on reflection, which is used to analyze classes. Let me show you. 👇🧵
Cavin Macwan retweeted
Prefer lambda modifiers for frequently changing state❗Why? Because this way we limit recomposition scope. If we read state when we build modifiers, this scope change triggers whole this composable recomposition, and requires building modifiers again. If we read state in a composable lambda, only this lambda will get recomposed with scope change 👌
Cavin Macwan retweeted
Psst... want the secret to building adaptive apps? 🤫 We shared the answer during #GoogleIO!
From phones to the metaverse, discover how to create adaptive experiences that WOW users. Don't miss it → goo.gle/4duXr3n
Cavin Macwan retweeted
Everything about Google I/O 2025 Android Highlights: Jetpack Navigation 3, Compose upgrades, KMP momentum & new open-source projects.
📚 Google I/O 2025 Announced Articles
1. Announcing Jetpack Navigation 3: android-developers.googleblo…
2. What's New in Jetpack Compose: android-developers.googleblo…
3. Androidify: Building delightful UIs with Compose: android-developers.googleblo…
4. 16 things to know for Android developers at Google I/O 2025: android-developers.googleblo…
5. Journeys for Android Studio: developer.android.com/studio…
6. Android’s Kotlin Multiplatform announcements at Google I/O and KotlinConf 25: android-developers.googleblo…
🛠️ Google I/O 2025 Announced Open-Source Projects
1. androidify: github.com/android/androidif…
2. Navigation 3 - Code recipes: github.com/android/nav3-reci…
Cavin Macwan retweeted
Vibe designing tool by Google.
stitch.withgoogle.com/
Cavin Macwan retweeted
#GoogleIO starts tomorrow. 👀
Are you ready? 🎪 → goo.gle/IO25_DevKeynote
Tune in for the keynotes followed by livestreamed sessions, where product teams are ready to chat about AI, Android, web, and cloud.
Cavin Macwan retweeted
To enhance your developer experience, @Gradle, @Google, and @JetBrains have joined forces to define Gradle best practices – helping you build confidently, avoid pitfalls, and future-proof your projects.
This is just the beginning – stay tuned!
Learn more 👇
blog.gradle.org/gradle-best-…
Cavin Macwan retweeted
💠 Haze 1.6.0 has been released!
This is a big release:
🤖 Blurring for all versions of Android
🎨 Foreground (content) blurring
📐 Blurred edge treatment
🔗: github.com/chrisbanes/haze/r…
Cavin Macwan retweeted
We’ve been hearing great feedback on Gemini Live with camera and screen share, so we decided to bring it to more people ✨
Starting today and over the coming weeks, we're rolling it out to *all* @Android users with the Gemini app. Enjoy!
PS If you don’t have the app yet, download it here: goo.gle/4imLD45
📣 It’s here: ask Gemini about anything you see. Share your screen or camera in Gemini Live to brainstorm, troubleshoot, and more.
Rolling out to Pixel 9 and Samsung Galaxy S25 devices today and available for all Advanced users on @Android in the Gemini app: goo.gle/4iR4LrU
See how the team has been using it:
Cavin Macwan retweeted
Heron client for the 🦋 app by @Tunji_D is a great example of advanced Compose UI work. One of those projects to bookmark and use as reference.
github.com/tunjid/heron
Cavin Macwan retweeted
🎉 🎇 First 'alpha01' artifacts for Compose Hot Reload are available on Maven Central!
Enjoy! 🥳
github.com/JetBrains/compose…
Cavin Macwan retweeted
Android build structure
developer.android.com/build/…

























