.png)
.png)
Kotlin
- Difference Between const val and val? 
- What is Data Class in Kotlin? 
- What are the different Coroutine Scopes? 
- How to manage series and parallel execution? 
- Difference between Flow/SharedFlow/StateFlow and elaborate it. 
- What happens if we call - .cancel()from a coroutine scope?
- What is an Init block in Kotlin? 
- How to choose between apply and with? 
- What is inline function in Kotlin? 
- Difference between Coroutine and Java Thread 
- Why Coroutines are light weight? 
- How does Coroutine switch context? 
- When to use Kotlin sealed classes? 
- Suspending vs Blocking in Kotlin Coroutines 
- What are Dispatchers and Name all of them 
- On which thread Dispatchers .Default execute the task or use which thread? 
- Dispatchers .Default vs Dispatcher .IO 
- What is SupervisorScope? 
- Exception Handling in Coroutine 
- Map vs FlatMap in kotlin 
- Singleton Pattern in Kotlin with object keyword 
- Collections API in Kotlin 
- What is Unidirectional Flow 
- StateFlow vs SharedFlow 
- Builder Pattern in Kotlin 
- Higher Order Functions in Kotlin 
- Covariance in Kotlin 
- Delay vs Thread.sleep? 
- Is singleton thread-safe? vs Object? 
Android
- How does Garbage collection works? 
- What is a dangling pointer? 
- Elaborate Memory Leak? 
- Explain fragment Lifecycle when it comes to ViewPager and sliding between different fragments. 
- Difference between FragmentStateAdapter and FragmentStatePagerAdapter. 
- Difference between Serializable and Parcelable? What are the disadvantages of Serializable? 
- How you could implement observable SharedPrefs or observable Databases i.e. Observe a certain key/table/query? 
- How does layout inflation work from xml tags to view references in memory? 
- What is a Thread, Handler, Looper, and Message Queue? 
- What are the different methods of concurrency on Android? Can you explain the difference between ExecutorService vs CachedThreadPool vs FixedThreadPool vs AsyncTasks vs HandlerThreads? 
- How does - ViewModelinstance provide to Activity and Fragment? How does- ViewModelProviderStoredecide when to retain the instance?
- How do you inspect and solve the Jank issue? 
- How does the OutOfMemory happen? 
- How do you find memory leaks in Android applications? 
- What is Doze? What about App Standby? 
- What does - setContentViewdo?
- Process of creating a custom view 
- Deeplink understanding and architecture 
- Notifications 
- Difference between Fragment Lifecycle Observer and View Lifecycle Observer. 
- When should you use a Fragment rather than an Activity? 
- Explain the Android push notification system. 
- How LiveData is different from ObservableField? 
- What is the difference between setValue and postValue in LiveData? 
- What is process death? 
- What is ViewModelScope and How does it work internally? 
Lifecycle
- How to keep a video maintain a playing state when we rotate the screen? 
- How many callbacks are in Fragments? 
- What could be the reasons why - onPausedidn't get triggered?
- What kind of events trigger - onPause()to run?
- In what scenario does the "onDestory" get called directly after "onCreate"? 
- Which callback gets called on Activity when an AlertDialog is shown? 
- What's the lifecycle in PIP (Picture-in-Picture)? 
- What happens if you rotate the device? 
- Inside a viewpager (Fragment state pager adapter) what will be the lifecycle of the fragments when you swap from one tab to another? 
- Why onActivityCreated is now depreciated in Fragment? 
- Which callback should I use if I want to know when my activity came to the foreground? 
- When is onActivityResult called? 
- What does setRetainInstance do and how you can avoid it? 
- What callbacks trigger when a Dialog opens up? In both cases, the dialog is attached from the same activity/fragment and another activity/fragment. 
- What do - launchWhenCreated,- launchWhenStarted, and- launchWhenResumedfunctions do?
- Fragment Callbacks when moving from one fragment to another and coming back to prev one? 
- Does onCreateView get called after coming to a fragment from top fragment? 
- When does ViewModel not survive? 
Networking
- What is the role of OkHttp and Retrofit? 
- What design pattern does Retrofit use? 
- How would optimize the handling of access token expiration? How would you handle a retry network call when the API fails? (Custom Interceptor response) 
WebView
- What are the problems around security when dealing with - WebView?
- How to interact or make connections with JavaScript? 
Dependency Injection
- Provides vs binds 
- Subcomponent vs. component dependency, what is the difference under the hood 
- What is a subcomponent and what is its use? How do you use qualifiers or how would you provide different instances of a class with the same data type? Constructor Injection V/s Method Injection? What is the scope? Singleton Annotation? 
- What is Circular dependency in dagger? and how to resolve it 
- What's interesting about Hilt? 
- Did you use Koin? What are your thoughts on it? 
Jetpack Compose
- How to launch a coroutine from a composable function? 
- How to launch a coroutine from a non-composable function, but tied to composition? 
- What is recomposition? 
- What is - rememberin Jetpack Compose?
- Why and when to use - remember {}?
- Difference between - LazyColumnand- RecyclerView?
- What is AndroidView in compose? 
- What is the lifecycle of composeables? Lifecycle 
- How to avoid recomposition of any composable, if the state is not changed? Smart Recomposition 
- What are stable types that can skip recomposition? 
- What is State? 
- What is MutableState and how does recomposition happen? 
- How to retain State across recomposition and configuration changes? 
- Difference between Stateless and Stateful composeables? 
- What are your thoughts on flat hierarchy, constraint Layout in compose vs. the older view hierarchy in xml 
- Difference b/w remember and LaunchedEffect 
- Does re-composition of - ComposeItem1bring any effect on- ComposeItem2? If yes, then how?- ComposeParent() { ComposeItem1 {} ComposeItem2() {...} }
- What is - CompositionLocal?
 
