Using the Command Line Tools
Installing the JDK for Kotlin
Installing and Setting Up the IDE: IntelliJ
Installing the Plugins
Getting Started with Basic Kotlin Programming
Learning the Kotlin Architecture
Creating Variables in Kotlin
Understanding the Different Data Types in Kotlin
Using Strings in Kotlin
Understanding Immutability in Kotlin
Implementing Expressions, Statements, and Assignments
Using Nullable Variables in Kotlin for Null Safety
Handling Conditional Program Flow with "if" Statements
Handling Options Using "when" Statements
Exploring Kotlin's Advanced Capabilities for Conditional Statements
Using Arrays and Lists in Kotlin
Implementing Looping Constructs in Kotlin
Creating, Declaring, and Using Functions in Kotlin
Using Parameters and Returning a Value
Using Extension Functions
Using Inline Functions
Using Higher-order Functions
Object-Oriented Programming with Kotlin
Overview of Progamming with Objects
Creating a Class
Adding Methods to Classes
Defining Basic Constructors
Using Named Parameters and Default Values
Using Open Classes to Allow Inheritance
Using Abstract Classes
Creating and Using Interfaces
Handling Overriding
Creating Data Classes
Using Singletons and Companion Objects
Using Enumerations
Grouping Classes into Packages
Using Imports
Implementing Information Hiding
Using Getters and Setters
Implementing Visibility Modifiers
Understanding Generics
Implementing a Generic Stack
Using Generic Functions
Exploring Kotlin's Interoparibility with Java
Using Java from Kotlin
Using Kotlin from Java
Exploring Kotlin's Advanced Features
Understanding Operator Overloading
Using Annotations
Using Reflection
Implementing DSL Construction
Implementing Destructuring
Using Kotlin for Functional Programming
Hands-on: Converting an Android App from Java to Kotlin
Using Android Studio
Starting a New Project with Kotlin
Converting Existing Java Code to Kotlin
Using Android APIs with Kotlin
Troubleshooting