Constructing coroutine scope
How we generally define coroutine scope on Android and on the backend.
Effective Kotlin Item 53: Consider using groupingBy instead of groupBy
What Grouping is, and how groupingBy instead of groupBy can be a performance optimization.
Scoping functions in Kotlin Coroutines
How coroutineScope, withContext and other scoping function work, and why it is great.
Exception handling in Kotlin Coroutines
Everything you need to know about the exception handling mechanism in Kotlin Coroutines.
Effective Kotlin Item 52: Consider associating elements to a map
How associateBy is useful to improve the performance of finding elements.
Cancellation in Kotlin Coroutines
Everything you need to know about the cancellation mechanism in Kotlin Coroutines.
Effective Kotlin Item 51: Prefer Sequence for big collections with more than one processing step
What the difference between list and sequence processing is, and when each should be preferred.
Job and children awaiting in Kotlin Coroutines
What Job is and how it is the most important context responsible for structured concurrency.
Effective Kotlin Item 50: Eliminate obsolete object references
How to help our garbage collector and avoid memory leaks.
Coroutines built-in support vs library
What the difference is between the coroutine functionalities build into language, and those distributed as a library.
Effective Kotlin Item 49: Consider using inline value classes
What value classes are, how to use and inline them.
Coroutines under the hood
A deep dive into how suspension and continuations work under the hood.
Effective Kotlin Item 48: Use inline modifier for functions with parameters of functional types
How inline functions work and why they can be so important for the performance of our application.
What is CoroutineContext and how does it work?
A deep explanation of the coroutine context - the powerful data holder for coroutines.
Effective Kotlin Item 47: Avoid unnecessary object creation
About the most essential rule of performance optimization.
How do we start coroutines, what is structured concurrency and how does it work?
Sequence builders in Kotlin Coroutines
How sequences can be created using Kotlin Coroutines.
Effective Kotlin Item 35: Consider defining a DSL for complex object creation
What Kotlin DSLs are, how they work, and how we can implement this pattern ourselves.
Traits for testing in Kotlin
A trick needed when using traits for testing in Kotlin.
Why using Kotlin Coroutines?
The explanation of why coroutines stand out and offer us what hasn't been offered by other technologies.
Effective Kotlin Item 34: Consider a primary constructor with named optional arguments
Why telescoping-constructor pattern and the classic builder pattern are considered outdated in Kotlin.
How does suspension work in Kotlin coroutines?
A deep explanation of how suspension works in Kotlin Coroutines.
Effective Kotlin Item 33: Consider factory functions instead of constructors
What factory functions are and why they are so important patterns for object creation.
Effective Kotlin Item 46: Avoid member extensions
What member extensions are, how they are possible and why we should avoid using them.
Kotlin Coroutines dispatchers
Where we should use each dispatcher from the Kotlin Coroutines library.
Effective Kotlin Item 45: Consider extracting non-essential parts of your API into extensions
What the differences between members and extensions are, and in what cases we should prefer one over another.
Effective Kotlin Item 44: Respect the contract of compareTo
What the contract of the compareTo is and why we should care.
Effective Kotlin Item 43: Respect the contract of hashCode
What the contract of the hashCode is and why we should care.
Effective Kotlin Item 42: Respect the contract of equals
What the contract of the equals is and why we should care.
Kt. Academy new logo: Phoenix
Why we decided to change our logo, and what is the symbolism of Phoenix.
Effective Kotlin Item 41: Use enum to represent a list of values
When should we use enum classes, and when sealed classes instead? What are the advantages of both approaches?
Effective Kotlin Item 40: Prefer class hierarchies to tagged classes
What tagged classes are and why we should use class hierarchies instead of them.
Effective Kotlin Item 39: Use sealed classes and interfaces to express restricted hierarchies
Sealed classes and interfaces might not look like a big deal, but they changed a lot in the way we structure programs.
Effective Kotlin Item 38: Use function types or functional interfaces to pass operations and actions
Kotlin introduced support for function types and function interfaces, and they should be used to represent operations and actions as objects.
Effective Kotlin Item 37: Use the data modifier to represent a bundle of data
Data modifier is a powerful tool. Let's learn about how it works and what its perils and dangers are.
Effective Kotlin Item 36: Prefer composition over inheritance
Years of OOP made us overuse inheritance. Instead, we should more often use a composition that is safer and more explicit. More often, but not always...
More articles on
Revalidate time: 2021-10-18T03:57:55.203874+02:00