- Custom views in compose 
- Canvas in Compose 
- What are the benefits of Jetpack Compose? 
- How does Jetpack Compose integrate with existing Android frameworks and libraries? 
- What are the best practices for performance optimization in Jetpack Compose? 
- How is navigation handled in Jetpack Compose? 
- What is Strong Skipping Mode? 
Thread
- Different types of threads? 
- Difference between different types of thread? 
- Thread <-> Handler <-> looper 
- UI vs Background Thread 
- How do you know when some process if blocking a UI thread? 
Architecture
- What are SOLID principles? 
- What is MVVM? 
- Brief about Android Architecture. 
- MVP vs MVVM? 
- Is there any issue in the Presenter in the MVP? 
- Clean Architecture 
- MVVM vs MVI 
- What is Clean Architecture in MVVM 
- What are Provides and Binds in your Dagger library 
Design Patterns
- What is SOLID principle? 
- What are different design patterns you know about? 
- What is a creational pattern? 
- What is a structural pattern? 
- What is a behavioral pattern? 
- Create Singleton Pattern without Kotlin default implementation 
- Create Observer Pattern 
- Create Adapter Pattern 
- How to make a Singleton Pattern Thread Safe? 
- What is Dependency Inversion 
- Write a real-life example of Dependency Injection without using any library 
- Explain how Android Architecture components (ViewModel, LiveData, etc.) utilize design patterns behind the scenes 
System Design
- Design Image Loading Library 
- Design Image Downloading Library 
- Design LRU Cache 
- Design a real-time Twitter feed timeline. How will you structure the backend? Will you use WebSocket or REST for this use case? Justify. 
- Design Networking Library 
- Design Checkout Screen 
- Design Error handling Structure 
- REST <-> Web Sockets 
- Implement caching mechanism 
- Build an offline-first app 
- Design Analytics Library 
Libraries
- How does Glide internally work? 
- How does retrofit work internally? 
- ViewModel internal working 
- How will you choose between Dagger 2 and Dagger-Hilt? 
Common Questions
- Stringvs- StringBuilder
- ==vs- .equals?
- ===vs- ==?
- Java OOP concepts 
----------------
Must Try Android Project
Akshay Nandwana
Founder AndroidEngineers
You can connect with me on:
Book 1:1 Session here Click Here
Join our upcoming classes
https://www.androidengineers.in/courses
Get the latest Android development articles delivered to your inbox.