Приходилось ли с нуля писать модули

«Приходилось ли с нуля писать модули» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, приходилось. Например, писал модуль для работы с геолокацией, который включал:

  • Получение координат через FusedLocationProvider
  • Обработку пермишенов (включая runtime-запросы)
  • Кеширование последней локации
  • Кастомные callback’и для UI
class LocationModule(private val context: Context) {
    private val fusedLocationClient = LocationServices.getFusedLocationProviderClient(context)

    fun getLastLocation(callback: (Location?) -> Unit) {
        if (checkPermissions()) {
            fusedLocationClient.lastLocation.addOnSuccessListener { location ->
                callback(location)
            }
        } else callback(null)
    }

    private fun checkPermissions(): Boolean {
        return ContextCompat.checkSelfPermission(
            context, 
            Manifest.permission.ACCESS_FINE_LOCATION
        ) == PackageManager.PERMISSION_GRANTED
    }
}

Учитывал edge cases: отказ в разрешениях, выключенный GPS, обработку ошибок. Модуль изолировал логику от UI-слоя.