Назад к вопросам
Junior
67
questionbank
Что вы можете рассказать о взаимодействии Android-приложения с сервером?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
REST, gRPC, GraphQL. Retrofit, Volley, Ktor.
Асинхронные операции:
- Coroutines (Kotlin).
- RxJava.
- AsyncTasks (устарело).
- WorkManager (для фоновых задач).
Безопасность:
- TLS/SSL.
- OAuth2/токены.
- Шифрование данных.
Обработка ошибок:
- Сетевые ошибки (таймауты, отсутствие соединения).
- Ошибки сервера (4xx, 5xx).
- Парсинг ответов.
Оптимизация:
- Кэширование данных.
- Сжатие данных (GZIP).
- Управление пропускной способностью.
Пример запроса с Retrofit:
interface ApiService {
@GET("users")
suspend fun getUsers(): Response<List<User>>
}
// В ViewModel или Repository
suspend fun fetchUsers() {
try {
val response = apiService.getUsers()
if (response.isSuccessful) {
val users = response.body()
// Обработка данных
} else {
// Обработка ошибки
}
} catch (e: Exception) {
// Обработка exception
}
}
Пример фоновой синхронизации с WorkManager:
class SyncWorker(appContext: Context, workerParams: WorkerParameters) : CoroutineWorker(appContext, workerParams) {
override suspend fun doWork(): Result {
return try {
// Выполнение сетевых запросов
Result.success()
} catch (e: Exception) {
Result.failure()
}
}
}
// Запуск воркера
val syncRequest = OneTimeWorkRequestBuilder<SyncWorker>().build()
WorkManager.getInstance(context).enqueue(syncRequest)