Course Outline
Introduction
Kotlin Basics Refresher
Utilizing Advanced Functions in Kotlin
- Reusing functionality via nested functions in Kotlin.
- Calling functions using infix notation in Kotlin.
- Declaring anonymous functions in Kotlin.
- Leveraging the inline modifier for enhanced efficiency in Kotlin.
- Implementing regular and local returns when working with advanced functions in Kotlin.
- Implementing tail recursion for optimization in Kotlin.
- Applying operator overloading in Kotlin.
- Using lambdas with receivers to establish DSL constraints in Kotlin.
- Invoking instances in Kotlin.
- Employing functional constructs in Kotlin
- Function composition.
- Currying.
- Other constructs.
- Summary of advanced functional aspects in Kotlin.
Exploring Class Scenarios in Kotlin
- Implementing fields in Kotlin.
- Utilizing the "lateinit" modifier in Kotlin.
- Understanding nested and inner classes in Kotlin.
- Defining "static methods" in Kotlin through companion objects.
- Hiding class constructors in Kotlin.
- Marking classes as sealed in Kotlin.
- Using type aliases in Kotlin.
- Summary of advanced features for classes in Kotlin.
Implementing Delegation in Kotlin
- Understanding member delegation in Kotlin.
- Delegating member functions to another class in Kotlin.
- Delegating properties in Kotlin for improved code reuse efficiency.
- Utilizing built-in delegated properties in Kotlin.
- Delegating local properties in Kotlin to enhance code reuse.
- Implementing extension properties in classes in Kotlin.
- Summary of the various aspects of delegation in Kotlin.
Gaining an In-Depth Understanding of Generics in Kotlin
- Understanding generic constraints.
- Understanding variance and invariance in generics.
- Using the "out" modifier to express covariance in generics in Kotlin.
- Expressing contravariance in Kotlin.
- Exploring type projections and star projections in Kotlin.
- Summary of advanced generics in Kotlin.
Metaprogramming in Kotlin
- Overview of reflection.
- Using Java reflection with Kotlin via the Reflection API.
- Utilizing Kotlin's Reflection API.
- Handling type erasure in Kotlin.
- Using reified generics in Kotlin.
- Defining custom annotations in Kotlin.
- Summary of metaprogramming and introspection techniques in Kotlin.
Performing Asynchronous Programming in Kotlin
- Understanding the challenges of asynchronous programming.
- Implementing asynchronous programming and coroutines in Kotlin.
- Implementing async and await in Kotlin using coroutines.
- Implementing yield in Kotlin.
- Understanding the advantages of coroutines over reactive extensions.
- Summary of coroutines in Kotlin.
Summary and Conclusion
Requirements
- A solid understanding of Kotlin fundamentals.
Audience
- Developers seeking to deepen their knowledge of Kotlin programming.
Testimonials (7)
As a Senior Java Engineer and Kotlin novice, I feel the course has given me the tools to start using Kotlin properly for future development projects.
Stewart Coates - DLA PIPER
Course - Advanced Kotlin Programming
Intensity of a course, coverage of topics. Complicated topics are explained on a good level, so even though there are some white spots left in of them (like DSL) -- it won't be hard to go on by myself as I already have a common understanding of basis and at least know how to form my questions to Google.
Alexey Baryshnev - C.T.Co SIA
Course - Advanced Kotlin Programming
A format - lot of new info, but it felt pretty understandable and comfortable to learn, most of it I managed to remember and use when necessary at the next topics.
Alina Karpovich - C.T.Co SIA
Course - Advanced Kotlin Programming
Trainer competence, wide subject knowledge. I have learned a lot new stuff, received valuable comments and answers to my questions.
Ilya Ginter - C.T.Co SIA
Course - Advanced Kotlin Programming
live communication and good answers to questions
Alexander Semyonov - C.T.Co SIA
Course - Advanced Kotlin Programming
Execute exercises in mode online, it is cool. Fast answer about additional questions
Oleg Sushik - C.T.Co SIA
Course - Advanced Kotlin Programming
Positive approach