Kotlin v1.7.21
- Get started with Kotlin
- Learn Kotlin fundamentals
- Install Kotlin
- Create your powerful application with Kotlin
- Kotlin Overview
- Kotlin Multiplatform
- Kotlin for server side
- Kotlin for Android
- Kotlin for JavaScript
- Kotlin Native
- Kotlin for data science
- Kotlin for competitive programming
- Basics
- Basic syntax
- Idioms
- Kotlin by Examples
- Coding conventions
- Package definition and imports
- Program entry point
- Print to the standard output
- Functions
- Variables
- Creating classes and instances
- Comments
- String templates
- Conditional expressions
- for loop
- while loop
- when expression
- Ranges
- Collections
- Nullable values and null checks
- Type checks and automatic casts
- Create DTOs (POJOs/POCOs)
- Default values for function parameters
- Filter a list
- Check the presence of an element in a collection
- String interpolation
- Instance checks
- Read-only list
- Read-only map
- Access a map entry
- Traverse a map or a list of pairs
- Iterate over a range
- Lazy property
- Extension functions
- Create a singleton
- Instantiate an abstract class
- If-not-null shorthand
- If-not-null-else shorthand
- Execute a statement if null
- Get first item of a possibly empty collection
- Execute if not null
- Map nullable value if not null
- Return on when statement
- try-catch expression
- if expression
- Builder-style usage of methods that return Unit
- Single-expression functions
- Call multiple methods on an object instance (with)
- Configure properties of an object (apply)
- Java 7's try-with-resources
- Generic function that requires the generic type information
- Nullable Boolean
- Swap two variables
- Mark code as incomplete (TODO)
- Configure style in IDE
- Source code organization
- Naming rules
- Formatting
- Documentation comments
- Avoid redundant constructs
- Idiomatic use of language features
- Coding conventions for libraries
- Concepts
- Types
- Basic Types
- Numbers
- Booleans
- Characters
- Strings
- Arrays
- Unsigned integer types
- Type checks and casts
- Control Flow
- Conditions and loops
- Returns and jumps
- Exceptions
- Packages and imports
- Classes and Objects
- Classes
- Inheritance
- Properties
- Interfaces
- Functional (SAM) interfaces
- Visibility modifiers
- Extensions
- Data classes
- Sealed classes
- Generics: in, out, where
- Nested and inner classes
- Enum classes
- Inline classes
- Object expressions and declarations
- Delegation
- Delegated properties
- Type aliases
- Functions
- Functions
- High-order functions and lambdas
- Inline functions
- Operator overloading
- Type-safe builders
- Using builders with builder type inference
- Null Safety
- Equality
- This expressions
- Asynchronous programming techniques
- Coroutines
- Annotations
- Destructuring declarations
- Reflection
- Standart Library
- Collections
- Collections overview
- Constructing collections
- Iterators
- Ranges and progressions
- Sequences
- Collection operations overview
- Collection transformation operations
- Filtering collections
- Plus and minus operators
- Grouping
- Retrieve collection parts
- Retrieve single elements
- Ordering
- Aggregate operations
- Collection write operations
- List-specific operations
- Set-specific operations
- Map-specific operations
- Scope functions
- let
- run
- run2
- with
- apply
- also
- Opt-in requirements
- Official Libraries
- Coroutine
- Coroutines guide
- Coroutines basics
- Coroutines and channels − tutorial
- Cancellation and timeouts
- Composing suspending functions
- Coroutine context and dispatchers
- Asynchronous Flow
- Channels
- Coroutine exceptions handling
- Shared mutable state and concurrency
- Select expression (experimental)
- Debug coroutines using IntelliJ IDEA – tutoria
- Debug Kotlin Flow using IntelliJ IDEA – tutorial
- Serialization
- Lint Check
- Lincheck guide
- Write your first test with Lincheck
- Stress testing and model checking
- Operation arguments
- Modular testing
- Data structure constraints
- Progress guarantees
- Sequential specification
- Language Reference
- Keywords and operators
- Grammar
- Language Spesification
- Tools
- Build Tools
- Gradle
- Maven
- Ant
- IDEs for Kotlin development
- Migrate to Kotlin code style
- Run code snippets
- Compiler
- Kotlin command-line compiler
- Kotlin compiler options
- Compiler Plugins
- All-open compiler plugin
- No-arg compiler plugin
- SAM-with-receiver compiler plugin
- Using kapt
- Lombok compiler plugin