Sign in

Rodrigo Sicarelli

@rsicarelli.bsky.social
190 followers 76 following 156 posts

São Paulo

PostsRepliesMedia
Rodrigo Sicarelli @rsicarelli.bsky.social · 25/02/2026
🚀 Happy to announce Fakt Fakt is a Kotlin compiler plugin that uses FIR/IR phases to generate type-safe fakes at compile time ✨ Give it a try → github.com/rsicarelli/f...
010
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 Rodrigo Sicarelli
Kotlin by JetBrains @kotlinlang.org · 27/09/2025
📱 Two Years with Kotlin Multiplatform: From Zero to 55% Shared Code At KotlinConf’25, @rsicarelli.bsky.social shared how StoneCo – serving 4M+ users – scaled KMP adoption, trained 130 engineers, and achieved 55% code sharing across two large-scale mobile apps. 📺 kotl.in/u5aa8v
0192
Rodrigo Sicarelli @rsicarelli.bsky.social · 21/05/2025
We're mentioned in the Large Scale KMP adoptions 🥹🥹 android-developers.googleblog.com/2025/05/kotl...
030
Rodrigo Sicarelli @rsicarelli.bsky.social · 09/05/2025
Only one or the other. If the type is internal, there is no need for the annotation! We ended up building a Gradle Plugin called KMP Lint to help us on this journey (the only scalable way in our case). We plan to open source it soon 🤞
010
Rodrigo Sicarelli @rsicarelli.bsky.social · 09/05/2025
There is a doc in the Kotlin repo on this topic: github.com/JetBrains/ko... Yes, hacking.md 🤣. Lots of outdated stuff, but an interesting read!
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 08/05/2025
Also use internal and @/HiddenFromObjC annotations properly. Over-exposing Kotlin code to objc headers increases the link time, and also the .framework size!
130
Rodrigo Sicarelli @rsicarelli.bsky.social · 08/05/2025
Kotlin 2.1 has a new linker, plus an upgrade from LLVM 11 to 16. There is also a compiler flag to disable some optimisations, the `-Xdisable-phases', which we can use to disable the LTO optimisation. There is a flag to profile the compiler phases (works on 2.0 too), the `-Xprofile-phases`
120
Rodrigo Sicarelli @rsicarelli.bsky.social · 08/05/2025
We ended up creating some scripts on iOS setup that selects the targets and built type for the .framework. Pretty much, local and CI (tests) we do iosSimulatorArm64 + debug. For internal test flight builds, we do iosArm64 + debug. For prod, iosArm64 + release. We avoid release at all costs 👀
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 07/04/2025
I'm more than excited to share our KMP journey at KotlinConf'25 🎉 Whether you're considering KMP or scaling it in your organization, join me to hear about some of our results and future plans! See you in Copenhagen ✌️
0133
Rodrigo Sicarelli @rsicarelli.bsky.social · 21/03/2025
Special thanks to @kaeawc.bsky.social for pointing me in the direction of using VisualVM, which has now become my best friend 😂
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 21/03/2025
FINALLY managed to understand JVM settings and how to tweak them. Before: ~17gb allocated (Gradle + Kotlin daemons) After: ~8gb allocated (with some extra heap for buffer) Same build time 🎉🚀
130
Rodrigo Sicarelli @rsicarelli.bsky.social · 13/03/2025
Chegou a ver se essas libs fazem algum import específico do iOS? As vezes, só organização de source set já suportaria rs
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 07/03/2025
Quase finalizando o KMP-102, nem acredito 😭
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 07/03/2025
📢 Novo artigo da série KMP-102 Dessa vez explorei estratégias de modularização em projetos KMP Coraçãozinho pra dar uma força 🙏 Boa leitura ✌️ dev.to/rsicarelli/k...
dev.to
KMP-102 - Modularização no KMP
No último artigo, entramos em detalhes e aprendemos sobre as peculiaridades do código exportado nos...
152
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/02/2025
iOS reviews ✨
010
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/02/2025
does KMP scale? I think it does 👀
240
Rodrigo Sicarelli @rsicarelli.bsky.social · 11/02/2025
It's happening!!! 🤩💜 #KotlinConf25
440
Rodrigo Sicarelli @rsicarelli.bsky.social · 11/02/2025
a beleza do conhecimento livre ✨ print aleatório que me mandaram
020
Rodrigo Sicarelli @rsicarelli.bsky.social · 29/01/2025
1 month of selective CI on a large Android repo saved almost 2k dollars monthly. Feels good ✌️
020
Rodrigo Sicarelli @rsicarelli.bsky.social · 28/01/2025
I am just looking for a reason to buy an m4 mini 🥹 they are so portable 🤏
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 28/01/2025
I need a m4 mini at home for this ASAP
110
Rodrigo Sicarelli @rsicarelli.bsky.social · 26/01/2025
O r1 se compara com o GPT o1 que custa 200 doletas mês, só que de graça e realmente melhor Usa um rolê de deep think, é como se a AI conversasse com ela mesmo antes de te responder, poderoso d+ Só tem que ativar no chat
170
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/01/2025
100% apoiado hahahahaha Imagino que deve engajar pra galera clicar, mas comigo não funciona rs
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/01/2025
O vídeo preview vc diz reproduzir automaticamente na lista de vídeos?
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 18/01/2025
Uma das vantagens de estar só no bsky essa época do ano é o filtro de conteúdo daquele reality show 25 Não que eu não tô assistindo (pois é) mas consumir isso o tempo todo? N obg ✋
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 18/01/2025
Descobri que o problema tá totalmente relacionado a construção dos Headers do Obj-C 🎯. Comecei a escrever sobre o tema na série KMP-102, mais artigos irão vir 🏃 dev.to/rsicarelli/k...
dev.to
KMP-102 - Otimizando a Exportação do Kotlin para o Obj-c/Swift
No último post, aprendemos como utilizar código Kotlin no Swift. Aprendemos sobre algumas técnicas...
020
Rodrigo Sicarelli @rsicarelli.bsky.social · 10/01/2025
Heh, new insights. It turns out that we are exporting too many dependencies to XCFramework. There is no need to export everything: only what you need to consume on the Swift code. Just applied the api/impl modularisation strategy to XCFramework and it works 👀 will collect build time results soon
030
Rodrigo Sicarelli @rsicarelli.bsky.social · 07/01/2025
The only hope so far is Kotlin 2.1, which updates LLVM from 11.1.0 (Feb 2021) to 16.0.0 (Mar 2023). Reading the release notes, there seems to have been serious work on linking performance 🤞
120
Rodrigo Sicarelli @rsicarelli.bsky.social · 07/01/2025
Had some new findings on this: - Increasing JVM settings has no effect on build time - The "link" task on KGP is the main issue. This task delegates the linking process to LLVM. - xcodebuild -create-xcframework seems to have a virtual impact. - Could not find any LLVM hack to boost CPU usage
151
Rodrigo Sicarelli @rsicarelli.bsky.social · 28/12/2024
Bahia ✌️
040
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/12/2024
Wake me up when the páscoa ends
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/12/2024
Looks like a 2025 problem 🤙💨
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 24/12/2024
Found something interesting 🔎 XCFramework assembly on KMP uses ~9% of my CPU 👀 maybe that's why it takes so long to finish (40 minutes on my M3 pro) Does anyone know how to speed up this execution? Maybe a hidden flag? 🤔
030
Rodrigo Sicarelli @rsicarelli.bsky.social · 23/12/2024
Our first feature using CMP on iOS is live to 1% of our user base 🥳🥳🥳
030
Rodrigo Sicarelli @rsicarelli.bsky.social · 20/12/2024
🤙🤙
120
Rodrigo Sicarelli @rsicarelli.bsky.social · 02/12/2024
só consegui pensar em panetone
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 02/12/2024
Já é dezembro!!! 🆘
110
Rodrigo Sicarelli @rsicarelli.bsky.social · 01/12/2024
"A delightful mix of dev wizardry and casual humor, with a sprinkle of existential dread" hell yeah 🌚
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 28/11/2024
Navigating through Gradle logs just ✨ sucks ✨, especially for large builds. The wrapper delegates the commands (with options) to ./gradlew, but captures the error output and runs a Gradle log analyzer that digests and spotlights all the issues 🦣 using kotlin scripts 💨
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 28/11/2024
2024 and here I am, creating a wrapper for gradlew (wrapper)
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 28/11/2024
Terminei a primeira temporada de Silo ontem e: pqp
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 22/11/2024
media.tenor.com
a man with long hair and a beard is standing in front of a door that says sky one on it
ALT: a man with long hair and a beard is standing in front of a door that says sky one on it
010
Rodrigo Sicarelli @rsicarelli.bsky.social · 22/11/2024
fortemente
000
Rodrigo Sicarelli @rsicarelli.bsky.social · 22/11/2024
Genuinamente feliz que hoje é sexta ✨
220
Rodrigo Sicarelli @rsicarelli.bsky.social · 21/11/2024
It turns out that Kotlin scripts are much better at processing files than regular shell scripts. Processing a file with ~4k lines took about 1 minute using a shell script. Using Kotlin scripts + coroutines it went down to 2-3 seconds 👀
010
Rodrigo Sicarelli @rsicarelli.bsky.social · 21/11/2024
The difference between release and debug builds is huge. I wonder how much optimization is going on here 👀
010
Rodrigo Sicarelli @rsicarelli.bsky.social · 21/11/2024
We reduced CI time by 22% (from 50.63 to 39.38) on a large iOS repo ❤️. The amount of learning we've gotten from optimizing builds on iOS feels good. However, our CD still takes 50 minutes to build the KMP XCFramework in release mode 🫠. Hopefully K2 will help us out here 🤞
141
Rodrigo Sicarelli @rsicarelli.bsky.social · 20/11/2024
Foi o show que o Nick Valensi tava com a perna engessada?
100
Rodrigo Sicarelli @rsicarelli.bsky.social · 17/11/2024
Talk submitted 🫡🤞
120