چند مورد از بهترین کتابخانه های اندروید

چگونه کتابخانه را به اندروید استودیو اضافه کنیم؟

کتابخانه های خوب و متن باز میتوانند برنامه نویسی را برای شما بسیار آسان تر و سریعتر کنند. لایبرری های معروف هم معمولا به خوبی تست شده اند و استفاده از آنها راحت است. در بسیاری از موارد شما میتوانید این کتابخانه ها را با استفاده از Maven به پروژه اندروید استودیو خودتان اضافه کنید. برای اضافه کردن آنها میتوانید از روش زیر بهره بگیرید: (این کد ها باید در فایل build.gradle سطح اپ، درون dependencies نوشته بشوند).

dependencies {
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.squareup.okhttp:okhttp:1.3.0'
    compile 'com.squareup.retrofit:retrofit:1.3.0'
    compile 'de.greenrobot:eventbus:2.2.+'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.1'
    }

کتابخانه Retrofit

کتابخانه Retrofit یکی از کلاینت های ایمن HTTP است که به شما اجازه میدهد REST API خودتان را به عنوان یک اینترفیس تعریف کنید. شما میتوانید با استفاده از این کتابخانه بدنه درخواست ها (Query ها)، هدر ها، پارامتر های کوئری و بسیاری کارهای بیشتر را انجام بدهید. همه این کار ها با استفاده از Annotation ها انجام میشوند که باعث میشود همه چیز ساده و تر و تمیز باقی بماند. همچنین Retrofit به شما اجازه میدهد که بتوانید فراخوانی های API را بصورت همزمان و غیر همزمان (سنکرون و آسنکرون) اجرا کنید.

interface ApiService {
    @GET("movie/{id}")
    fun getMovieDetails(@Path("id") id: String) : Call<MovieDetails>
    }

به عنوان نکته آخر، باید بگوییم Retrofit یک ماژول RX جداگانه را برای شما مهیا میکند. یعنی اگر دارید از RX استفاده میکنید، این ماژول درخواست های API شما را به عنوان یک Observable برمیگرداند. بنابراین میتوانید آن را به بقیه اپلیکیشن خودتان متصل کنید. این یکی از هزاران دلیلی است که Retrofit یکی از بهریت کتابخانه های اندروید است و ما آن را دوست داریم و هنوز هم از آن استفاده میکنیم.

کتابخانه Moshi

کتابخانه Moshi یکی از بهترین کتابخانه های اندروید است. این لایبرری میتواند JSON را به مدل های جاوا و کاتلین تبدیل کند. بسیاری از مردم به این کتابخانه GSON 3.0 هم میگویند. این لایبرری در بسیاری از قسمت ها به GSON برتری دارد. اول: سریعتر است، از کاتلین پشتیبانی میکند، برای توسعه پایدار تر است، Exeption های قابل پیش بینی ایجاد میکند و از آداپتور شکست خورده DateTime بصورت پیشفرض استفاده نمیکند. علاوه بر همه اینها، تبدیل JSON به جاوا (و برعکس آن) با Moshi بسیار ساده است.

val moshi = Moshi.Builder().build()
val jsonAdapter = moshi.adapter(Model::class.java)


/* JSON to Model */
val model = jsonAdapter.fromJson(json)


/* Model to JSON */
val json = jsonAdapter.toJson(model)

همچنین ما Moshi را به خاطر پشتیبانی آن از JSON API دوست داریم. MOSHI JSON API زندگی را برای ما آسان تر میکند. زیرا میتواند پاسخ های JSON API را به آبجکت های مفهوم دار جاوا تبدیل کد. Retrofit میتواند از Moshi پشتیبانی کند و همه اینها بایکدیگر کار میکنند.

کتابخانه Chuck

