Sign in

Rafael Tonholo

@rafael.tonholo.dev
940 followers 613 following 108 posts

Android Developer 💜 Kotlin lover 📱 Jetpack Compose addicted 💡 Always trying to learn new things 🇧🇷🇨🇦

PostsRepliesMedia
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 17/09/2026
We're reworking how settings are organized in Thunderbird Desktop and would love your thoughts. Take our short survey, 10-15 minutes tops. No trick questions, no wrong answers, and your feedback goes straight to the designers. Take the survey 👇 sohub.io/wm2k #opensource #thunderbird #ux
Blue abstract bird logo encircling a white envelope icon on a dark navy background.
3329
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 10/09/2026
If you've ever opened Thunderbird's settings and felt like you needed a computer science degree, you're not alone. We're rewriting 250+ settings in plain language, and the results from our user testing are in. Check out the full details on our blog: sohub.io/zxqf #opensource #thunderbird
blog.thunderbird.net
Desktop Settings: Removing technical jargon - The Thunderbird Blog
Our goal is to remove the technical jargon, use plain language, and make it effortless to make decisions about their Thunderbird settings.
0294
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 05/08/2026
Our July Mobile Progress Report is here! Check out our blog to see where we are with iOS development, as well as updates to the Android app. #android #ios #thunderbird #opensource blog.thunderbird.net/2026/07/mobil…
blog.thunderbird.net
Mobile Progress Report: July 2026 - The Thunderbird Blog
The Mobile Progress Report is back with roadmap and iOS updates, Thundermail integration, and notification improvement plans.
1152
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 13/08/2026
📅 Thunderbird's calendar is getting a redesign! Jesse from the design team walks through the journey so far, including modernizing the grid, navigation, and calendar sidebar. Read the full post: blog.thunderbird.net/2026/08/deskt… #thunderbird #calendar #design #opensource
2392
Reposted by Rafael Tonholo
Aurimas Liutikas @liutikas.net · 18/07/2026
I am very very excited that Gradle Isolated Projects feature is finally marked as incubating. It is time for folks to try it out and see what breaks :) docs.gradle.org/9.7.0-rc-1/r...
docs.gradle.org
Gradle 9.7.0-rc-1 Release Notes
We are excited to announce Gradle 9.7.0-rc-1.
1141
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 13/07/2026
In case you missed it: Thundermail, our new email service, has started sending invites to Early Birds on the waitlist. Early subscribers get a real say in where our #opensource #email service goes next, and we want you along for the ride! Join the waitlist here: www.tb.pro/waitlist
2324
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 08/07/2026
One of the things we love most about our community is its passion for every detail. One of our design team recently sat down with ten of our users to learn how they use Thunderbird, and what would make using it even better! 📣 #Thunderbird #OpenSource blog.thunderbird.net/2026/07/deskt…
blog.thunderbird.net
Desktop settings research: what we learned from your feedback - The Thunderbird Blog
Quick overview of the insights gathered from interviewing 10 users about how they manage preferences and configurations in Thunderbird desktop.
2202
Rafael Tonholo @rafael.tonholo.dev · 07/07/2026
So, with the new tiny Maven Central limits, what are the real options for community open source projects? JitPack? Self-hosted Maven repository? Any other options? #AndroidDev #KMP #Gradle #MavenCentral
030
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 25/06/2026
Our Thundermail Early Birds have spoken and we're listening: Webmail and two-factor authentication are on the way, as well as better support for custom domains and a smoother onboarding experience. Find out more and join the waitlist! blog.thunderbird.net/2026/06/thund…
blog.thunderbird.net
Thundermail June 2026 update: what we learned after the first few waves of invites - The Thunderbird Blog
Over the past several weeks, we have been welcoming early users from our waitlist into Thundermail, a few waves at a time. Many of you are now setting up your accounts, trying things out, and sharing your thoughts with us. Naming updates You may have noticed that we are now saying Thundermail more often, and […]
1257
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 16/06/2026
We're adjusting our roadmaps and making better Android notifications our next stop. iOS development is on track, and we're grateful for our community contributors (and want you to know how to get involved). blog.thunderbird.net/2026/06/mobil…
blog.thunderbird.net
Mobile Progress Report: June 2026 - The Thunderbird Blog
The Mobile Progress Report is back with roadmap and iOS updates, Thundermail integration, and notification improvement plans.
0231
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 22/05/2026
How-To Geek wrote a great article about swapping Gmail's app for Thunderbird on Android: "It's a free, open-source, privacy-focused app, and it makes email feel like it used to." www.howtogeek.com/i-ditched-gma… Check out Thunderbird for Android! sohub.io/npmm #thunderbird #opensource
howtogeek.com
I ditched Gmail for Thunderbird, and email feels perfectly boring again
I prefer to keep my email simple.
3308
Reposted by Rafael Tonholo
Kotlin by JetBrains @kotlinlang.org · 22/05/2026
🔐 Starting with Kotlin 2.4, the standard library includes an 18-month security support policy. Security fixes will be backported to all active release lines within the support window. 👉 For more keynote highlights: kotl.in/rm6hir
kotl.in
KotlinConf’26 Keynote Highlights: Advances in Language Design, Tooling, AI-Driven Workflows, and Multiplatform Development | The Kotlin Blog
At KotlinConf’26, the JetBrains team and industry partners shared how Kotlin continues to evolve for developers at every scale.
0121
Reposted by Rafael Tonholo
Zac Sweers @zacsweers.dev · 20/05/2026
I'll be giving a talk about Metro's internals tomorrow at @kotlinconf.com! This'll be an advanced talk that assumes familiarity with Metro, and is a sort of part 2 of my "Navigating Dependency Injection with Metro" talk last year. You can find it here: www.youtube.com/watch?v=jVfm...
The first slide from the talk - "Metro Under the Hood"
1272
Reposted by Rafael Tonholo
Jaewoong Eum (skydoves) @skydoves.bsky.social · 19/05/2026
Introducing Android Performance Analyzer : The Next Evolution in Profiling for Android android-developers.googleblog.com/2026/05/intr...
android-developers.googleblog.com
Introducing Android Performance Analyzer : The Next Evolution in Profiling for Android
News and insights on the Android platform, developer tools, and events.
051
Reposted by Rafael Tonholo
Márton Braun @zsmb.co · 18/05/2026
Last Friday, we announced a ✨ new default structure ✨ for Kotlin Multiplatform projects. (Nothing like a late Friday afternoon release!) In case you missed that, here’s a quick recap of what’s new! 🧵👇
1173
Reposted by Rafael Tonholo
Chris Banes @chrisbanes.me · 12/05/2026
🤖 I've just open-sourced a new set of skills, covering Kotlin, Compose and Android development. Very early days, but it covers a lot of things which crop up in code review regularly. github.com/chrisbanes/s...
github.com
GitHub - chrisbanes/skills: Skills for Kotlin, Jetpack Compose, and Android development
Skills for Kotlin, Jetpack Compose, and Android development - chrisbanes/skills
0453
Reposted by Rafael Tonholo
scrcpy @scrcpy.bsky.social · 13/05/2026
scrcpy 4.0 is out 🚀 Try the new flex display feature (and more): github.com/Genymobile/s...
17212
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 08/05/2026
Our new episode of Office Hours is out! We're chatting with Thunderbird contributor Bogomil about how he got involved with the project, mentorship in the open source community and more. Check out the link to watch to the full episode! youtu.be/xSXJsPIVV60?... #Thunderbird #OpenSource
082
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 24/04/2026
Our latest Mobile Progress Report is now live on the blog! Notifications on Android? Progress on iOS? 📱 Get the full scoop: blog.thunderbird.net/2026/04/mobil… #Thunderbird #Android #iOS #OpenSource
blog.thunderbird.net
Mobile Progress Report - April 2026 - The Thunderbird Blog
A roadmap focus on modernizing code, a commitment to improving notifications, and our continuing work on the iOS app in this month's report.
0287
Reposted by Rafael Tonholo
sinasamaki @sinasamaki.com · 17/04/2026
✨ New article! How to create Airbnb's beautiful month picker dial in Jetpack Compose www.sinasamaki.com/made-in-comp...
092
Reposted by Rafael Tonholo
Jaewoong Eum (skydoves) @skydoves.bsky.social · 11/04/2026
Compose Stability Analyzer 0.7.3 introduces the runtime Compoes state tracking. By adding the `TraceRecomposition` annotation to your composable function, you can trace all the parameters and in-body Compose states in the logcat. skydoves.github.io/compose-stab...
071
Rafael Tonholo @rafael.tonholo.dev · 05/04/2026
Someone just shared, out of the blue, my project on another social media! That is the first time it ever happened and I was so happy to see that! Sometimes I wonder if I should ever keep working on it, if ever people are using it or not. It felt heartwarming seeing that, tbh!
020
Rafael Tonholo @rafael.tonholo.dev · 05/04/2026
Metro is so good! If you haven't tried yet, I strongly suggest you to!! I wish IntelliJ allowed non-bundled K2 compiler plugins to contribute their FIR checkers to the IDE so we could see diagnostics in real-time. Perhaps a Metro IntelliJ plugin could bridge the gap until then
153
Rafael Tonholo @rafael.tonholo.dev · 26/03/2026
I've just released the website for CLI/Gradle Plugin code, built using KMP! It also features a playground editor where you can convert your SVGs without needing to download anything! And the best is that everything runs locally on your browser! svgtocompose.tonholo.dev #AndroidDev #KMP
svgtocompose.tonholo.dev
SVG to Compose - Convert SVG and AVD to Compose ImageVector
Convert SVG and Android Vector Drawables into Jetpack Compose ImageVector code. CLI tool and Gradle plugin for Kotlin Multiplatform.
1110
Reposted by Rafael Tonholo
Jaewoong Eum (skydoves) @skydoves.bsky.social · 20/03/2026
Why Compose HotSwan 🦢 It explains how Compose HotSwan brings true Hot Reload to Android, avoiding rebuilds and app restarts. It enables instant UI updates on a running app while preserving state, improving development speed. hotswan.dev/docs/how-it-...
hotswan.dev
Compose HotSwan - Android Hot Reload for Jetpack Compose
Hot reload your Jetpack Compose UI instantly without rebuilding. Compose HotSwan is a JetBrains IDE plugin for Android developers.
1114
Reposted by Rafael Tonholo
Jaewoong Eum (skydoves) @skydoves.bsky.social · 21/03/2026
Another tweak.
041
Reposted by Rafael Tonholo
Jaewoong Eum (skydoves) @skydoves.bsky.social · 21/03/2026
One of the biggest gems of Compose Hot Reload is the ability to simulate animation variations directly on real Android devices. hotswan.dev/docs/support...
142
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 20/03/2026
We have a shiny new roadmap site, and an equally shiny new blog post to tell our community all about it: #Thunderbird #OpenSource blog.thunderbird.net/2026/03/intro…
blog.thunderbird.net
Introducing our Public Roadmaps - The Thunderbird Blog
At Thunderbird, we firmly believe in the strength of listening to our community’s needs and wants, and balancing it with our resources and capabilities. While this has always been part of our ethos, we want to start 2026 by making our goals easier to read and comprehend at roadmaps.thunderbird.net, where you will find our roadmaps […]
2287
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 19/03/2026
Thundercast is back! Our hosts are steering us through the roadmaps for the desktop and mobile clients. Tune in for all the information on what's coming next, and minimal backseat driving. #Thunderbird #ThunderCast #OpenSource share.transistor.fm/s/4db3895e
share.transistor.fm
ThunderCast | ThunderCast - S3E1 - Roadmaps
ThunderCast, the official Thunderbird podcast is back for another season! Let's kick things off with some insights on our roadmaps and what's ahead for our desktop and email clients.User testing discussions: https://thunderbird.topicbox.com/Roadmaps: https://roadmaps.thunderbird.net/Developer...
184
Rafael Tonholo @rafael.tonholo.dev · 18/03/2026
I can't believe that I will attend KotlinConf this year 😱
080
Rafael Tonholo @rafael.tonholo.dev · 12/03/2026
I NEED THIS SO MUCH!
031
Reposted by Rafael Tonholo
Marcello Galhardo @marcellogalhardo.dev · 11/03/2026
Just published "Scoping ViewModels in Compose". marcellogalhardo.dev/posts/scopin... #AndroidDev #Kotlin #KMP #CMP
marcellogalhardo.dev
Scoping ViewModels in Compose
Lifecycle ViewModel 2.11.0-alpha02 introduces rememberViewModelStoreOwner, an API to scope ViewModelStore directly within the Compose hierarchy. Why It Matters Until now, ViewModelStore scoping was ti...
0245
Reposted by Rafael Tonholo
Matt McKenna @mmckenna.me · 09/03/2026
Today I’m open-sourcing Dejavu! Testing UI performance in Jetpack Compose is frustrating. We profile and watch tools, yet regressions still creep in. I built Dejavu to make recomposition behavior something you can actually test.
A screenshot of code that reads:

