در این مقاله قصد داریم در مورد بهترین و مفیدترین کتابخانه های اندروید که هر برنامه نویس اندرویدی باید با آن ها آشنایی داشته باشد را به شما کاربران عزیز معرفی کنیم.
کتابخانه Volley یک کتابخانه بسیار قدرتمند است که شرکت بزرگی مانند گوگل از آن پشتیبانی می کند. در حال حاضر برنامه نویسان توجه خود را بیشتر به سمت کتابخانه رتروفیت برده اند و بازار این کتابخانه داغ تر است!
دو کتابخانه Retrofit و Volley هر کدام مزایا و معایب مخصوص به خود را دارند که در اینجا یک مقایسه کوچک از آن ها می آوریم:
در اندروید استودیو می توانید از طریق فایل build.gradle این کتابخانه را به پروژه خود اضافه کنید.
به عبارت دیگر این کتابخانه می تواند پاسخ های JSON API را به کدهای مفهوم دار زبان جاوا تبدیل کند. دو کتابخانه Retrofit و Moshi از یکدیگر پشتیبانی می کنند و می توان این ها را با همدیگر نیز استفاده کرد.
با استفاده از این کتابخانه شما می توانید تاریخچه درخواست های HTTP پروژه خود را بر روی گوشی همراهتان مشاهده کنید.
هنگامی که از این کتابخانه استفاده کنید تمام جزئیات و Log های مربوط به HTTP برای شما به عنوان یک ناتیفیکیشن نمایش داده خواهد شد.
اگر در برنامه باگ یا مشکلی وجود داشته باشد در صورت استفاده از این کتابخانه به راحتی می توانید تشخیص دهید که این مشکل از سرور نرم افزار است یا کد های Backend برنامه؟
در واقع معمولا از این کتابخانه به عنوان یک Logcat استفاده می شود، حتی می توان گفت کاربرد آن خیلی بیشتر از آن است.
اگر تا به حال تجربه انجام پروژه ای را در اندروید استودیو داشته باشید باید بدانید گاهی اوقات Logcat بعد از کرش کردن اپلیکیشن و بسته شدن آن اطلاعات خود را حذف می کند در صورتی که برای کتابخانه Chuck چنین اتفاقی نمی افتد.
معمولا در اندروید اگر از API برای لود کردن تصاویر استفاده کنید در تغییر سایز کردن عکس ها به خطای OutOfMemoryException مواجه می شوید.
کتابخانه Glide یکی از بهترین کتابخانه های اندروید مخصوص کار کردن با تصاویر در اندروید است. جالب است بدانید یک API هم دارد که با استفاده از آن می توانید هر کاری با تصاویر انجام دهید.
با استفاده از این کتابخانه می توانید تصاویر را به راحتی در ImageView لود کنید.
در صورتی می توانید خوبی استفاده از این کتابخانه را درک کنید که تصمیم داشته باشید کارهای مربوط به لود کردن و ویرایش تصاویر را بدون استفاده از این کتابخانه انجام دهید.
این کتابخانه از CircleImage نیز پشتیبانی می کند.
این لایبرری کار با Android Calender API را برای برنامه نویسان بسیار راحتتر کرد. کتابخانه های بسیاری در زمینه تاریخ و زمان وجود دارد که یکی از آن ها JodaTime می باشد.
کتابخانه ThreeTen از لحاظ تعداد متدها و حجم بسیار خلاصه تر از JodaTime می باشد و بنابراین کار کردن با آن راحتتر است. اگر تا الان از JodaTime استفاده می کردید حتما به شما پیشنهاد می کنم در پروژه بعدی از ThreeTen استفاده کنید(ارزشش را دارد!)
این کتابخانه به شما این اجازه را می دهد که قابلیت لاگ را خاموش یا روشن کنید.
این کتابخانه نیز می تواند از Log کردن رشته های قالب بندی شده و Exception ها پشتیبانی کند.
این کتابخانه یک API مانند رتروفیت دارد، همچنین استفاده زیادی از Annotation ها و سینتکس استاندارد SQL کرده است.
این کتابخانه از RX و LiveData هم پشتیبانی می کند، یعنی در صورت نیاز می توانید در پروژه خود از آن ها هم استفاده کنید.
این کتابخانه نسبت به دیگر ORM ها سادگی بیشتری دارد. برای استفاده از اکثر ORM ها به دلیل پیچیدگی زیادی که دارند شما باید قبل از استفاده از آن ها کل Documentation آن ها را مطالعه کنید تا بتوانید از آن ها استفاده کنید.
دلیل سادگی این کتابخانه استفاده از سینتکس استاندارد SQL است.
بنابراین استفاده از این ORM بسیار بهتر است، زیرا بدون وقت گذاشتن و خواندن Documentation آن می تواند از آن استفاده کنید و پروژه خود را انجام دهید.
در این دوران توقع کاربران از برنامه ها بیشتر شده و توقع دارند که برنامه های مدرن بتوانند داده ها را به صورت Real time (بدون تاخیر) نمایش دهند.
این کتابخانه به برنامه این قدرت را می دهد که داده ها به صورت خودکار بروزرسانی شوند.
وقتی بخواهید داده ها را بدون تاخیر درخواست کنید، استفاده از چندین فراخوانی API، عوض کردن Thread ها و مدیریت Exception ها کار بسیار مشکلی خواهد بود.
در این زمینه کتابخانه RxJava می تواند خودی نشان دهد و به همین دلیل است ما این کتابخانه را در لیست بهترین کتابخانه های اندروید آورده ایم.
باید به این نکته هم توجه کنید که استفاده از این کتابخانه کمی مشکل و گیج کننده است، اما کاملا ارزش زمانی را که برای یادگیری آن می کنید را دارد.
هدف از ساخت این لایبرری این بوده که استفاده از Android API را برای شما خوشایندتر کند.
با استفاده از این کتابخانه می تواند بسیاری از امکانات و متد های جالب زبان کاتلین مانند lambdas, name paramaters و default parameter values را به پروژه اندروید خود اضافه کنید.
این کتابخانه دارای بسیاری از افزونه های کاربردی است و تنها راه برای پی بردن به نحوه کارکرد این لایبرری خواندن کدهای آن است.
یادگرفتن این لایبرری نیز مانند RxJava سخت است اما کاملا ارزش وقت صرف کردن برای یادگیری را دارد.
این لایبرری یک فریم ورک استاتیک و Compile-time dependency injection است.
Dependency injection یک روش است که در آن اجزای کوچک از یک مدل را فراهم می کنیم و سپس آن ها را با کمترین زحمت به هم متصل می کنیم.
برای درک بهتر این موضوع به این مثال دقت کنید:
اگر شما یک مدل ماشین داشته باشید می توانید از قبل لاستیک هایی برای ماشین خود تهیه کنید تا در صورت لزوم آن ها را تعویض کنید، بدون اینکه نیاز به تغییر بقیه قسمت های ماشین باشد.
وقتی با پروژه های بزرگ سر و کله می زنید اصلا دوست ندارید Dependency Injection را خودتان را مدیریت کنید.
زیرا حجم کدها به سرعت زیاد می شود و کنترل کردن آن ها بسیار سخت تر می شود.
این کتابخانه به شما کمک می کند این شرایط را بهتر کنترل کنید، زیرا در هنگام کامپایل شدن برنامه از پردازش Annotation استفاده می کند.