Kotlin
Modern Android development with Kotlin — null safety, coroutines, flows, Jetpack Compose, and shipping to Google Play.
1,786 lessons·All lessons free
- 1The Kotlin Type Inference Engine
- 2Immutable vs Mutable Variable Semantics
- 3The Null-Safety Type Contract
- 4Explicit vs Implicit Type Casting
- 5Basic Primitive Type Representations
- 6String Templating and Interpolation
- 7Array Initialization and Mutability
- 8Type Aliasing for Readability
- 9The Nothing Type and Early Termination
- 10Unit Return Type Mechanics
- 11Smart Casting and Flow Sensitivity
- 12Primitive Wrapper Boxing Costs
- 13Number Type Promotion Rules
- 14Char Encoding and Unicode Handling
- 15Type Checks via Is and As
- 16Functional Expression-Based Syntax
- 17When as an Expression
- 18Labeled Break and Continue
- 19Range-Based Iteration Patterns
- 20Function Default Arguments
- 21Named Arguments for Clarity
- 22Higher-Order Functions and Lambdas
- 23Infix Notation for DSL-like Syntax
- 24Function References and Method Handles
- 25Tail-Recursive Optimization
- 26Inline Functions for Lambda Overhead
- 27Non-Local Returns in Lambdas
- 28Extension Functions for API Enhancement
- 29Operator Overloading Basics
- 30Extension Properties
- 31Trailing Lambdas and Call Site Readability
- 32Function Composition
- 33Local Functions for Encapsulation
- 34Implicit It Parameters
- 35Vararg Parameters and Spreading
- 36The Any Type and Universal Methods
- 37Destructuring Declarations
- 38Spread Operator for Arrays
- 39When Branch Matching Patterns
- 40The Elvis Operator for Fallbacks
- 41Safe Call Chaining
- 42Non-Null Assertion Operator
- 43Standard Library Scope Functions
- 44The Let Scope Function for Null Handling
- 45The Apply Scope Function for Object Construction
- 46The Also Scope Function for Side Effects
- 47The Run Scope Function for Computations
- 48With Function for Contextual Access
- 49Lazy Initialization
- 50Lateinit Variable Management
- 51Functional Interface (SAM) Conversion
- 52Local Variables Capture in Lambdas
- 53Return Labeled Breaks
- 54Function Parameters Immutability
- 55Generic Function Constraints
- 56Reified Type Parameters
- 57Star Projection in Generics
- 58Declaration Site Variance
- 59Use Site Variance
- 60Functional Collection Iteration
- 61Sequence Lazy Evaluation
- 62Flattening Nested Data
- 63Partitioning and Grouping Data
- 64Chunking and Windowing Collections
- 65Zip and Associate Operations
- 66Comparing and Sorting Collections
- 67Aggregate Operations on Collections
- 68The Fold Operation Mechanics
- 69Zipping Collections of Different Sizes
- 70Sequence vs Iterable Performance
- 71Collection Mutability Patterns
- 72Custom List Implementation
- 73Functional Predicate Composition
- 74Mutable List Swap Logic
- 75Indexed Access to Collections
- 76Read-Only Interfaces
- 77Map Entry Iteration
- 78Mutable Map Default Values
- 79Set Operations and Deduplication
- 80List Transformation and Mapping
- 81Function Currying Patterns
- 82Memoization Techniques
- 83The Pipe Operator Pattern
- 84Exception Handling as Expression
- 85Custom Exception Hierarchy
- 86Resource Management with Use
- 87Suppressed Exception Handling
- 88Logging Interceptors
- 89Verification via Require and Check
- 90Assertion Logic
- 91Standard Output and Logging
- 92Reading Input Streams
- 93File System Path Manipulation
- 94Byte Array Buffer Operations
- 95Character Set Conversion
- 96Network Socket Basics
- 97Time and Duration Utilities
- 98Random Number Generation
- 99Regex Pattern Matching
- 100Formatting Dates and Times
- 101Localization Strings
- 102Platform Version Checks
- 103System Environment Variables
- 104Dependency Inversion Basics
- 105Interface Composition
- 106Sealed Class Hierarchies
- 107Data Class Utilities
- 108Copying Immutable Data Classes
- 109Singleton Pattern via Object
- 110Companion Objects
- 111Inner Classes and Context
- 112Delegation Pattern Native Support
- 113Property Delegation
- 114Observable Properties
- 115Custom Property Delegates
- 116Visibility Modifiers
- 117Open Classes and Inheritance
- 118Abstract Class Contracts
- 119Method Overriding Rules
- 120Sealed Interface Power
- 121Enums and Enum Members
- 122Inline Classes (Value Classes)
- 123Object Expressions
- 124Function Parameter Mutability Constraints
- 125Identity vs Structural Equality
- 126The Hashcode and Equals Contract
- 127Comparable and Comparator Interfaces
- 128Class Hierarchy Initialization
- 129The Init Block
- 130Primary vs Secondary Constructors
- 131Static-like Constants
- 132The Const Keyword Usage
- 133Lateinit Nullable Check
- 134Interface Default Implementations
- 135The Super Keyword Context
- 136Backing Properties
- 137Custom Getters and Setters
- 138Property Visibility Controls
- 139The Property Delegate API
- 140Reflection Basics
- 141Annotation Processors
- 142Unit Testing with JUnit
- 143Mocking Dependencies
- 144Test-Driven Development Workflow
- 145Parameterized Tests
- 146Code Documentation with KDoc
- 147Structuring Multi-Module Projects
- 148Package Namespacing
- 149Source Set Management
- 150Gradle Build Scripts for Kotlin
- 151Incremental Compilation
- 152Compiler Plugins
- 153The Kotlin Standard Library
- 154Interoperability with Java
- 155Handling Platform Types
- 156Migration Strategies