Challenge - 5 Problems
Architecture Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate2:00remaining
Why use architecture in Android apps?
Which of the following best explains why using architecture patterns helps scale Android codebases?
Attempts:
2 left
💡 Hint
Think about how organizing code helps when many developers work on the same app.
✗ Incorrect
Good architecture splits code into parts with clear roles. This makes it easier to add features and fix bugs without breaking other parts.
❓ ui_behavior
intermediate2:00remaining
Effect of architecture on UI updates
In an Android app using MVVM architecture, what happens when LiveData changes in the ViewModel?
Attempts:
2 left
💡 Hint
Think about how LiveData helps keep UI and data in sync.
✗ Incorrect
LiveData is observable data holder. When data changes, UI components observing it update automatically, reducing boilerplate and bugs.
❓ lifecycle
advanced2:00remaining
ViewModel lifecycle advantage
What is a key advantage of using ViewModel in Android architecture regarding lifecycle?
Attempts:
2 left
💡 Hint
Consider what happens to UI data when you rotate the device.
✗ Incorrect
ViewModel objects are tied to UI controller lifecycle but survive configuration changes, so data is not lost and UI state is preserved.
advanced
2:00remaining
Navigation component role in scaling apps
How does using Android Navigation Component help scale large apps?
Attempts:
2 left
💡 Hint
Think about how managing many screens can get complicated without a system.
✗ Incorrect
Navigation Component provides a single place to define all app navigation paths, reducing bugs and making it easier to add or change screens.
🔧 Debug
expert2:00remaining
Identifying architecture-related bug
Given this Kotlin code snippet in an Android app using MVVM:
val data = MutableLiveData()
fun loadData() {
data.value = fetchDataFromNetwork()
}
fun fetchDataFromNetwork(): String {
Thread.sleep(5000) // simulate network delay
return "Hello"
}
What problem will this code cause when loadData() is called from the UI thread?
Attempts:
2 left
💡 Hint
Consider what happens when you block the main thread in Android.
✗ Incorrect
Calling Thread.sleep on the main thread freezes UI, causing poor user experience. Network calls must run on background threads.