<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Appendix on Advanced Beginner</title><link>https://advanced-beginner.github.io/en/docs/kotlin/appendix/</link><description>Recent content in Appendix on Advanced Beginner</description><generator>Hugo</generator><language>en-US</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Tue, 19 May 2026 18:30:17 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/index.xml" rel="self" type="application/rss+xml"/><item><title>Glossary</title><link>https://advanced-beginner.github.io/en/docs/kotlin/appendix/glossary/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kotlin/appendix/glossary/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Estimated time&lt;/strong&gt;: about 10 minutes&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;This page lists core Kotlin terms in alphabetical order. Each term comes with a concise definition and a link to the related concept document.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Top 5 Core Terms&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Coroutine&lt;/strong&gt;: A lightweight, suspendable asynchronous execution unit&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Class&lt;/strong&gt;: An immutable data class that auto-generates equals/hashCode/copy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Null Safety&lt;/strong&gt;: A safety mechanism that distinguishes nullable (&lt;code&gt;T?&lt;/code&gt;) and non-null (&lt;code&gt;T&lt;/code&gt;) at the type level&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sealed Class&lt;/strong&gt;: Restricts subtypes to the same module/package and enables exhaustive &lt;code&gt;when&lt;/code&gt; checking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extension Function&lt;/strong&gt;: A way to add new functions to an existing type without modifying it&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="a"&gt;A&lt;a class="anchor" href="#a"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Any&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The top type of Kotlin&amp;rsquo;s type hierarchy. The common ancestor of all Kotlin objects. Defines &lt;code&gt;equals()&lt;/code&gt;, &lt;code&gt;hashCode()&lt;/code&gt;, and &lt;code&gt;toString()&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/variables-types/"&gt;Variables and Types&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;apply&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;One of the scope functions. Uses the receiver object as the context (&lt;code&gt;this&lt;/code&gt;) and returns the receiver itself. Commonly used for object initialization patterns.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;as?&lt;/strong&gt; (safe cast)&lt;/dt&gt;
&lt;dd&gt;An operator that attempts a type conversion and returns null on failure. Unlike a plain &lt;code&gt;as&lt;/code&gt;, it does not throw &lt;code&gt;ClassCastException&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/null-safety/"&gt;Null Safety&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="b"&gt;B&lt;a class="anchor" href="#b"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;by&lt;/strong&gt; (delegation keyword)&lt;/dt&gt;
&lt;dd&gt;A keyword that delegates property or interface implementation to another object. Used as &lt;code&gt;val x by lazy { ... }&lt;/code&gt;, &lt;code&gt;class A : B by b&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;buildList / buildMap / buildSet&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Standard library functions for building read-only collections via a builder block. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/collections/"&gt;Collections&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="c"&gt;C&lt;a class="anchor" href="#c"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Companion Object&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A singleton object declared inside a class. Accessible directly through the class name. Used for factory methods and constant definitions. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Component Function (componentN)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Functions auto-generated by &lt;code&gt;data class&lt;/code&gt;. The foundation for destructuring declarations (&lt;code&gt;val (a, b) = obj&lt;/code&gt;). → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/data-sealed-classes/"&gt;Data/Sealed Classes&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Context Receiver&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;An experimental feature introduced in Kotlin 1.6. A way to declare multiple receiver objects in a function signature. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/version-comparison/"&gt;Version Comparison&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Coroutine&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A lightweight execution unit that can suspend and resume later. Much lighter than threads and supports Structured Concurrency. Started with &lt;code&gt;launch&lt;/code&gt;, &lt;code&gt;async&lt;/code&gt;, or &lt;code&gt;runBlocking&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;copy()&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A function auto-generated by &lt;code&gt;data class&lt;/code&gt;. Returns a new instance with some properties changed — the transformation pattern for immutable objects. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/data-sealed-classes/"&gt;Data/Sealed Classes&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;A-C Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;by&lt;/strong&gt;: The delegation keyword, used with &lt;code&gt;lazy&lt;/code&gt;, &lt;code&gt;observable&lt;/code&gt;, and interface delegation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;companion object&lt;/strong&gt;: Class-level factory/constants — distinct from the &lt;code&gt;object&lt;/code&gt; declaration&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coroutine&lt;/strong&gt;: Lightweight asynchronous unit; thousands can run concurrently compared to threads&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="d"&gt;D&lt;a class="anchor" href="#d"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Data Class&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A class declared with the &lt;code&gt;data&lt;/code&gt; keyword. Auto-generates &lt;code&gt;equals&lt;/code&gt;, &lt;code&gt;hashCode&lt;/code&gt;, &lt;code&gt;toString&lt;/code&gt;, &lt;code&gt;copy&lt;/code&gt;, and &lt;code&gt;componentN&lt;/code&gt;. Suitable for immutable DTOs and value objects. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/data-sealed-classes/"&gt;Data/Sealed Classes&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Deferred&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The type returned by the &lt;code&gt;async { }&lt;/code&gt; coroutine builder. Represents a future result and is obtained via &lt;code&gt;await()&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Dispatchers&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The context that determines which thread a coroutine runs on. &lt;code&gt;Dispatchers.Main&lt;/code&gt; (main/UI), &lt;code&gt;Dispatchers.IO&lt;/code&gt; (I/O), &lt;code&gt;Dispatchers.Default&lt;/code&gt; (CPU).&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="e"&gt;E&lt;a class="anchor" href="#e"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Elvis Operator (?:)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;An operator that returns the right-hand value when a nullable expression is null. &lt;code&gt;val name = rawName ?: &amp;quot;anonymous&amp;quot;&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/null-safety/"&gt;Null Safety&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Expression&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A unit of code that returns a value. In Kotlin, &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;when&lt;/code&gt;, and &lt;code&gt;try&lt;/code&gt; are all expressions. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Extension Function&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A technique to add new functions to an existing class without modifying it or using inheritance. Form: &lt;code&gt;fun ClassName.newFunction() { ... }&lt;/code&gt;. Standard library methods such as &lt;code&gt;String.uppercase()&lt;/code&gt; and &lt;code&gt;List.filter()&lt;/code&gt; are implemented as extension functions. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/extension-functions/"&gt;Extension Functions&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="f"&gt;F&lt;a class="anchor" href="#f"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Flow&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A coroutine-based asynchronous stream. A cold stream that emits multiple values sequentially. Hot stream variants such as &lt;code&gt;StateFlow&lt;/code&gt; and &lt;code&gt;SharedFlow&lt;/code&gt; also exist.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;fun (function keyword)&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The keyword for declaring Kotlin functions. Top-level, member, extension, and local functions are all declared with &lt;code&gt;fun&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/functions/"&gt;Functions&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="i"&gt;I&lt;a class="anchor" href="#i"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;inline&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A keyword that causes a function&amp;rsquo;s body to be inserted at the call site. Mainly used for higher-order functions taking lambdas to eliminate object-creation overhead.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;init block&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A block of code that runs during class initialization. Executes right after the primary constructor and is used for validation or derived-property initialization. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;internal&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A visibility modifier accessible only within the same Gradle module. Useful for hiding the internal implementation of a library. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;D-I Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flow&lt;/strong&gt;: A coroutine-based asynchronous stream; an alternative to RxJava&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;inline&lt;/strong&gt;: A performance optimization for lambda-based higher-order functions; used with &lt;code&gt;reified&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;internal&lt;/strong&gt;: Module-level visibility that Java does not have&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="j"&gt;J&lt;a class="anchor" href="#j"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;@JvmOverloads&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;An annotation that auto-generates overloaded methods so Kotlin functions with default arguments can be called as overloads from Java.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;@JvmStatic&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;An annotation that allows &lt;code&gt;companion object&lt;/code&gt; members to be called as static methods from Java.&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="k"&gt;K&lt;a class="anchor" href="#k"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;K2 Compiler&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A new compiler frontend stabilized in Kotlin 2.0. Faster compilation, more accurate type inference, and integrated IDE analysis. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/version-comparison/"&gt;Version Comparison&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="l"&gt;L&lt;a class="anchor" href="#l"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;lateinit&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A keyword that defers the initialization of a non-null property. Only applies to &lt;code&gt;var&lt;/code&gt;. Accessing before initialization throws &lt;code&gt;UninitializedPropertyAccessException&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;lazy&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A delegate that creates a lazily-initialized property — initialized on first access. &lt;code&gt;val x by lazy { ... }&lt;/code&gt;. Thread-safe by default. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;let&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;One of the scope functions. Passes the receiver to the lambda as &lt;code&gt;it&lt;/code&gt; and returns the lambda result. Mainly used for nullable handling and limiting variable scope.&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="n"&gt;N&lt;a class="anchor" href="#n"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Nothing&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A subtype of every type. The return type of functions that never return normally (throw exceptions, infinite loops). → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/variables-types/"&gt;Variables and Types&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Null Safety&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A type-system property that distinguishes nullable types (&lt;code&gt;T?&lt;/code&gt;) from non-null types (&lt;code&gt;T&lt;/code&gt;). Prevents &lt;code&gt;NullPointerException&lt;/code&gt; at compile time. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/null-safety/"&gt;Null Safety&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="o"&gt;O&lt;a class="anchor" href="#o"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;object&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A keyword that defines a singleton instance. Handles class declaration and instance creation at once. Also used for anonymous object expressions. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/classes-objects/"&gt;Classes and Objects&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;J-O Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;K2 Compiler&lt;/strong&gt;: The core of Kotlin 2.0 — faster compilation and more accurate analysis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lateinit vs lazy&lt;/strong&gt;: &lt;code&gt;var&lt;/code&gt;/manual initialization vs &lt;code&gt;val&lt;/code&gt;/init on first access&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nothing&lt;/strong&gt;: The type for functions that throw exceptions; the bottom of the type hierarchy&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="r"&gt;R&lt;a class="anchor" href="#r"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;reified&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A keyword that allows access to the actual runtime type information of a type parameter inside an &lt;code&gt;inline&lt;/code&gt; function. &lt;code&gt;inline fun &amp;lt;reified T&amp;gt; ...&lt;/code&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Receiver&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The object accessed as &lt;code&gt;this&lt;/code&gt; in an extension function or a lambda with receiver. The heart of the DSL builder pattern.&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="s"&gt;S&lt;a class="anchor" href="#s"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Sealed Class / Sealed Interface&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A class/interface that restricts its subtypes to the same module and same package (Kotlin 1.5+). Supports exhaustive checks with &lt;code&gt;when&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/data-sealed-classes/"&gt;Data/Sealed Classes&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Sequence&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A lazily-evaluated collection. Processes elements one-by-one through a pipeline without creating intermediate collections. Efficient for large datasets. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/collections/"&gt;Collections&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Structured Concurrency&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A principle that structures coroutine lifecycles around &lt;code&gt;CoroutineScope&lt;/code&gt; so there are no leaks or unfinished tasks.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;suspend&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A keyword for suspend functions that can only be called inside a coroutine. Suspends execution without blocking the thread.&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="u"&gt;U&lt;a class="anchor" href="#u"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Unit&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The return type of functions that have no return value. Corresponds to Java&amp;rsquo;s &lt;code&gt;void&lt;/code&gt; but is an actual type (a singleton value). Can be omitted. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/variables-types/"&gt;Variables and Types&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="v"&gt;V&lt;a class="anchor" href="#v"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;val / var&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;code&gt;val&lt;/code&gt; declares an immutable (read-only) variable; &lt;code&gt;var&lt;/code&gt; declares a mutable variable. Prefer &lt;code&gt;val&lt;/code&gt; by default. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/variables-types/"&gt;Variables and Types&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Value Class&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Declared as &lt;code&gt;@JvmInline value class&lt;/code&gt;. Wraps a single property but does not create a wrapper object at runtime — an inline class.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;vararg&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;A parameter keyword for receiving a variable number of arguments. Treated as an array inside the function. Passed using the spread operator (&lt;code&gt;*&lt;/code&gt;). → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/functions/"&gt;Functions&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;R-V Key Points&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;reified&lt;/strong&gt;: Retains generic type information at runtime; can be used only with &lt;code&gt;inline&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;suspend&lt;/strong&gt;: A core coroutine keyword; asynchronous without blocking the thread&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;value class&lt;/strong&gt;: A type-safe wrapper with no runtime overhead&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="w"&gt;W&lt;a class="anchor" href="#w"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;when&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Kotlin&amp;rsquo;s branching expression. More powerful than &lt;code&gt;switch&lt;/code&gt;, supporting type checks, ranges, and various conditional patterns. Performs exhaustive checks with &lt;code&gt;sealed class&lt;/code&gt;. → &lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/basics/"&gt;Basics&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr&gt;
&lt;h4 id="next-steps"&gt;Next Steps&lt;a class="anchor" href="#next-steps"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/"&gt;Concepts&lt;/a&gt; - Detailed documents on Kotlin core concepts&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/version-comparison/"&gt;Version Comparison&lt;/a&gt; - Changes from Kotlin 1.x to 2.x&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/faq/"&gt;FAQ&lt;/a&gt; - Frequently asked questions&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/references/"&gt;References&lt;/a&gt; - Official documentation and learning resources&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Version Comparison</title><link>https://advanced-beginner.github.io/en/docs/kotlin/appendix/version-comparison/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kotlin/appendix/version-comparison/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Estimated time&lt;/strong&gt;: about 10 minutes&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;A summary of major changes across Kotlin versions. Provides the key changes and tips you should consider when migrating.&lt;/p&gt;
&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Key Summary&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kotlin 2.0&lt;/strong&gt;: K2 compiler stabilization — up to 2x faster compilation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kotlin 2.0&lt;/strong&gt;: Official support for &lt;code&gt;data object&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kotlin 1.9&lt;/strong&gt;: Added &lt;code&gt;Enum.entries&lt;/code&gt; (replaces &lt;code&gt;.values()&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kotlin 1.7&lt;/strong&gt;: Improved builder inference and improved &lt;code&gt;by lazy&lt;/code&gt; thread mode&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kotlin 1.5&lt;/strong&gt;: Stabilized &lt;code&gt;value class&lt;/code&gt; (inline class) and added &lt;code&gt;sealed interface&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="kotlin-versions-at-a-glance"&gt;Kotlin Versions at a Glance&lt;a class="anchor" href="#kotlin-versions-at-a-glance"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Version&lt;/th&gt;
 &lt;th&gt;Major Changes&lt;/th&gt;
 &lt;th&gt;Minimum JVM&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1.4.x&lt;/td&gt;
 &lt;td&gt;Improved SAM conversion, &lt;code&gt;fun interface&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1.5.x&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;value class&lt;/code&gt;, &lt;code&gt;sealed interface&lt;/code&gt;, &lt;code&gt;Result&lt;/code&gt; improvements&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1.6.x&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;sealed class&lt;/code&gt; when-exhaustiveness warning, &lt;code&gt;Regex&lt;/code&gt; improvements&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1.7.x&lt;/td&gt;
 &lt;td&gt;K1 compiler improvements, &lt;code&gt;@OptIn&lt;/code&gt; stabilization&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1.8.x&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;kotlin-reflect&lt;/code&gt; slimmed down, Java 18-19 support&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1.9.x&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Enum.entries&lt;/code&gt;, &lt;code&gt;data object&lt;/code&gt;, range function improvements&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2.0.x&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;K2 compiler stabilization&lt;/strong&gt;, smart-cast improvements&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2.1.x&lt;/td&gt;
 &lt;td&gt;Guard conditions (&lt;code&gt;when&lt;/code&gt; guard), non-local break/continue&lt;/td&gt;
 &lt;td&gt;JVM 8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="kotlin-20--core-changes"&gt;Kotlin 2.0 — Core Changes&lt;a class="anchor" href="#kotlin-20--core-changes"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;K2 Compiler Stabilization&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>FAQ</title><link>https://advanced-beginner.github.io/en/docs/kotlin/appendix/faq/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kotlin/appendix/faq/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Estimated time&lt;/strong&gt;: about 10 minutes&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;A collection of questions that frequently come up when first encountering Kotlin or adopting it in production.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="q1-can-kotlin-and-java-be-used-together-in-one-project"&gt;Q1. Can Kotlin and Java be used together in one project?&lt;a class="anchor" href="#q1-can-kotlin-and-java-be-used-together-in-one-project"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; Yes, fully. Kotlin and Java compile to the same JVM bytecode, so you can freely mix them within the same project.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-kotlin" data-lang="kotlin"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Kotlin file
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;KotlinService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;getGreeting&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Hello from Kotlin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Using a Kotlin class from a Java file&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;KotlinService&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;KotlinService&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getGreeting&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;Java Interop Tips&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;A Kotlin &lt;code&gt;data class&lt;/code&gt; is used as a regular class in Java&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;@JvmOverloads&lt;/code&gt; to expose default-argument functions as Java overloads&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;@JvmStatic&lt;/code&gt; to call &lt;code&gt;companion object&lt;/code&gt; members as Java static methods&lt;/li&gt;
&lt;li&gt;Top-level Kotlin functions are called as &lt;code&gt;FilenameKt.functionName()&lt;/code&gt; in Java&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h4 id="q2-what-is-the-difference-between-a-coroutine-and-a-thread"&gt;Q2. What is the difference between a coroutine and a thread?&lt;a class="anchor" href="#q2-what-is-the-difference-between-a-coroutine-and-a-thread"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; A coroutine is a lightweight execution unit that runs &lt;strong&gt;cooperatively&lt;/strong&gt;. Threads are heavy OS-managed resources, while coroutines run inside threads and can be created by the thousands with negligible overhead.&lt;/p&gt;</description></item><item><title>References</title><link>https://advanced-beginner.github.io/en/docs/kotlin/appendix/references/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kotlin/appendix/references/</guid><description>&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Estimated time&lt;/strong&gt;: about 5 minutes&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;A categorized list of resources useful for learning Kotlin and applying it in production.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="official-documentation"&gt;Official Documentation&lt;a class="anchor" href="#official-documentation"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Official Docs&lt;/td&gt;
 &lt;td&gt;Official Docs&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/"&gt;https://kotlinlang.org/docs/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Language reference, guides, and tutorials&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin API Reference&lt;/td&gt;
 &lt;td&gt;Official Docs&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/api/latest/jvm/stdlib/"&gt;https://kotlinlang.org/api/latest/jvm/stdlib/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Full API of the standard library&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Playground&lt;/td&gt;
 &lt;td&gt;Official Docs&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://play.kotlinlang.org/"&gt;https://play.kotlinlang.org/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;An online IDE that runs in the browser&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Release Notes&lt;/td&gt;
 &lt;td&gt;Official Docs&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/releases.html"&gt;https://kotlinlang.org/docs/releases.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Change log by version&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Evolution&lt;/td&gt;
 &lt;td&gt;Official Docs&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/kotlin-evolution.html"&gt;https://kotlinlang.org/docs/kotlin-evolution.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Language evolution direction and stability guarantees&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="coroutines-and-flow"&gt;Coroutines and Flow&lt;a class="anchor" href="#coroutines-and-flow"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Coroutines Guide&lt;/td&gt;
 &lt;td&gt;Coroutines/Flow&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/coroutines-guide.html"&gt;https://kotlinlang.org/docs/coroutines-guide.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official coroutines tutorial (beginner to advanced)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;kotlinx.coroutines API&lt;/td&gt;
 &lt;td&gt;Coroutines/Flow&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/api/kotlinx.coroutines/"&gt;https://kotlinlang.org/api/kotlinx.coroutines/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Full API of the coroutines library&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Flow Docs&lt;/td&gt;
 &lt;td&gt;Coroutines/Flow&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/flow.html"&gt;https://kotlinlang.org/docs/flow.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official guide for asynchronous Flow streams&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Structured Concurrency&lt;/td&gt;
 &lt;td&gt;Coroutines/Flow&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://elizarov.medium.com/structured-concurrency-722d765aa952"&gt;https://elizarov.medium.com/structured-concurrency-722d765aa952&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Roman Elizarov&amp;rsquo;s explanation of structured concurrency&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Coroutines Codelab&lt;/td&gt;
 &lt;td&gt;Coroutines/Flow&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://developer.android.com/codelabs/kotlin-coroutines"&gt;https://developer.android.com/codelabs/kotlin-coroutines&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Google&amp;rsquo;s hands-on coroutines codelab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="kotlin-multiplatform"&gt;Kotlin Multiplatform&lt;a class="anchor" href="#kotlin-multiplatform"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;KMP Official Site&lt;/td&gt;
 &lt;td&gt;Multiplatform&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.jetbrains.com/kotlin-multiplatform/"&gt;https://www.jetbrains.com/kotlin-multiplatform/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Introduction to Kotlin Multiplatform&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;KMP Docs&lt;/td&gt;
 &lt;td&gt;Multiplatform&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/multiplatform.html"&gt;https://kotlinlang.org/docs/multiplatform.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;KMP development guide&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Fleet IDE&lt;/td&gt;
 &lt;td&gt;Multiplatform&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.jetbrains.com/fleet/"&gt;https://www.jetbrains.com/fleet/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;JetBrains IDE optimized for KMP development&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;KMP Samples&lt;/td&gt;
 &lt;td&gt;Multiplatform&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-samples.html"&gt;https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-samples.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Collection of official sample projects&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="spring-boot--kotlin"&gt;Spring Boot + Kotlin&lt;a class="anchor" href="#spring-boot--kotlin"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Spring Boot Kotlin Support&lt;/td&gt;
 &lt;td&gt;Spring Boot&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://docs.spring.io/spring-framework/docs/current/reference/html/languages.html#kotlin"&gt;https://docs.spring.io/spring-framework/docs/current/reference/html/languages.html#kotlin&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official Spring Kotlin integration documentation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Spring Initializr&lt;/td&gt;
 &lt;td&gt;Spring Boot&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://start.spring.io/"&gt;https://start.spring.io/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Generate Kotlin-based Spring Boot projects&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Ktor Framework&lt;/td&gt;
 &lt;td&gt;Spring Boot&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://ktor.io/"&gt;https://ktor.io/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Kotlin-native asynchronous web framework&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Spring Kotlin Blog&lt;/td&gt;
 &lt;td&gt;Spring Boot&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://spring.io/blog/category/kotlin"&gt;https://spring.io/blog/category/kotlin&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official Spring blog category on Kotlin&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="recommended-books"&gt;Recommended Books&lt;a class="anchor" href="#recommended-books"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin in Action (2nd ed.)&lt;/td&gt;
 &lt;td&gt;Books&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.manning.com/books/kotlin-in-action-second-edition"&gt;https://www.manning.com/books/kotlin-in-action-second-edition&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;By Dmitry Jemerov and Svetlana Isakova — the canonical text from the language designers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Atomic Kotlin&lt;/td&gt;
 &lt;td&gt;Books&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.atomickotlin.com/"&gt;https://www.atomickotlin.com/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;By Bruce Eckel and Svetlana Isakova — step-by-step learning with exercises&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;The Joy of Kotlin&lt;/td&gt;
 &lt;td&gt;Books&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.manning.com/books/the-joy-of-kotlin"&gt;https://www.manning.com/books/the-joy-of-kotlin&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;By Pierre-Yves Saumont — Kotlin from a functional-programming perspective&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Cookbook&lt;/td&gt;
 &lt;td&gt;Books&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.oreilly.com/library/view/kotlin-cookbook/9781492046660/"&gt;https://www.oreilly.com/library/view/kotlin-cookbook/9781492046660/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;By Ken Kousen — a practical recipe-style reference&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="online-courses"&gt;Online Courses&lt;a class="anchor" href="#online-courses"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Bootcamp for Programmers&lt;/td&gt;
 &lt;td&gt;Courses&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011"&gt;https://www.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Free on Udacity — produced by Google and JetBrains, beginner to intermediate&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Essential Training&lt;/td&gt;
 &lt;td&gt;Courses&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.linkedin.com/learning/kotlin-essential-training"&gt;https://www.linkedin.com/learning/kotlin-essential-training&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;LinkedIn Learning — practice-oriented&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Coroutines Deep Dive&lt;/td&gt;
 &lt;td&gt;Courses&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kt.academy/course/coroutines"&gt;https://kt.academy/course/coroutines&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Kt.Academy — specialized advanced course on coroutines&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Android Development with Kotlin&lt;/td&gt;
 &lt;td&gt;Courses&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012"&gt;https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Udacity — Android + Kotlin&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="korean-language-resources"&gt;Korean-Language Resources&lt;a class="anchor" href="#korean-language-resources"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Official Korean Translation&lt;/td&gt;
 &lt;td&gt;Korean&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/home.html"&gt;https://kotlinlang.org/docs/home.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Partial Korean translation of the official docs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Coroutines Official Docs Translation&lt;/td&gt;
 &lt;td&gt;Korean&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://github.com/hikaMaeng/kotlinCoroutineKR"&gt;https://github.com/hikaMaeng/kotlinCoroutineKR&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Unofficial Korean translation of the coroutines guide&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Korea Community&lt;/td&gt;
 &lt;td&gt;Korean&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.facebook.com/groups/kotlinkr/"&gt;https://www.facebook.com/groups/kotlinkr/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Korean Kotlin Facebook user group&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Woowahan Tech Kotlin Series&lt;/td&gt;
 &lt;td&gt;Korean&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://techblog.woowahan.com/?tag=kotlin"&gt;https://techblog.woowahan.com/?tag=kotlin&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Production case studies on the Woowahan Tech blog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LINE Engineering Blog Kotlin&lt;/td&gt;
 &lt;td&gt;Korean&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://engineering.linecorp.com/ko/tag/kotlin"&gt;https://engineering.linecorp.com/ko/tag/kotlin&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Spring Boot + Kotlin production cases&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="tools-and-plugins"&gt;Tools and Plugins&lt;a class="anchor" href="#tools-and-plugins"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;IntelliJ IDEA&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.jetbrains.com/idea/"&gt;https://www.jetbrains.com/idea/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;The IDE optimized for Kotlin (Community Edition is free)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Android Studio&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://developer.android.com/studio"&gt;https://developer.android.com/studio&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;IDE for Android + Kotlin development&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;detekt&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://detekt.dev/"&gt;https://detekt.dev/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;A static analysis tool for Kotlin&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ktlint&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://pinterest.github.io/ktlint/"&gt;https://pinterest.github.io/ktlint/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;A Kotlin code style formatter&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotest&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotest.io/"&gt;https://kotest.io/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;A Kotlin-native test framework&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MockK&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://mockk.io/"&gt;https://mockk.io/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;A Kotlin-specific mocking library&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Arrow&lt;/td&gt;
 &lt;td&gt;Tools&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://arrow-kt.io/"&gt;https://arrow-kt.io/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;A functional programming library&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="code-quality-and-style-guides"&gt;Code Quality and Style Guides&lt;a class="anchor" href="#code-quality-and-style-guides"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Official Coding Conventions&lt;/td&gt;
 &lt;td&gt;Style Guide&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinlang.org/docs/coding-conventions.html"&gt;https://kotlinlang.org/docs/coding-conventions.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;The official code style guide&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Android Kotlin Style Guide&lt;/td&gt;
 &lt;td&gt;Style Guide&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://developer.android.com/kotlin/style-guide"&gt;https://developer.android.com/kotlin/style-guide&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Google&amp;rsquo;s Android Kotlin style&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;detekt Rules&lt;/td&gt;
 &lt;td&gt;Style Guide&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://detekt.dev/docs/rules/"&gt;https://detekt.dev/docs/rules/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Reference for static-analysis rules&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="gradle-kotlin-dsl"&gt;Gradle Kotlin DSL&lt;a class="anchor" href="#gradle-kotlin-dsl"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Gradle Kotlin DSL Docs&lt;/td&gt;
 &lt;td&gt;Gradle&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://docs.gradle.org/current/userguide/kotlin_dsl.html"&gt;https://docs.gradle.org/current/userguide/kotlin_dsl.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official Gradle Kotlin DSL guide&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gradle Plugin Portal&lt;/td&gt;
 &lt;td&gt;Gradle&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://plugins.gradle.org/"&gt;https://plugins.gradle.org/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Search Gradle plugins&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Migration Guide&lt;/td&gt;
 &lt;td&gt;Gradle&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html"&gt;https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Migrating from Groovy DSL to Kotlin DSL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="community-and-newsletters"&gt;Community and Newsletters&lt;a class="anchor" href="#community-and-newsletters"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Resource&lt;/th&gt;
 &lt;th&gt;Category&lt;/th&gt;
 &lt;th&gt;URL&lt;/th&gt;
 &lt;th&gt;One-line Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Slack&lt;/td&gt;
 &lt;td&gt;Community&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://surveys.jetbrains.com/s3/kotlin-slack-sign-up"&gt;https://surveys.jetbrains.com/s3/kotlin-slack-sign-up&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official Kotlin Slack community&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kotlin Weekly&lt;/td&gt;
 &lt;td&gt;Community&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kotlinweekly.net/"&gt;https://kotlinweekly.net/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Weekly newsletter with Kotlin news and articles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kt.Academy&lt;/td&gt;
 &lt;td&gt;Community&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://kt.academy/"&gt;https://kt.academy/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Kotlin education platform with advanced articles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;This Week in Kotlin&lt;/td&gt;
 &lt;td&gt;Community&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.reddit.com/r/Kotlin/"&gt;https://www.reddit.com/r/Kotlin/&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;The Reddit Kotlin community&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;KotlinConf Talks&lt;/td&gt;
 &lt;td&gt;Community&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.youtube.com/c/Kotlin"&gt;https://www.youtube.com/c/Kotlin&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Official JetBrains YouTube channel&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h4 id="next-steps"&gt;Next Steps&lt;a class="anchor" href="#next-steps"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/concepts/"&gt;Concepts&lt;/a&gt; - Back to core Kotlin concept documents&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/glossary/"&gt;Glossary&lt;/a&gt; - Quick reference for core terms&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/faq/"&gt;FAQ&lt;/a&gt; - Check frequently asked questions&lt;/li&gt;
&lt;li&gt;&lt;a href="https://advanced-beginner.github.io/en/docs/kotlin/appendix/version-comparison/"&gt;Version Comparison&lt;/a&gt; - Understand changes across versions&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>