کتابخونه های ضروری اندروید که باید کاملا تسلط داشته باشی
8 دی 1399 1399-10-08 8:55کتابخونه های ضروری اندروید که باید کاملا تسلط داشته باشی
کتابخونه ها توی هر پلتفرمی نقش مهمی رو برای برنامه ها و نحوه نوشتن کدهای برنامه ها ایفا میکنن.
بعضی از این کتابخونه ها یکم فراتر از یه کتابخونه ساده هستن و حتی میتونن ساختار کلی پروژه رو تغییر بدن.
به عنوان برنامه نویس اندروید باید به یکسری از اینها تسلط داشته باشید.
مخصوصا اینکه اگه بخواین توی سطح های بالاتری کار کنید و کد بزنید.
توی این پست قصد دارم 8 تا از کتابخونه های خیلی مهم و ضروری رو معرفی کنم.
سعی کن به تمامی این کتابخونه ها کاملا تسلط داشته باشی.
بریم سراغ معرفیشون
1) ارتباط با اینترنت

برای ارتباط با اینترنت کتابخونه های خیلی زیادی وجود دارن.
از جمله OkHttp – ION – Volley – Retrofit و …
به نظر من Retrofit (رتروفیت) بهترین اوناست.
Retrofit سرعت بیشتری داره و از نظر عملکرد CPU هم امتیاز خیلی خوبی رو گرفته، ولی از نظر سرعت واقعا عالیه.
الان دیگه تقریبا اکثر جاها برای ارتباط با اینترنت از این کتابخونه استفاده میکنن.
مقایسه سرعت Retrofit با بقیه روش های ارتباطی رو میتونی پایین ببینی

2) بارگذاری عکس

فکر نکنم برنامه آنلاینی باشه که نخواد عکسی رو از اینترنت بگیره.
دریافت عکس از اینترنت برخلاف چیزی که اکثرا فکر میکنن، خیلی مهمه.
چون کاربا تصاویر مستقیم روی GPU (بخش گرافیکی موبایل) تاثیر داره.
بهترین کتابخونه توی این زمینه به نظر من Glide (گِلاید) هستش.
سرعتش واقعا عالیه، مدیریت CPU و GPU فوق العاده و پرفرمنس خیلی خوبی هم داره.
Glide سیستم کش خیلی حرفه ای هم داره که راحت میتونی کش رو مدیریت کنی.
3) تزریق وابستگی

در مورد DependencyInjection (تزریق وابستگی) هرچقدر بگم بازم کم گفتم!🤔
بهترین روش پیاده سازی تزریق وابستگی Dagger (دَگِر) هستش.
روش های دیگه ای هم هستن، مثل Koin , Kodein (اینا فقط برای کاتلین هستن) ولی خب اینا به طور کامل عملیات تزریق وابستگی رو انجام نمیدن.
حتما حتما Dagger رو یاد بگیر.
قبول دارم که خیلی سخته، ولی خب برای اینکه بتونی توی سطح های بالاتر کد بزنی مجبور هستی که سمتش بری.
شاید بپرسی تزریق وابستگی چیه؟
باعث میشه کدهات بدون اینکه به همدیگه وابستگی داشته باشن باهم دیگه کار کنن.
پس یه اپلیکیشن مینویسی که هیچ بخشش به همدیگه هیچ وابستگی ندارن، خیلی عالیه.
4) دیتابیس

بهترین دیتابیس توی اندروید Room (روم) هستش.
با این دیتابیس خیلی راحت میتونی هرنوع اطلاعاتی که میخوای رو به صورت آفلاین ذخیره کنی.
کار با دیتابیس Room خیلی خیلی راحته و درعین راحت بود خیلی هم پرقدرت و پرسرعته.
اگه میخوای بخش آفلاین اپلیکیشن رو طراحی کنی، حتما از Room استفاده کن.
لینک اصلی کتابخونه در سایت اصلی
5) برنامه نویسی همزمانی

همیشه باید طوری برنامه درست کنید که به خاطر کارهای مختلف کاربر معطل نشه و بتونه همزمان که برنامه یکسری از کارها رو انجام میده، کاربر هم از بخش های مختلف استفاده کنه.
برای اینکار روش های مختلفی وجود داره ولی بهترین اونا RxJava هستش.
از RxJava توی کاتلین هم به راحتی قابل استفاده س و مختص جاوا نیستش.
Rx کلا یه متد و روش کد زنی که به روش اونا میتونی طوری کد بزنی که بخش های مختلف کارهای خودشون رو انجام بدن و کاربر معطل جواب اون بخش ها نباشه و بتونه کارهای دیگه ش رو هم انجام بده.
RxJava سخته، برای اینکه توش به سطح حرفه ای برسید راحت باید 3ماه باهاش خوب و جدی کار کنید.
ولی جز ضرروریات برنامه نویس اندروید هستش.
6) بررسی دقیق Http

وقتی که اپلیکیشن آنلاین درست میکنید مشکلاتی که پیش میاد فقط مخصوص به شما نمیشه.
خیلی از مواقع دلیل عدم دریافت اطلاعات، کدهای سمت سرور (Backend) هستش.
با Chuck خیلی راحت میتونی ارتباط با سرور رو رصد کنی.
مثلا اگه خطایی وجود داره به خاطر کدوم خط سرور هستش، چرا این خطا بوجود اومده و کلی اطلاعات خوب دیگه.
با این روش خیلی راحت ارور سمت سرور رو به Backend کار میتونی بگی تا رفعش کنه.
7) لاگ گذاری دقیق کدها

توی بخش قبلی بررسی ارتباط با سرور رو گفتم.
توی این بخش میخوام بررسی کدهای خودمون رو بگم.
برای اینکه بتونیم خطا ها و کلی چیزهای دیگه توی کدهای خودمون رو ببینیم باید از Log(لاگ) استفاده کنیم.
یه کتابخونه خیلی خوبی رو میخوام معرفی کنم، اونم به اسم Timber که امکانات خیلی بیشتر و بهتری نسبت به Log خود اندروید داره.
با Timber خیلی از موارد رو با ریزترین جزئیات میتونی ببینی و خیلی بهتر باگ و خطاها رو برطرف کنی
8) کار با زمان
کار کردن با زمان و تقویم یکی از روی اعصابترین بخش های اندروید هستش.
چرا که بعضی از ویژگی ها مخصوص اندروید 5 به بالا هستش و کلی دردسرهای دیگه.
برای اینکه از شر این مشکلات راخت بشید یکی از بهترین روش ها استفاده از ThreeTen هستش.
ThreeTen به راحتی از استاندارد JSR-310 و خیلی از استانداردهای مربوط زمان پشتیبانی میکنه.
شدیدا توصیه میکنم موقع کار با زمان و تقویم یه سر به این کتابخونه بزنید.
خب معرفی تمامی موارد تمام شد.
ولی باید یه تشکر ویژه از JakeWharton نابغه بی چون و چرا اندروید بکنیم.
چرا که اکثر این کتابخونه ها رو ایشون درست کردن و واقعا یک نابغه به حساب میاد.
حالا درسته که ایشون این پست ما رو نمیبینن ولی خب گفتم یه تشکری کرده باشم😀😁