// Create a Recomposition Tracking Rule
@get:Rule
val composeTestRule = createRecompositionTrackingRule()

@Test
fun incrementCounter_onlyValueRecomposes() {
  // Perform an action
  composeTestRule.onNodeWithTag("inc_button")
    .performClick()

  // Assert that Composables change like you expect
  composeTestRule.onNodeWithTag("counter_value")
    .assertRecompositions(exactly = 1)

  // Or assert that they remain stable
  composeTestRule.onNodeWithTag("counter_title")
    .assertStable() // asserts recompositions = 0
}
74011
Reposted by Rafael Tonholo
Konstantin Klassen @konstantinklassen.bsky.social · 01/03/2026
🫨 Trying to build a library out of the snappy drag thing that I build for one of my apps. #JetpackCompose
1172
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 06/03/2026
Everything's coming up roses in Pasadena for @socallinuxexpo.bsky.social! Come visit us in the Expo Hall at booth 221 to chat with our team, learn what we're up to, and grab some stickers from: 14:00-18:00 Today 10:00-18:00 Saturday 10:00-14:00 Sunday #Thunderbird #SCaLE23x
1172
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 03/03/2026
We're excited to shine a light on Michaela Martin, the design artist behind our appeal illustrations. We chat about her background, her process, and how Roc and his world went from first sketches to final drafts. 🎨 #Thunderbird #Illustration blog.thunderbird.net/2026/03/desi...
blog.thunderbird.net
Illustrating Roc's World: A Spotlight on Michaela Martin - The Thunderbird Blog
Design artist Michaela Martin shows us how she expanded our mascot Roc's world and brought it to vivid, illustrated life.
091
Reposted by Rafael Tonholo
iury souza @iurysouza.dev · 17/02/2026
🎙️Check out the new @fragmentedpodcast.com episode on subagents! They can be a huge unlock once you understand how it all works and you can get real benefits without having to a swarm them. @kau.sh and I built an RTS mental model for how they work (yes, we did that). Check it out!
062
Reposted by Rafael Tonholo
Kaushik Gopal @kau.sh · 17/02/2026
new episode is out! spot the easter 🥚? recent models have shown massive improvement owing to clever use of "modes" and subagent dispatch. it really clicked for me after chatting with @iurysouza.dev listen to improve your fundamentals! (not just tactics).
092
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 13/02/2026
And our Mobile Progress Report provides an early look into how development on Android AND iOS (!) will take shape over the coming year. #Thunderbird #Android #iOS #OpenSource blog.thunderbird.net/2026/02/mobi...
blog.thunderbird.net
Mobile Progress Report: February 2026 - The Thunderbird Blog
In the first Mobile Progress Report of 2026, we're going over our plans and priorities for the Android and iOS Thunderbird apps.
0172
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 26/01/2026
Heading to CHAOSSCon at @fosdem.org? Be sure to check out @linuxflower.bsky.social and Wayne Mery's Lunch and Learn on Thursday Jan 29 at 13:00 on how we're using community metrics and how we can improve! #Thunderbird #OpenSource #Community chaoss.community/chaosscon-20...
chaoss.community
CHAOSSCon EU 2026 - Schedule and Speakers - CHAOSS
CHAOSScon Europe 2025, co-located with FOSDEM in Brussels, Belgium on Thursday, January 30, 2025.
182
Reposted by Rafael Tonholo
Martin Bonnin @mbonnin.net · 06/01/2026
Heads up it looks like Sonatype is starting to enforce stricter throttling on Maven Central. If you see 429/403 errors from your runneres, you're not alone. github.com/actions/runn... www.sonatype.com/blog/maven-c...
github.com
CI Runners Suddenly Failing with 403 Forbidden for Maven/Gradle Repositories (ubuntu-latest) · Issue #4180 · actions/runner
Since today, our CI pipelines running on ubuntu-latest and other hosted runners have started failing while downloading dependencies from Maven/Gradle repositories, returning HTTP 403 Forbidden erro...
162
Rafael Tonholo @rafael.tonholo.dev · 06/01/2026
As I need to support IntelliJ IDEA in a project I work on, I always try to find what is the latest AGP version compatible with IntelliJ IDEA, but it is very difficult to find information about it.
110
Reposted by Rafael Tonholo
Senhorita Belo dos Degenerados do site @rainha.bsky.social · 03/01/2026
incrível como vc pode olhar pra qualquer problema mundial e dizer a culpa é dos estados unidos
2477157
Reposted by Rafael Tonholo
Aurimas Liutikas @liutikas.net · 29/11/2025
In case you want to become a benevolent Gradle overlord, I've got you some tips Recording: youtu.be/o99f54pYGgc?... Slides: speakerdeck.com/aurimas/the-... #gradle
youtu.be
The Benevolent Gradle Overlord: Keeping Order - Aurimas Liutikas | droidcon London 2025
YouTube video by droidcon & fluttercon
12310
Reposted by Rafael Tonholo
Jaewoong Eum (skydoves) @skydoves.bsky.social · 29/11/2025
Published a new article, 'RemoteCompose: Another Paradigm for Server-Driven UI in Jetpack Compose'. You’ll explore RemoteCompose, understand its core architecture, and discover the benefits it brings to dynamic screen design with Jetpack Compose. skydoves.medium.com/remotecompos...
skydoves.medium.com
RemoteCompose: Another Paradigm for Server-Driven UI in Jetpack Compose
Building dynamic user interfaces has long been a fundamental challenge in Android development. The traditional approach requires…
5337
Reposted by Rafael Tonholo
sinasamaki @sinasamaki.com · 22/11/2025
Swipe to Dismiss from Material 3 compose lib is quite customizable 🤩 ✨ www.sinasamaki.com/glow-swipe-t...
0254
Reposted by Rafael Tonholo
Thunderbird @thunderbird.net · 14/11/2025
It seems like yesterday we released Thunderbird for Android. See how fast our first mobile app is growing up. #Thunderbird #OpenSource #Android blog.thunderbird.net/2025/11/video-…
0223
Reposted by Rafael Tonholo
Rodrigo Sicarelli @rsicarelli.bsky.social · 14/11/2025
Using the Default Hierarchy Template in KMP? You probably shouldn't 👀 It creates intermediate source sets you might not need — with real build cost. ⚠️ New article on the hidden costs and when to use a custom hierarchy instead 👇 dev.to/rsicarelli/t...
dev.to
The Hidden Cost of Default Hierarchy Template in Kotlin Multiplatform
Introduction The Default Hierarchy Template in KMP projects is a great way to reduce...
182
Reposted by Rafael Tonholo
Ryan Sipes @ryanleesipes.me · 12/11/2025
At Mozilla we make tech that puts people before profit. We make tech that is designed to help people live better lives. We make tech that is GOOD.
0134
Reposted by Rafael Tonholo
Martin Bonnin @mbonnin.net · 10/11/2025
Anyone wants to make a cool OSS contribution to the Kotlin ecosystem? Integrate the Amper dependency resolver in Kotlin scripts and solve KT-42775, make scripting easier for everyone and learn about Gradle metadata at the same time. youtrack.jetbrains.com/issue/KT-427...
youtrack.jetbrains.com
132