با پیشرفت روز افزون دنیای برنامه نویسی امکانات بیشتری در اختیار توسعه دهندگان قرار میگیرد که با عنوان کتابخانه یا (Library) میتوانیم در اپلیکیشنهای خود از آنها استفاده کنیم. با ما همراه باشید تا با چند کتابخانه رایج که معمولا در بیشتر پروژههای اندرویدی استفاده میشوند آشنا شویم.
کتابخانه هایی برای HttpClient
این کتابخانهها برای درخواست دادن (Request) به سرور مورد استفاده قرار میگیرند که معمولا هر درخواست یک پاسخ (Response ) به همراه دارد. کتابخانههایی که در این بخش از برنامه نویسی اندروید استفاده میشوند عبارت اند از:- Volley
- Retrofit
- Fast Android Networking
- OkHttp
کتابخانه Volley
این کتابخانه که متعلق به شرکت گوگل است سرعت بالا و کارکردی نسبتا ساده دارد. Volley قابلیت cache کردن Requestها را دارد که یکی از دلایل سرعت بالای این کتابخانه محسوب میشود. به کمک Volleyشما میتوانید صفی از درخواستها را ایجاد کرده و همچنین برای آنها قوانین (Policy) تعریف کنید. همچنین این کتابخانه امکان لود تصویر را هم دارد.کتابخانه Retrofit
این کتابخانه مربوط به شرکت Square است که شرکتی پیشرو در تولید کتابخانه هایی برای Android، C، Go، iOS، Java، JavaScript، Kotlin ،Ruby به شمار میرود. این کتابخانه قدرتمند با استفاده از کتابخانه OkHttp ساخته شده و با کتابخانههای Gson، RxJava سازگار است. یک نکته مهم: زمانی که به سروری درخواست میدهیم که از https پشتیبانی نکرده و از http استفاده میکند، نتیجه ای برای ما ارسال نمیشود. این اتفاق زمانی که device مورد تست، اندروید API آن بالای 28 باشد نیز میافتد. اگر در LogCat هم دقت کنید با خطای Cleartext HTTP traffic to * not permitted مواجه میشوید. این مسئله به این دلیل است که تا اندروید API 27 مقدار ویژگی android:usesCleartextTraffic="true" است ولی برای اندروید API 28 به بالا این مقدار برابر false است. برای اینکه این مشکل را برطرف کنید کافیست در فایل manifest در قسمت application خط android:usesCleartextTraffic="true" را اضافه کنید. همانند کد زیر:<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
</manifest>