Course Outline
Introduction
Review of Kotlin Basics
Leveraging Advanced Functions in Kotlin
- Utilizing Nested Functions to Reuse Functionality in Kotlin
- Applying Infix Notation to Call Functions in Kotlin
- Declaring Anonymous Functions in Kotlin
- Employing the Inline Modifier for Efficiency in Kotlin
- Managing Returns 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 Constraints on DSLs in Kotlin
- Invoking Instances in Kotlin
- Utilizing Functional Constructs in Kotlin
- Function Composition
- Currying
- Other Constructs
- Overview of Advanced Functional Aspects of Kotlin
Exploring Class Scenarios in Kotlin
- Implementing Fields in Kotlin
- Applying the "lateinit" Modifier in Kotlin
- Comprehending Nested and Inner Classes in Kotlin
- Defining "Static Methods" in Kotlin Using Companion Objects
- Hiding Class Constructors in Kotlin
- Sealing Classes in Kotlin
- Utilizing Type Aliases in Kotlin
- Summary of Advanced Features of Kotlin for Classes
Implementing Delegation in Kotlin
- Understanding Member Delegation Concepts in Kotlin
- Delegating Member Functions to Another Class in Kotlin
- Leveraging Delegated Properties in Kotlin for Code Reuse Efficiency
- Utilizing Built-in Delegated Properties in Kotlin
- Delegating Local Properties in Kotlin for Code Reuse
- Implementing Extension Properties in Classes in Kotlin
- Summary of the Different Aspects of Delegation in Kotlin
Gaining an In-Depth Understanding of Generics in Kotlin
- Understanding Generic Constraints
- Comprehending 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
- Managing Type Erasure in Kotlin
- Applying 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
- Executing Async and Await in Kotlin Using Coroutines
- Implementing Yield in Kotlin
- Recognizing the Advantages of Coroutines Over Reactive Extensions
- Summary of Coroutines in Kotlin
Summary and Conclusion
Requirements
- Familiarity with Kotlin fundamentals.
Target Audience
- Developers seeking to deepen their expertise in 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