کتابخانه Chuck یک بازرس HTTP برای اندروید است که به شما اجازه میدهد تاریخچه HTTP اپلیکیشن خودتان را روی موبایلتان ببینید. Log مخصوص به HTTP برای شما به عنوان یک ناتیفیکیشن نمایش داده خواهد شد و اگر بخواهید آن را بصورت کامل در رابط کاربری Chuck ببینید میتوانید آن را از قسمت اعلان ها لمس کنید. اگر از Chuck استفاده کنید تیم کنترل کیفیت شما خیلی تشکر خواهد کرد. زیرا از این طریق میتوانند بفهمند که آیا یک مشکل سمت اندروید است یا قسمت Backend آن؟ این لایبرری که یکی از بهترین کتابخانه های اندروید است، گاهی خیلی بیشتر از logcat میتواند کاربردی باشد. زیرا حتی اگر اپلیکیشن شما هم متوقف شده باشد، باز هم تاریخچه HTTP باقی خواهد ماند. در حالیکه logcat گاهی بعد از ریستارت شدن اپلیکیشن محتویات خودش را پاک میکند.

dependencies {
   debugCompile 'com.readystatesoftware.chuck:library:1.1.0'
   releaseCompile 'com.readystatesoftware.chuck:library-no-op:1.1.0'
 }

کتابخانه Universal Image Loader

کتابخانه UIL یکی از بهترین کتابخانه های اندروید است که با استفاده از آن میتوانید لود کردن و cache کردن عکس ها به صورت غیر همزمان (آسنکرون) استفاده میشود. استفاده کردن از آن هم تقریبا ساده است:

imageLoader.displayImage(imageUri, imageView);

البته Picasso از API بهتری برخوردار است، ما در شخصی سازی کمی لنگ میزند. با استفاده از گزینه های ساخت و پیکربندی UIL تقریبا میتوانید هرکاری انجام بدهید. (این مورد درباره استفاده از تصاویر بزرگ به کار می آید، چیزی که Picasso نمیتواند آن را انجام بدهد).

کتابخانه Glide

همانطوری که شاید تا الان متوجه شده باشید، API مربوط به لود کردن و مدیریت عکس ها در اندروید افتضاح است. اینکه بتوانید یک عکس را تغییر سایز بدهید و خطای OutOfMemoryException را نبینید، بیشتر شبیه یک رویا میماند. Glide یکی از بهترین کتابخانه های اندروید است که مخصوص کار با تصاویر میباشد. همچنین یک API خیلی خوب دارد و میتوانید با استفاده از آن هرکاری که میخواهید با تصاویر انجام بدهید.

GlideApp.with(context)
  .load(url)
  .centerCrop()
  .placeholder(R.drawable.ic_placeholder)
  .into(imageView)

این کتابخانه به شما اجازه میدهد یک تصویر را به سادگی درون ImageView لود کنید، تصویر پس زمینه انتخاب کنید، عکس ها رو cache کنید و تغییر اندازه بدید و خیلی کارهای دیگه انجام بدین. اگر هنوز نمیدانید که چقدر به این لایبرری نیاز دارید، فقط کافی است سعی کنید همه این کارها را بدون Glide انجام بدهید. آن موقع متوجه میشوید چرا این مورد در بین بهترین کتابخانه های اندروید قرار گرفته است. حتی Glide از تغییر شکل های رایج مانند تصاویر دایره ای هم پشتیبانی میکند.

کتابخانه ThreeTen

کتابخانه ThreeTen یکی از بهترین کتابخانه های اندروید برای مدیریت تاریخ و زمان است. این کتابخانه به نوعی مدل پیشرفته تر و بهبود یافته تر از JSR-310 میباشد که در Java 8 به عنوان به صورت استاندارد به عنوان پکیج java.time.* وجود داشت. ما این لایبرری را دوست داریم به خاطر اینکه کار کردن با Android Calendar API مثل یک کابوس میماند.

/* Current DateTime */
LocalDateTime.now()

/* String to DateTime */

val localDateTimeString = "2011-12-03T10:15:30"

val localDateTime = LocalDateTime.parse(localDateTimeString)

کتابخانه ThreeTen از لحاظ تعداد متد ها و حجم بسیار کوچکتر از JodaTime میباشد. API آن هم بسیار خلاصه تر از JodaTime است. اگر الان دارید از JodaTime استفاده میکنید، شاید ارزش نداشته باشد که بخواهید ThreeTen را جایگزین آن نمایید. اما اگر میخواهید یک پروژه جدید را شروع کنید، شدیدا به شما پیشنهاد میکنم از ThreeTen استفاده بکنید.

Writer : MD_CODER

منبع: سایت محمد دادخواه