🏆 #1 Best Seller on Leanpub

Manifest Android Interview

This book deep dives into Android & Compose and is a comprehensive development book designed for engineers who want to strengthen and refresh their Android & Compose fundamentals, explore internals, and excel in technical interviews.

You'll find end-to-end coverage across the Android Framework, UI architecture, Jetpack libraries, and business logic. The book includes a deep dive into Jetpack Compose from fundamentals to runtime behavior, internal mechanics, and modern UI patterns.

Whether you're preparing for an Android interview, mastering Jetpack Compose internals, or seeking a deep dive into Android development, this book is a complete roadmap to advancing your career.

Manifest Android Interview Book Cover
465
Pages
108
Interview Questions
162
Practical Exercises
50+
Pro Tips

Jaewoong Eum (skydoves)

Senior Developer Advocate & Engineer at RevenueCat

Jaewoong Eum

This is Jaewoong Eum (known as skydoves), a Google Developer Expert (GDE) for Android, Kotlin, and Firebase. I've created over 80 open-source libraries and projects, which collectively achieve more than 15 million downloads annually by developers worldwide. I'm also the founder of Dove Letter, a subscription-based repository focused on sharing, learning, and discussing topics across Android and Kotlin development.

With a mission to make the world a better place and create a positive impact through technical solutions, open-source contributions, and technical content, I believe this book marks an exciting new chapter in this journey. I want to express my deepest gratitude to the developer communities, friends, and family who have supported me along the way. Writing this book is not just a milestone; it's the first step toward empowering others in the Android ecosystem.

Learning is a continuous path, and every challenge overcome brings you closer to mastering your craft. Whether you're preparing for your next technical interview or striving to level up as a developer, I encourage you to go beyond implementation. Understand the why, explore different patterns and trade-offs, and keep learning with curiosity and passion.

As always, happy coding, and best of luck on your Android journey!

Everything You Need to Succeed

Master Android development and ace your technical interviews with comprehensive coverage

📖

Interview Questions with Detailed Explanation

Each question includes step-by-step explanations clarifying both the "what" and "why" of concepts, helping you build deep understanding beyond surface-level knowledge. You won't just memorize answers, you'll understand the reasoning behind them.

💡

Pro Tips for Mastery

50+ advanced "Pro Tips" sections that go beyond basic interview prep. These sections reveal internal API implementations, share insights from real-world experience, and explain how things actually work beneath the surface, giving you the edge in technical discussions.

🎯

Practical Questions

162 follow-up "Practical Questions" designed to simulate real interview scenarios. These questions encourage independent exploration and critical thinking, helping you prepare for the unpredictable nature of technical interviews.

📚

Additional Resources and References

Each topic includes curated references for further learning, plain-language footnotes explaining complex internals, and links to official documentation and community resources, making advanced concepts accessible to developers at all levels.

See What's Inside

High-quality content with clear explanations and practical examples

Book Content Preview - Interview Question
Book Content Preview - Compose Explanation
Book Content Preview - Pro Tips

Interview Questions

Comprehensive coverage of Android Framework and Jetpack Compose

Chapter 0

Android Interview Questions

Category 0 The Android Framework
Category 1 Android UI
Category 2 Jetpack Library
Category 3 Business Logic

Chapter 1

Jetpack Compose Interview Questions

Category 0 Compose Fundamentals
Category 1 Compose Runtime
Category 2 Compose UI

What Developers Are Saying

"Manifest Android Interview stands as an essential guide for Android developers tackling theory-heavy technical interviews. It seamlessly blends deep technical insights, practical examples, and thoughtful 'Pro Tips for Mastery' sections. The knowledge in this book makes it an invaluable resource for confidently navigating and succeeding in Android interviews."

Manuel Vivo

Manuel Vivo

Staff Android Engineer @ Bumble

Ex Android DevRel @ Google

@manuelvicnt

"Jaewoong (known to many of us in the Android community as skydoves), and his new book 'Manifest Android Interview,' are a must-have for anyone getting ready for an interview, or just wanting to brush up on their Android skills. It's an extensive, detailed, and well-structured resource that contains everything from the basics to the nitty-gritty of the Compose runtime and UI. Being biased, I was especially focused on the Jetpack Compose part and found it to be super helpful, particularly for interview prep. It consistently answers the tough and practical 'whys' and 'hows' to help you learn and improve your problem-solving, in a way that is very similar to content in real interviews. Whether you're new to Compose or getting ready for an interview, this book will certainly boost your Android knowledge and interview confidence."

Simona Milanovic

Simona Milanovic

Senior Android Developer Relations Engineer

@anomiss

"Guided by thoughtfully crafted questions, insightful tips, and clear code samples, Manifest Android Interview helps you not only reinforce core Android concepts (e.g. manifest file, lifecycle, intent, service, content providers, broadcast receivers, deep links) but also explore every aspect of building software for Android, from ViewModel to the View system to Jetpack Compose and all in between. No matter your level of expertise, this book offers something for everyone. If you're preparing for your dream role or simply expanding your expertise in the platform we all love, this resource will be an invaluable companion on your journey."

Alejandra Stamato

Alejandra Stamato

Lead Android Engineer @ HubSpot

Ex Android DevRel @ Google

@AleStamato

"Manifest Android Interview is perfect for brushing up on fundamentals, preparing for interviews, and revisiting best practices. Its clear structure, searchable format, and thoughtful questions make it a go-to resource for both learning and revisiting core Android concepts."

Matt McKenna

Matt McKenna

Senior Android Engineer @ Block

Android GDE

@mattmckenna

Shoutouts & Community Reviews

See what the Android community is saying about the book

Jorge Castillo Tweet
Manuel Vivo Post
Amazon #1 New Release
Amazon Review
Amazon Review 2
Leanpub Review
LinkedIn Post
Twitter Feedback
Discord Feedback
Amazon Review - Mandatory for Android developers

Available Everywhere

Choose your preferred format and platform

Available in Multiple Languages

Translated editions for the global Android developer community

Proudly Supported By

Table of Contents

Preface

  • Testimonial
  • Manuel Vivo (Staff Android Engineer at Bumble, Ex Android DevRel at Google)
  • Matt McKenna (Senior Android Engineer at Block, Android GDE)
  • Alejandra Stamato (Lead Android Engineer at HubSpot, Ex Android DevRel at Google)
  • Simona Milanovic (Senior Android Developer Relations Engineer)
  • About This Book
  • To. Interviewees
  • To. Interviewers
  • Sponsors
  • Stream
  • Issue Reports & Discussion

0. Android Interview Questions

Category 0: The Android Framework

  • Q) 0. What is Android?
  • Q) 1. What is Intent?
  • Q) 2. What is the purpose of Pending Intent?
  • Q) 3. What are the differences between Serializable and Parcelable
  • Q) 4. What is Context and what types of Context exist?
  • Q) 5. What is Application class?
  • Q) 6. What is the purpose of the AndroidManifest file?
  • Q) 7. Describe the Activity lifecycle
  • Q) 8. Describe the Fragment lifecycle
  • Q) 9. What is Service?
  • Q) 10. What is BroadcastReceiver?
  • Q) 11. What is the purpose of a ContentProvider, and how does it facilitate secure data sharing between applications?
  • Q) 12. How to handle configuration changes?
  • Q) 13. How Android handles memory management, and how do you avoid memory leaks?
  • Q) 14. What are the main causes of ANR errors, and how can you prevent them from occurring?
  • Q) 15. How do you handle deep links?
  • Q) 16. What are tasks and back stack?
  • Q) 17. What's the purpose of Bundle?
  • Q) 18. How do you pass data between Activities or Fragments
  • Q) 19. What happens to an Activity during configuration changes?
  • Q) 20. What is ActivityManager?
  • Q) 21. What are the advantages of using SparseArray
  • Q) 22. How do you handle runtime permissions?
  • Q) 23. What are the roles of Looper, Handler, and HandlerThread?
  • Q) 24. How do you trace exceptions?
  • Q) 25. What are build variants and flavors?
  • Q) 26. How do you ensure accessibility?
  • Q) 27. What is the Android file system?
  • Q) 28. What are Android Runtime (ART), Dalvik, and Dex Compiler?
  • Q) 29. What are the differences between the APK file and the AAB file?
  • Q) 30. What is R8 optimization?
  • Q) 31. How do you reduce application sizes?
  • Q) 32. What is a process in Android applications, and how does the Android operating system manage it?

Category 1: Android UI - Views

  • Q) 33. Describe the View lifecycle
  • Q) 34. What's the difference between View and ViewGroup?
  • Q) 35. Have you ever used ViewStub and how do you optimize UI performance using it?
  • Q) 36. How to implement custom views?
  • Q) 37. What is Canvas and how to utilize it?
  • Q) 38. What is the invalidation in the View system?
  • Q) 39. What is ConstraintLayout?
  • Q) 40. When should you use SurfaceView instead of TextureView?
  • Q) 41. How does RecyclerView work internally?
  • Q) 42. What's the difference between Dp and Sp?
  • Q) 43. What is the use of a nine-patch image?
  • Q) 44. What is a Drawable, and how is it used in UI development?
  • Q) 45. What is Bitmap on Android, and how would you handle large Bitmaps efficiently?
  • Q) 46. How do you implement animations?
  • Q) 47. What is the Window?
  • Q) 48. How do you render a web page?

Category 2: Jetpack Library

  • Q) 49. What is the AppCompat library?
  • Q) 50. What is the Material Design Components (MDC)?
  • Q) 51. What is the advantages of using ViewBinding?
  • Q) 52. How DataBinding works?
  • Q) 53. What is LiveData?
  • Q) 54. What is Jetpack ViewModel?
  • Q) 55. What is the Jetpack Navigation Library?
  • Q) 56: What are Dagger 2 and Hilt?
  • Q) 57. What is the Jetpack Paging library?
  • Q) 58. What is Baseline Profile?

Category 3: Business Logic

  • Q) 59. How would you manage long-running background tasks?
  • Q) 60. How do you serialize Json format to object
  • Q) 61. How do you handle network requests to fetch data, and which libraries or techniques do you use for efficiency and reliability?
  • Q) 62. Why is a paging system essential for loading large datasets, and how can it be implemented with RecyclerView?
  • Q) 63. How do you fetch and render images from the network?
  • Q) 64. How do you store and persist data locally?
  • Q) 65. How do you handle offline-first features?
  • Q) 66. Where do you launch tasks for loading the initial data? LaunchedEffect vs. ViewModel.init()

1. Jetpack Compose Interview Questions

Category 0: Compose Fundamentals

  • Q) 0. What is the structure of Jetpack Compose?
  • Q) 1. What are the Compose phases?
  • Q) 2. Why is Jetpack Compose a declarative UI framework?
  • Q) 3. What is recomposition, and when does it occur? Also, how does it related to the app performance?
  • Q) 4. How the composable function works internally?
  • Q) 5. What is stability in Jetpack Compose, and how does it relate to performance?
  • Q) 6. Have you ever had experience optimizing Compose performance by improving stabilities?
  • Q) 7. What is composition and how to create it?
  • Q) 8. What strategies are available for migrating the XML-based project to Jetpack Compose?
  • Q) 9. Why should you always test Compose performance in release mode?
  • Q) 10. What Kotlin idioms frequrently used in Jetpack Compose?

Category 1: Compose Runtime

  • Q) 11. What is State and which APIs are used to manage it?
  • Q) 12. What are the advantages you can take from the state hoisting?
  • Q) 13. What are the differences between remember and rememberSaveable?
  • Q) 14. How do you safely create a coroutine scope within composable functions?
  • Q) 15. How do you handle side effects inside composable functions?
  • Q) 16. What is the purpose of rememberUpdatedState, and how does it work?
  • Q) 17. What is the purpose of produceState, and how does it work?
  • Q) 18. What is snapshotFlow and how does it work?
  • Q) 19. What is the purpose of derivedStateOf, and how does it help optimize recomposition?
  • Q) 20. What's the lifecycle of composable functions or Composition?
  • Q) 21. What is SaveableStateHolder?
  • Q) 22. What's the purpose of the snapshot system?
  • Q) 23. What are the mutableStateListOf and mutableStateMapOf?
  • Q) 24. How can you safely collect Kotlin's Flow in composable functions while preventing memory leaks?
  • Q) 25. What's the role of the CompositionLocals?

Category 2: Compose UI

  • Q) 26. What's Modifier?
  • Q) 27. What is Layout?
  • Q) 28. What is Box?
  • Q) 29. What are the differences between Arrangement and Alignment?
  • Q) 30. What is Painter?
  • Q) 31. How do you load images from the network?
  • Q) 32. How can you efficiently render hundreds of items as a list in while avoiding UI jank?
  • Q) 33. How do you implement pagination with lazy lists?
  • Q) 34. What is Canvas?
  • Q) 35. Have you ever utilized graphicsLayer Modifier?
  • Q) 36. How do you implement visual animations in Jetpack Compose?
  • Q) 37. How do you navigate between screens?
  • Q) 38. How preview works and how do you handle them?
  • Q) 39. How do you write unit tests for Compose UI components or screens?
  • Q) 40. What is screenshot testing, and how does it help ensure UI consistency during development?
  • Q) 41. How do you ensure accessibility in Jetpack Compose?

Timeline & Milestones

2025.10.31
2,200 copies sold
2025.10.13
1,800 copies sold
2025.09.11
Japanese edition published
2025.08.12
1,500 copies sold
2025.07.26
1,300 copies sold; Ukrainian edition published
2025.07.22
Indonesian edition published
2025.07.12
Chinese edition published
2025.07.02
v1.6 released
2025.06.28
1,000 copies sold
2025.06.24
India Paperback edition (Shroff Publishers) published
2025.06.18
Korean edition published
2025.06.12
German edition published
2025.06.10
Spanish edition published
2025.06.05
Amazon editions (Kindle, Hardcover, Paperback) published
2025.06.01
Kotlin Weekly joined as newsletter sponsor
2025.05.01
Stream joined as major sponsor
2025.04.19
Ranked #1 on Leanpub
2025.04.15
First edition published