معرفی کتابخانه‌های کاربردی در اندروید - بخش اول

دسته بندی: آموزش
سطح مقاله: متوسط
زمان مطالعه: 5 دقیقه
۰۴ دی ۱۳۹۸

با پیشرفت روز افزون دنیای برنامه نویسی امکانات بیشتری در اختیار توسعه دهندگان قرار می‌گیرد که با عنوان کتابخانه یا (Library)  می‌توانیم در اپلیکیشن‌های خود از آن‌ها استفاده کنیم. با ما همراه باشید تا با چند کتابخانه رایج که معمولا در بیشتر پروژه‌های اندرویدی استفاده می‌شوند آشنا شویم.

فهرست محتوای این مقاله

 کتابخانه هایی برای HttpClient

این کتابخانه‌ها برای درخواست دادن (Request) به سرور  مورد استفاده قرار می‌گیرند که معمولا هر درخواست یک پاسخ (Response ) به همراه دارد. کتابخانه‌هایی که در این بخش از برنامه نویسی اندروید استفاده می‌شوند عبارت اند از:

  • Volley
  • Retrofit
  • Fast Android Networking
  •  OkHttp

ما در این مقاله به بررسی Volley  و Retrofit میپردازیم.

کتابخانه 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>

کتابخانه هایی برای Load تصویر

همانطور که می‌دانید برای Load کردن تصویر از ImageView استفاده می‌کنیم. اما اگر حجم تصاویر زیاد باشد با خطای جاوایی OutOfMemory مواجه می‌شویم که بعضی از کتابخانه‌ها تا حد زیادی از این مشکل جلوگیری می‌کنند.

همچنین بعضی از این کتابخانه‌ها این امکان را فراهم می‌کنند که تا زمان لود کامل تصویر دریافتی از  Url، عکس جایگزینی را نمایش دهند. کتابخانه هایی که در این بخش بررسی می‌کنیم عبارت اند از: Picasso، Glide، Fresco.

کتابخانه Picasso

این کتابخانه بسیاری از مشکلات مانند هندل کردن اتوماتیک memory و disk را انجام می‌دهد. همچنین می‌تواند با کمترین استفاده از حافظه، اندازه تصویر را تغییر دهد. امکان اضافه کردن Placeholder و همچنین امکان لود کردن تصویر از منابع مختلف را دارد.

کتابخانه Glide

این کتابخانه تقریبا مانند کتابخانه Picasso است با این تفاوت که قابلیت نمایش فایل‌های Gif را دارد و  قابل سفارشی سازی است.  بعضی افراد میگویند که کتابخانه Glide از کتابخانه Picasso  سریع‌تر است ولی واقعا به این صورت نیست زیرا Glide زمانی که می‌خواهد تصاویر را لود کند آنها را فشرده می‌کند و همین عامل باعث افزایش سرعت آن می‌شود. البته باید به این نکته توجه داشت که این فشرده سازی بسیار ناچیز است.

کتابخانه Fresco

این کتابخانه متعلق به شرکت FaceBook است و این شرکت در محصولات خود از کتابخانه Fresco استفاده میکند. همچنین شرکت هایی همانند Twitterو Wikipedia نیز از این کتابخانه استفاده می‌کنند. این کتابخانه همانند دو کتابخانه بالا است و شاید حتی در قسمت هایی نیز بهتر عمل کرده باشد.

Fresco قابلیت گرد کردن گوشه‌های یک تصویر را دارد و نکته جالب این است که این کتابخانه، از الگوریتم‌های بسیار بهینه‌ای برای گرد کردن تصویر استفاده می‌کند. این کتابخانه قابلیت استفاده از نسخه اندروید 2.3 (Gingerbread) به بعد را دارد.

جمع‌بندی

ما در این مقاله به بررسی چند کتابخانه پرکاربرد در اندروید پرداختیم که در دو مبحث HttpClient و Load تصویر  استفاده می‌شوند. هر کدام از این کتابخانه‌ها مزایا و معایبی دارند که باید با توجه به نیاز پروژه از آن‌ها استفاده کنیم. معرفی کتابخانه‌های اندروید ادامه دارد و در مطلبی دیگر، به بررسی چند کتابخانه دیگر نیز خواهیم پرداخت.

چه امتیازی به این مقاله می دید؟
نویسنده ریحانه یزدانی
شاید به ساخت یک اثر هنری فکر کنیم و یا بخواهیم بلندترین قله ها را فتح کنیم؛ ما هنوز نمی دانیم از زندگی چه چیزی را بیشتر از همه می خواهیم. پس هر کاری که از دستتان بر می آید برای زندگی انجام دهید و سرانجام قلب تان، این انتخاب بزرگ را انجام خواهد داد...

نظرات کاربران

محمد محبتی

خوب بود
سپاس فراوان

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :