A modern, clean starter template for Android development assessments and technical interviews. This project follows current best practices (2025-2026) using Kotlin, Hilt, ViewBinding, and clean architecture principles.
- Android Studio Ladybug (or newer)
- JDK 17+
- Android SDK 35
- Clone the repository.
- Open the project in Android Studio.
- Sync Gradle and build the project.
- Run the
appmodule on an emulator or physical device.
- Hilt Dependency Injection: Pre-configured for scoped dependency management.
- ViewBinding: Type-safe UI interaction.
- Simple Adapter Pattern: A production-ready, simplified
ListAdapterimplementation usingDiffUtilfor high-performance list updates. - Material 3: Pre-integrated Material Design 3 components.
The SimpleStringAdapter is designed to be easily extensible. It currently uses a custom item_simple.xml layout.
// In your Fragment or Activity
private val myAdapter = SimpleStringAdapter()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
binding.recyclerView.adapter = myAdapter
myAdapter.submitList(listOf("Item A", "Item B"))
}To use your own data models:
- Copy
SimpleStringAdapter.ktand rename it (e.g.,UserAdapter). - Change the generic type from
Stringto your model (e.g.,User). - Update
onCreateViewHolderto inflate your specific layout binding. - Update the
bindmethod to map your model fields to your UI.
The template includes a placeholder in StarterFragment for collecting data from a ViewModel using repeatOnLifecycle:
viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
viewModel.uiState.collect { data ->
stringAdapter.submitList(data)
}
}
}ui/: Contains Fragments and UI logic.ui/SimpleStringAdapter.kt: Standalone list adapter.res/layout/item_simple.xml: Custom card-based item layout.
This project is for assessment and educational purposes.