Kotlin Programming Tutorial for Beginners
Learn Kotlin from scratch
Topics to be covered
- Overview
- Course introduction, prequisites and software required
- Installation
- Install required softwares for Windows, MAC and Linux ( Ubuntu )
- Getting Started with Kotlin Programming
- Run your first app in Kotlin
- Exploring Data Types and Variables
- Data Types and Variables
- String, Literals and String Interpolation
- Comments
- Constants, Variables and Data Types
- Control Flow Statements
- IF ELSE
- IF Expressions
- WHEN Expressions
- Loop Control Statements
- What are Iterators?
- FOR Loop and how it works
- WHILE Loop
- DO WHILE Loop
- BREAK statements
- CONTINUE keyword
- Labelled FOR Loop
- Functions and Interoperability
- Declaring functions
- Interoperability with Java code
- Function as Expressions
- Extension Functions
- Infix Functions
- Default Parameters
- Named Parameters
- Tailrec Functions
- Object Oriented Programming in Kotlin
- Defining Class and creating Objects
- INIT block
- Primary and Secondary Constructors
- Properties ( Field variables )
- Inheritance
- Method and Property Overriding
- Polymorphism
- Abstract Class, Property and Method
- Interface
- Data Class
- Object Declaration
- Companion Object
- Functional Programming in Koltin
- Lambdas
- Higher-Order Functions
- Closures
- 'it' keyword
- 'with' function
- 'apply' function
- Collections in Kotlin
- Arrays
- List
- Map and HashMap
- Set and HashSet
- Sorting and Filtering
- "filter" function
- "map" function
- Predicates: all, any, find, count.
- Kotlin NULL Safety
- Safe call
- with Let
- Elvis
- Lateinit keyword
- Lazy delegation and 'lateinit' vs. 'lazy'
- Scope Functions
- with
- apply
- let
- also
- run
- Coroutines
- What are Coroutines? How are they related to Threads?
- launch, async, runBlocking, withContext, withTimeoutOrNull,
- Suspending function
- Cancellation and Timeouts
- Cooperative suspending functions and isActive flag
- Exception Handling in Coroutines
- Sequential execution of suspending function in Coroutines
- Concurrency within Coroutine
- lazy 'async'
- CoroutineScope and CoroutineContext
- Dispacthers: Confined dispatcher, Default Dispatcher, and Unconfined Displatcher
- Conclusion