Still feels a bit unreal holding it in my hand. The book we’ve been writing on for a long time, Kotlin in Action 2e, is finally in print. 😌 It’s been quite the journey to get to this stage, especially the all-new coroutines part.
But oh man, does it feel good.
Compose is coming to iOS — Alpha announced today. A HUGE milestone for making shared mobile UIs a reality in the Kotlin ecosystem. Using the APIs you already know from Jetpack Compose!
Big news! Together with my amazing colleagues on the Kotlin team, I am writing a book! 📖
“Kotlin in Action, 2nd Edition” just entered Early Access! So excited! 🔥🕺🏻
Want to get the book as an early adopter? Code “mlisakova” gets you 50% off right now!
My first contribution to the
@Kotlin
IntelliJ IDEA plugin just got merged! 🥳
Until now, you couldn't see inlay hints for lambdas w/ receivers *and* parameters. Once my fix ships, you can see them both. A small thing, but I wanted it for a long time! 🔍
One thing
@JakeWharton
and
@saketme
managed to convince me in our conversation is that Compose is bigger than just UI. 👀
Tune in and listen to anecdotes about CashApp, Compose, Mosaic, and why XML on Android maybe deserves to die? 🤔
“No more boilerplate” — Explicit fields makes proper work with mutable structures and exposing read-only views a breeze. Loving this already — Hot Flows will be much smoother with this.
Context receivers are a huge game changer in Kotlin — some final polishing, but they’re coming in 2.x. It’s a super powerful language feature, and it’ll make Kotlin code super clean!
#kotlinconf
📖 My weekend reading – “Kotlin Design Patterns and Best Practices” by
@alexey_soshin
!
It covers a ton of the classics, but I’m exceptionally looking forward to the part about concurrency.
Gonna step up my Kotlin design game! 🏗👷🏻♂️
Kotlin DSL for Gradle is now the default for new projects. Made possible with awesome cooperation with Gradle. Excellent editor experience with inlay hints, navigation, code completion and semantic highlighting. I already love this!
☄️ I built Asteroids using
#JetpackCompose
for Desktop!
With mouse controls, inertia based flying, and asteroids breaking apart in the depth of space – on top of CFD!
Find the game source on GitHub:
Lots of fun & learning. Need to do a blog on it! 😄
GitHub Copilot has landed in
@intellijidea
– and it speaks
@kotlin
! Let's look at some examples! Hey, look, it can recite an interpreter for everyone's favorite esoteric programming language from memory! But there's more. Oh there's so much more. I decided to have some fun. 🧵
It's really cool to see how
@Kotlin
has gained popularity in recent years (here measured in GitHub stars)! 📈🤩
Google I/O in 2017 really kicked our whole journey into high gear, and we've come so far since then. Thanks to everyone who's a part of our wonderful community ❤️
Amazed to learn that GeoTracker is written in Kotlin/Native.
I've talked to Roman about it before and was stunned by the things this After Effects plugin can do, but actually didn't know it was done in Kotlin – What an awesome showcase of my favorite language being everywhere! 🤯
Invented postfix function-call syntax with compiler-enforced politeness in Kotlin. Expecting this pattern to be mass-adopted any day now – gotta make sure we're kind to our machines! 🤖👀
🥳 I made a contribution to the
@kotlin
IntelliJ plugin!
When you use the `in` and `!in` infix operators with a nullable right-side operand, you can now quick-fix the correct nullable variation with just a single click!
Coming soon to an IDE near you! ✨
Working on my book, creating tables about everyone's favorite Kotlin topic: Scope functions (let, also, apply, run, with) and when to use them. 🎯
Hopefully, it'll prove useful and alleviate some of the confusion people feel around the topic! ()
Ktor 2.0 just dropped – this is huge! 🥳
🧩 Cleaner & easier extensibility
⚙️ Kotlin/Native support (🚀)
📥 Smoother client APIs
🔁 Built-in request retries
🤝 Content Negotiation on the client
...and so much more! Fantastic to see the framework continue to evolve.
🛠 Kotlin Collections are powerful, versatile, and most importantly fun to work with!
📚 Check out the blog post for my latest episode of Standard Library Safari, and discover some useful advanced collection functionality to use in your Kotlin code!
Just finished recording an amazing episode of
@talkingkotlin
with
@JakeWharton
and
@saketme
🤩
We're talking about Compose – and how their use of the library goes *beyond* just user interfaces.
@CashApp
's Android story is inspiring. Can't wait for you to listen when it's ready.
🚀 Just published a tutorial on how to host your Kotlin/JS applications on GitHub
Pages, automated via GitHub Actions!
If you’re looking for a simple way to do Continuous Integration and Continuous Delivery for K/JS apps (for free!), look no further! 🤩
PSA for Compose Multiplatform early adopters: To get your app running buttery smooth (120fps), make sure you have this key set in your `Info.plist` – otherwise, your app is locked to 60 Hz. It's in the template, but if you started early, you might not have it!
Jetpack Compose is fun on Android and Desktop – and now you can also use it to build declarative web user interfaces! Check out this first technology preview, and compose some web UIs!
Can't wait to see what all of you will do with it! 🤩
🌐 Jetpack Compose advances to the browser! Our newest technology preview brings Google’s toolkit for building reactive user interfaces with Kotlin to the web.
Take a look, and learn all about the first preview version of Jetpack Compose for Web!
This is the “One More Thing” part of this keynote 🤯 Compose apps running in the browser on top of Kotlin/Wasm. Truly stunning chapter in the story of UI development for Multiplatform apps.
🛠️📷 My new video just got published 😍 – It's a hands-on walkthrough of building a small mobile app in 100% Kotlin – including shared UI using Compose Multiplatform. Take a look 👀
🚂 Kotlin/JS with IR compiles faster and is smaller, but: It also requires you to be more precise for interop!
Learn about how I stopped our demo app from relying on internal compiler behavior, and what changes we had to make to unlock IR goodness! ⚙️
The best part of making videos? Making a thumbnail. Doesn't matter if it means:
🍽 grabbing dishes from the cupboard,
🕺🏻 pretending to be Elvis,
⏰ taking the clock off my wall,
⭕️ or holding nothing.
It's just so fun giving our videos () personality! 😁
🔥 Reason No. 985 of why working at
@jetbrains
is awesome: One of us asks for inspiration. Everyone pitches in. This is what it means to be a team! 🙌🏼💪🏼
The Kotlin YouTube channel () grew from 0 to 40K subs. Unfathomable.
I learned so much about Kotlin and producing videos during this time, I am nothing short of delighted.
Thanks to all who watch and subscribe. We couldn't do it without you! ❤️ Onwards!
Had a total blast trying out the new Kotlin Multiplatform Tooling in Fleet on stream with
@zsmb13
today! 🛠️ The VOD is now available. We built the core of a proper iOS, Android + Desktop app in like 2.5 hours total – delightful 🔥
🎉 Compose Multiplatform 1.5.10 has been released! The new version brings support for Kotlin 1.9.20 and is packed with many other features, including:
🚢 Easier to get started
⚒️ New Material 3 components in common code
🍏 Enhanced TextFields on iOS
🎨 Crossfade animation for
✅ If you're a
#Kotlin
developer, you need to be familiar with its most popular collection type – lists!
Strengthen your understanding of the List<T> and MutableList<T> APIs, and learn about useful functionality in my post and video on the subject! 📝
Kotlin Multiplatform is doing awesome numbers according to our survey from late 2021 – and that includes things like Compose for Web, as well! 🤩
I'm highlighting my favorite few here, but you can find them all on the blog:
Chapter 3 of our book "Kotlin in Action 2e" () is now available for Early Access readers! 😊
It's all about functions: from the basics to extension, vararg, infix, local & more! ⚙️
Phew, that was a bunch of work! Already knee-deep in the next chapters 😅
✏️📖 I just published the companion blog post for the 1st episode of "Kotlin Standard Library Safari" – about strings!
Whether you like reading
@kotlin
content or want to sit back and watch – we've got you covered! 🎉
Come learn about text handling! 😄
🎓 Improving your Kotlin skills means exploring code and discovering new things you might not have known before!
⚙️ For some handy tips and tricks to do so on your own, check out the companion article for my latest video, which I just published!
🤩 "Kotlin in Action, 2e", the book that I am writing with the amazing
@sveta_isakova
and
@relizarov
, is discounted by 50% today! 🔥
3 chapters are in early access, and you get a free ebook of the first edition.
Alright, back to revising and writing! 👨🏻💻
This is huge: Google Workspace team actively seeing how they can benefit from Multiplatform. It’s amazing seeing projects as widely used as that evaluating this tech and seeing its benefits. Full talk to follow.
#kotlinconf
“Kotlin is at the heart of our new strategy” — with 95%+ devs using Kotlin as their primary language, and Compose being built exclusively on Kotlin. Incredible vote of confidence ❤️
Inlay hints are in my opinion one of the absolutely most powerful ways an IDE can surface information, like types and parameter names. Even in long call chains, it allows me to quickly see what’s going on – whether I’m working with a collection, an element, or nullables. 🔥
That's the power of
#ComposeMultiplatform
in action! 🤯 We built this live on stream in
@JetBrains_Fleet
, Compose, and Kotlin – it was a great time, and I've definitely learned something new about MIDI! 🎶
So after hanging out with
@sebi_io
and
@zsmb13
I'm able to visualize any signals coming from my MIDI devices using Compose. Now some UX is required: mapping the midi devices to animations and effects
Compose Multiplatform devs should really take a look! 🔥 Appyx is incredible, and the interactive demos they have on the website are absolutely blowing my mind! Navigation, gestures, and incredible animations with super smooth APIs. 🤯 Delightful!
I'm very excited to share that Appyx 2.0-alpha01 is out! 🎉
An article is on the way – meanwhile let me show you the best thing you will see in
#Compose
#Multiplatform
today 👇
Featuring interactive, embedded web demos (try gestures too!)
Just migrated one of our
@kotlin
Multiplatform side projects to the new Kotlin/JS IR compiler. Awesome results! ✨
🚚 Generated artifacts are 25% smaller!
📦 Compressed artifacts are 18% smaller!
⚡️ Clean build takes 13% less time!
The future for Kotlin/JS remains bright 🚀
Since I'm really not sure if this ad for
@JetBrains_Edu
will ever see the official light of day...
...I'll just share it right here. 🤫
Who better to convince you to learn programming than... a crazy German scientist! 🧪👨🏻🔬
Do it – FOR SCIENCE!
The SDK for
@SlackHQ
includes a Kotlin DSL for building messages! 😍🤯 – What a neat way to concisely express structure and layout of rich text messages for any API integrations built with
#kotlin
. Great choice,
@SlackAPI
!
In case you’re a Kotlin developer, we’ve added a Block Kit DSL to our Java SDK to make it simpler to shape payloads for any surface 💡Enjoy the more concise and type-safe way to build with Block Kit:
💾
#JetpackCompose
state management is nice and compact – we use it all the time:
var text by remember { mutableStateOf("init") }
But what really happens here?
@zachklipp
explains the combination of delegation, memoization, and observation in his post!
My book "Kotlin in Action 2e" is part of the Cheerful Holiday Sale at
@ManningBooks
– that means 50% off! 🎄
If you want to learn Kotlin development (and soon, coroutines) guided by my excellent co-authors and me, take a look. It's all in there! 👀
My camera is having some weirdly analog looking glitches. Together with the tropical shirt and neon lights, I think I've completed the 1985 look. 👾🎸💾😎🌴
👨🏻🔬 It’s time to experiment – with Kotlin’s new prototype for Context Receivers!
🤔 What’s a receiver?
⚙️ How do context receivers work?
💡 When should I use context receivers?
We’ve got the answers on the
@kotlin
YouTube channel! 🎥🍿
🙋🏻 Hey! We need your help to make the multiplatform experience with Kotlin for Web awesome.
Are you building cross-platform web+native apps? E.g. with Flutter & Flutter/Web, React & React/Native?
Send me a DM! We'd love to chat and understand your experiences and pain points!
“Game Hacking using Kotlin/Native” by
@IgnatBeresnev
is so magnificently entertaining. Learning a ton of cool details about memory hacking with Kotlin. Room is positively overflowing with people having an amazing time! 🔥
#kotlinconf
☄️ I wrote about how I built an "Asteroids"-style game using
#JetpackCompose
for Desktop!
Learn about all the interesting bits – from the basics like writing a game loop to more advanced topics like frame-independent movement.
🚀 Check it out:
The icon we use to indicate that Compose Multiplatform supports iOS has a really special place in my heart – it's so wonderfully geometric, so round, yet unmistakably fruity! 🍎🍊
🚀 A huge step for UI development using Kotlin - for desktop, the web, and mobile. I can’t wait to see what y’all will build with Compose Multiplatform 1.0 – I already know it’ll be amazing! 🔥
🎨 Compose Multiplatform 1.0. is live! Kotlin now has a production-ready, declarative, multiplatform UI framework. UI development in Kotlin becomes a pleasure.
👀 Learn more and try it today!
Did you know that you can create PowerPoint presentations using Jetpack Compose?
Just published ComposePPT which is an open-source experimental UI toolkit for creating PowerPoint presentations.
Thank you so much for everyone who helped me reach >1000 followers! 🥰 It’s awesome to see soo many of you interested in the stuff we build at
@jetbrains
and
@kotlin
(and the other stuff I talk about 😁). You’re amazing! ✨
👀 We are looking for interesting Kotlin/JS projects to feature them as case studies – especially open-source and production-ready ones! 🔭
If you're a K/JS developer willing to share your case with the wider community, please get in touch! 📬
Delightful to see
@fireship_dev
cover Kotlin in 100 seconds! A fun way for newcomers to get a first overview and see some of the characteristics of the language and its ecosystem.
Mindblowing stuff by the folks building Appyx – so many crazy things here: Material3 Navigation, Shared element transitions(!), gesture control... 🔥
That's a great teaser. Can't wait to use it in my own Compose Multiplatform projects soon 👀
I guess I can add "Writing tweets for a Twitter account with over 100k followers" to my CV now 😁
Thanks to everyone who engages with us on social media, shares their knowledge and helps folks grow as developers.
We couldn't ask for a better community. 🥰
100K followers! Achievement unlocked! 🤩
Thanks to each and every one of you.
Kotlin’s evolution would be impossible without your participation and feedback. Keep asking questions. Keeping sharing your experience.
Try new things and continue to learn, teach, and inspire others!
🌐🚀 If you want to conveniently self-host
@JetBrainsKtor
apps,
@dokku
is a great choice as a deployment target.
I've written up a short tutorial to show off how you can get your own app up & running within just ~10 minutes. Just in time for the weekend!
Fun little SEO story: Know how we have a library for atomics in Kotlin called kotlinx.atomicfu? I noticed a while ago that it didn't show up in Google's search results (or just partially).
What happened? GitHub forbids indexing of feeds – *.atom URLs.
...we renamed the repo. 🤣
🤯 Still blows my mind how easy it is to call native APIs from
#KotlinMultiplatform
In this PR, I delegate to a native iOS 'bottom sheet' with a UIDatePicker, all written in Kotlin, and driven from Compose.
Really awesome writeup by
@mbakguns
on
#ComposeMultiplatform
, and how you can build a proper multiplatform app with a shared user interface for both iOS and Android, using 100% Kotlin code – including a fully functional sample! 🔥
Just explained someone the `firstOrNull` function on Kotlin Flows as `keepConsumingUntilFirstElementThatMatchesPredicateOrReturnNullOrIfICantFindAnySuchElementThenAlsoReturnNull`.
Not sure if that cleared anything up.
Compose for Desktop Milestone 1 is out – and it's so freaking exciting. I instantly fell in love with it when it was demoed internally, so I am super grateful for the opportunity to contribute to this release 😊
Go try it! It's seriously fun.
🥳We just published Compose for Desktop Milestone 1!
It provides a declarative & reactive way to create desktop user interfaces with pure Kotlin, and you can even share your UI with
@AndroidDev
!
Read about it, try it & go build some desktop UIs!🛠️🖥️
📬 Awesome Compose Multiplatform project by
@mrkaydev1
targeting iOS, Android, and Desktop! Allows you to create temp email addresses for when you don't want to give your mail to random services.
I'm a big fan of the design – simple and sleek, and fits in well on all 3 platforms!
🎉 Exciting News! I'm thrilled to announce that I have successfully completed my first KMP (Kotlin Multiplatform) project! 🎉
Special thanks to the
@sebi_io
for boosting the KMP community so much. 🚀
Check out my repository on GitHub:
#kotlin
#kmp
Hi folks, I published a new release for compose rich text editor 📝 .
✅ Improve HTML import/export
✅ Add links support
✅ Add code blocks support
✅ Add ordered/unordered lists support
✅ New detailed documentation
Github repository:
🎉 Welcome Kotlin Multiplatform in
@JetBrains_Fleet
🎉
The new tooling allows you to streamline the development of multiplatform apps in a single IDE, making the process simple and enjoyable. Features include:
🌟 Simplicity: Auto-generated Run Configurations for Android and/or
🔌 Whoa – RSocket on top of Kotlin Multiplatform!
Especially delightful to see this library utilizing the new Kotlin/JS IR compiler – rsocket-kotlin is already equipped for the future! 🛸
Turbine by CashApp, the small library that makes testing flows more convenient, just released 1.0! 🎉 Awesome to see the lib make that jump. It makes writing unit tests for coroutine-heavy Kotlin programs a whole bunch more enjoyable!
Running
@Kotlin
on a toaster is not that far off - this device is the smallest I’ve gotten Kotlin/JS to run on so far. Even built my own little flash-via-serial
@gradle
task for it. Watch out, embedded world 😉
🧠 The team working on Deep Learning for Kotlin just released a new version of their library, and these new features are SO EXCITING!
I can't describe the amount of willpower it's taking me to not just drop everything and start building stuff with Object Detection or SoundNet...
🎉 KotlinDL 0.3 Is Out! A major update that brings ONNX Integration, Object Detection API, 20+ New Models in ModelHub, and Many New Layers. Check it out:
👨🏻🏫🎥 My first video has been published on the official Kotlin YouTube channel!
Be sure to check it out if you want to learn more things about the Kotlin Standard Library – starting with strings! 🎉
So excited about this. Hope you enjoy 🥰
Tune in to our new YouTube series “Kotlin Standard Library Safari” to learn all about the useful functionality that comes with Kotlin straight out of the box!
➡️🎥➡️
We’re doing some more streaming this afternoon!
@zsmb13
,
@antonarhipov
and I are going to do some fun exploration of ✨ animations ✨ in Compose Multiplatform, Fleet, and of course, Kotlin! 🎉
Join us, ask questions, or just hang out!
🎉 Welcome Kotlin Multiplatform in
@JetBrains_Fleet
🎉
The new tooling allows you to streamline the development of multiplatform apps in a single IDE, making the process simple and enjoyable. Features include:
🌟 Simplicity: Auto-generated Run Configurations for Android and/or
Doing a bit of weekend TypeScript, and oh man, does it make me appreciate the concurrency primitives we have with Kotlin and kotlinx.coroutines 😅 I already miss being able to easiliy write composable(!) suspending functions and using primitives like channels out of the box 👀
…I managed to overtighten one of the screws on my microphone stand and essentially rip it apart, and now I have to balance the microphone on four cans of kidney beans until I manage to replace the bolt keeping everything in place 🥲😂