Sobes.tech
Junior

Co se používá pro práci sítě v Androidu?

sobes.tech AI

Odpověď od AI

Pro práci se sítí v Androidu se používají:

HttpClient/HttpURLConnection (standardní třídy z Java, HttpURLConnection je preferováno v novějších verzích Androidu kvůli efektivitě).

Knihovny:

  • Retrofit2: Oblíbená knihovna pro provádění HTTP požadavků s důrazem na deklarativní přístup a snadnou práci s JSON API.
  • OkHttp: Výkonná a efektivní knihovna HTTP klienta, často používaná jako základ pro Retrofit.
  • Volley: Vyvinutá Googlem, vhodná pro malé a střední síťové operace, má vestavěnou podporu kešování obrázků.
  • AsyncHttpClient: Umožňuje provádět asynchronní HTTP požadavky, ale je již poněkud zastaralá ve srovnání s OkHttp a Retrofit.

RxJava/Kotlin Coroutines: Ačkoliv nejsou přímo knihovnami sítí, často se používají k řízení asynchronních síťových operací a zpracování odpovědí v reaktivním nebo korutinovém stylu.

Pro práci na nízké úrovni lze použít:

URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
try {
    InputStream in = new BufferedInputStream(connection.getInputStream());
    // Čtení dat z in
} finally {
    connection.disconnect();
}

Příklad použití Retrofit:

interface ApiService {
    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: String): User // Použití suspend pro korutiny
}

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .client(OkHttpClient.Builder().build()) // Často používaný OkHttp
    .build()

val service = retrofit.create(ApiService::class.java)

Volba konkrétního nástroje závisí na požadavcích projektu, jeho rozsahu a preferencích týmu. V moderních projektech se nejčastěji používá Retrofit2 s OkHttp ve spojení s Kotlin Coroutines nebo RxJava. Volley může být užitečný pro jednoduché případy a práci s obrázky.