Preface
Testimonial
About This Book
- Who This Book Is For
- What This Book Covers
- How to Use This Book
- Staying Current
- Issue Reports
Sponsors
- CodeRabbit
Chapter 0. Kotlin Language
- Q) 0. Explain the null safety in Kotlin
- Q) 1. What are the primary roles of the Any, Unit, and Nothing types?
- Q) 2. What is a data class, and how does it differ from a regular class?
- Q) 3. What is a sealed class and explain the use cases
- Q) 4. What is an inner class and what are the differences from a nested class?
- Q) 5. When do you use an enum class?
- Q) 6. What is a value class?
- Q) 7. What is an object and what are the differences from a regular class?
- Q) 8. What is a companion object?
- Q) 9. What are the differences between var and val?
- Q) 10. What are the differences between backing fields and backing properties?
- Q) 11. What’s a delegated property?
- Q) 12. What are the differences between the lazy delegate and lateinit?
- Q) 13. What visibility modifiers exist?
- Q) 14. When is the init block invoked, and what are its key characteristics?
- Q) 15. What is the higher-order function, and what advantages can you take?
- Q) 16. What are the benefits and limitations of an inline keyword?
- Q) 17. What’s a reified keyword, and what are the benefits of using it?
- Q) 18. How do you use a lambda expression?
- Q) 19. What are functional (SAM) interfaces?
- Q) 20. What’s extension, and what are its pros and cons?
- Q) 21. What are structural equality and referential equality, and how do they differ?
- Q) 22. What happens when you run null + null operation?
- Q) 23. What is DSL and how can it be utilized?
Chapter 1. Kotlin Standard Library
- Q) 24. What collection types exist in Kotlin?
- Q) 25. What types of transformation operators are available for collections?
- Q) 26. Explain the mechanisms of Iterators
- Q) 27. What is a Sequence and its mechanism?
- Q) 28. What types of extension functions are available for retrieving parts of a collection?
- Q) 29. How do you define the ordering of objects?
- Q) 30. What are the scope functions?
Chapter 2. Coroutines
- Q) 31. What are Coroutines?
- Q) 32. What is a Continuation, and how is it related to a suspend function internally?
- Q) 33. What are the differences between coroutines and threads?
- Q) 34. What are coroutine builders?
- Q) 35. What is a coroutine context?
- Q) 36. What is the role of a Job?
- Q) 37. What is the purpose of a coroutine scope?
- Q) 38. What kind of coroutine dispatchers exist, and what’s their purpose?
- Q) 39. What are channels and how do they work?
- Q) 40. What are the join() and yield() functions?
- Q) 41. How do you handle exceptions in coroutines?
- Q) 42. What are the differences between cold flow and hot flow?
- Q) 43. Explain the differences between StateFlow and SharedFlow
- Q) 44. What does the Flow.flowOn() operator do?
- Q) 45. How Flow.buffer() operator works?
- Q) 46. How Kotlin’s internal mechanisms optimize Flow with FusibleFlow and ChannelFlow
- Q) 47. What are the differences between launchIn(Scope) and Scope.launch()?
- Q) 48. What are Flow transformation operators: flatMapLatest, flatMapMerge, flatMapConcat?
- Q) 49. What are callbackFlow and channelFlow, and their internal mechanisms?
Chapter 3. KotlinX Libraries
- Q) 50. What is kotlinx-serialization and how does it work?
- Q) 51. What is kotlinx-datetime and why use it over Java time APIs?
- Q) 52. What is kotlinx-collections-immutable and when should you use it?
- Q) 53. What other notable KotlinX libraries exist?
Chapter 4. Kotlin Compiler and Plugins
- Q) 54. What are annotation processors, KAPT, and KSP?
- Q) 55. What is the structure of the Kotlin Compiler?
- Q) 56. What is the K2 compiler?
- Q) 57. What is FIR (Frontend Intermediate Representation)?
- Q) 58. What is IR and how does the Kotlin backend work?
- Q) 59. How do you write a Kotlin Compiler Plugin?
- Q) 60. What are some real-world Kotlin compiler plugin examples and use cases?
Chapter 5: Kotlin Multiplatform
- Q) 61. What is Kotlin Multiplatform?
- Q) 62. How does Kotlin Multiplatform handle platform-specific APIs and share the common codes?
- Q) 63. What strategies are available for concurrency or asynchronous programming in Kotlin Multiplatform?
- Q) 64. What strategies are available for HTTP network communication in Kotlin Multiplatform?
- Q) 65. What is Compose Multiplatform?
- Q) 66. How are source sets structured in a Kotlin Multiplatform project?
- Q) 67. How does Kotlin/Native handle memory management and platform interoperability?
- Q) 68. What are the testing strategies in Kotlin Multiplatform?
- Q) 69. What are the dependency injection strategies in Kotlin Multiplatform?




