Kt. Academy

We teach Kotlin with a focus on the best practices.

#Kotlinblog #Kotlinbooks #Kotlinworkshops #Kotlincourses

2025-03-03

The idiomatic way of naming constants in Compose is using PascalCase. That seems obvious for object declarations, but we also use this convention for immutable top-level properties (including those with const modifier) and for enum values. That gives us consistency between all the different ways of representing constants.

2025-02-28

Kotlin Coroutines offer a powerful way to handle asynchronous programming, but using them effectively in production requires a solid understanding of best practices. In this insightful talk, Marcin Moskala explores real-world coroutine patterns to help you write efficient, maintainable, and scalable code.

buff.ly/41oDerI

2025-02-25

Dive into Kotlin and Jetpack Compose with these brand-new open sessions at Kt. Academy!
Find out more on our website:
buff.ly/3UzSMW0

2025-02-24

Modifier builders or resources that are used for many composables can be extracted for better performance. Why make something many times, if you can create it only once 😎

Looking to master recomposition?
Have a look at the Recomposition Master Workshop by Marcin MoskaΕ‚a πŸ‘‡
buff.ly/4alzDgM
Available in open and private sessions. 😁

2025-02-20

If you need to persist identity of a component that changes place, that can be achieved with movableContentOf. It allows using the same composable objects as children of different parents. That is especially useful when we define adaptive layouts.

2025-02-19

Want to add multi-language support to your Jetpack Compose app? With Android 13’s per-app language preferences, localization is easier than ever. This guide covers everything from setting up locales to building a custom in-app language picker, ensuring a seamless multilingual experience. Start enhancing your app today! πŸš€
buff.ly/40ZJJPY

2025-02-18

Wondering why our workshops are considered an outstanding experience?

Here is what our participants say so don’t trust us, trust them: πŸ‘‡
buff.ly/3wnt2D4

Workshops: πŸ‘‡
buff.ly/45I5K7W

2025-02-17

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 πŸ‘Œ

2025-02-14

Incredible how the time flies!

This video came up two years ago

buff.ly/4aPFrj1
It’s all about the Kotlin books and its roots πŸ™‚

2025-02-13

Here is an overview of different column arrangement options in Jetpack Compose.

2025-02-11

Dive into Kotlin and Jetpack Compose with these brand-new open sessions at Kt. Academy!
Find out more on our website:
buff.ly/3UzSMW0

2025-02-10

If you are not sure about stability of your classes and parameters, you can use Compose compiler report πŸ“ˆ It generates a report showing how each class and parameter is treated, and essential statistics related to stability πŸ”

2025-02-05

Here is a very practical example of yield function. In my game, I use a very complex function to generate challenges. It can take a couple of seconds. If this function is started on the same thread as UI, application would be frozen. In Android the simplest solution is to start it on Dispatchers. Default, but that is not useful on JS. So making it suspending and adding yield, to give space for UI updates, is the only option.

2025-02-04

String skipping mode is enabled by default since Kotlin 2.0.20❗Its two biggest changes are that 1. composables with unstable parameters are skippable, they are skipped if equal arguments are used (compared with === for unstable types, and with == for stable), 2. all lambdas in composables are remembered by default.

2025-01-29

When you use by keyword after a property, you delegate getter to getValue and (if var) setter to setValue from the delegate. Those functions can be extensions, like in State, where they only read or write value property.
---
If you are curious how these things work see it and learn it join us on February 19-21.

More details πŸ‘‡
buff.ly/45RcK2z

2025-01-28

Ready to start your Kotlin journey through the code?
Yes? Join us at the Kotlin for Developers Extra Open Workshop!

What’s in it for you?
βœ… Hands-on training in Kotlin (live online)
βœ… Connect with like-minded Kotlin enthusiasts
βœ… All sessions conducted in English

πŸ‘€ Only a few spots left!
πŸ’» More info and registration: buff.ly/45RcK2z

Don’t miss this chance to learn, network, and grow with a global developer community. πŸš€

2025-01-27

Spring Boot now cancels suspending controller functions, if HTTP connection is lost! One more source of memory leaks eliminated thanks to Kotlin Coroutines πŸ‘
β€”
Find out more at the open workshop on February 19-21. πŸ‘‡
buff.ly/4d3HBM7

2025-01-23

In case you missed the post from last weekπŸ‘‡

Marcin MoskaΕ‚a has released a new game to sharpen your collection processing skills: Collection Processing Outcome Guesser! 🍎🍌
Explore increasingly complex fruit processing tasks and challenge yourself to predict the output.

πŸ‘‰ Read more: buff.ly/4ajpPE6

πŸ‘‰ Play now: buff.ly/3CbL0Ly

Good luck guessing! 😊

2025-01-22

Operators in Kotlin can be used not only with primitives and strings, but also with other classes BigDecimal, collections, date and time, and much more.

Learn more at our workshops!
Kotlin for Developers in an open format will be held just in less than 2 weeks from now!

Hurry up to secure your spot πŸ‘‡
kt.academy/workshop/developers

2025-01-21

The new year is here, and we're excited to return with our Kotlin Coroutines Open Workshops led by Marcin MoskaΕ‚a, a Certified Kotlin Expert!

πŸ“’ Learn more and register here:
buff.ly/3zmeEMY

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst