بهترین کتابخانه های اندروید ۲۰۲۲
زمان مورد نیاز برای مطالعه : 11 دقیقهکار کردن به عنوان یک توسعه دهنده اندروید آسان نیست. این امر مستلزم دانش کاری زبان ها، کتابخانه ها و سایر منابع است. کتابخانههای اندروید برای توسعهدهندگان ایجاد شده اند تا به اونها کمک کنن تا فرایند توسعه اپلیکیشن ها آسان تر شود.
به طور خلاصه، فریم ورک ها (frameworks) و کتابخانه های(libraries) اندروید مجموعه ای از پیاده سازی های رفتاری (implementations of behaviors) هستن که به زبان های برنامه نویسی با یک رابط(interface) کاملاً تعریف شده نوشته شده اند. اگر می خواهید یک شرکت توسعه اپلیکیشن اندروید راه اندازی کنید، کتابخانه ها اساساً ستون فقرات توسعه اپلیکیشن موبایل شما خواهند بود.
علیرغم ماهیت ذاتی رابطهای کاملاً تعریف شده، فریم ورک ها و کتابخانههای اندروید مجموعهای از پیادهسازی رفتارها(implementations of behaviors) را منعکس میکنند که عمدتاً توسط زبانهای برنامهنویسی تعریف میشوند. برای عملکرد درست ، تقریباً هر کتابخانه شامل اسناد(documentation)، داده های پیکربندی(configuration data)، الگوهای پیام(message templates)، داده های راهنما(help data) و اسکریپت های(scripts) از پیش نوشته شده است.
کتابخانه های اندروید چیست؟
ساختار کتابخانه اندروید مانند ماژول برنامه اندروید است،که می تواند شامل کد منبع(source code)، فایل های منبع(resource files)، و مانیفست (manifast) اندروید و موارد دیگر باشد. از سوی دیگر، یک کتابخانه Android در یک فایل بایگانی اندروید Android Archive files (AAR) کامپایل میشود که ممکن است بهعنوان وابستگی(dependency) برای یک ماژول برنامه اندروید استفاده کنید، نه به صورت APK که روی یک دستگاه اجرا میشود. فایلهای AAR بر خلاف فایلهای JAR، ویژگیهای زیر را برای برنامههای اندروید ارائه میکنند:
علاوه بر کلاسها و توابع جاوا، فایلهای AAR میتوانند حاوی Android resource و یک فایل manifast باشند که به شما این امکان رو میده که منابع مشترک مانند layout و drawables ها رو به صورت bundle بیاورید.
کتابخانههای ++C/C برای استفاده توسط کد ++C/C ماژول برنامه در فایلهای AAR یافت میشوند.
در موارد زیر، یک Library module مفید است:
-
وقتی که برنامهای ایجاد میکنید که دارای نسخههای APK مختلف، مانند نسخه رایگان و پولی است، و اجزای ضروری در هر دو یکسان هستند.
-
هنگامی که چندین برنامه ایجاد میکنید که اجزای مشترکی مانند Activity ها ، Service ها یا UI layout ها را به اشتراک میگذارند.
-
به سادگی فایلهایی که میخواهید دوباره استفاده کنید را به یک ماژول کتابخانه منتقل کنید و کتابخانه را به هر یک از ماژولهای برنامه در هر سناریو وابسته کنید.
چرا به کتابخانه های اندرویدی نیاز داریم؟
یکی از قانعکنندهترین دلایل استفاده از این کتابخانهها، سرعت بخشیدن به فرآیند توسعه و ایجاد یک برنامه ایمن با حداقل تلاش است. ما این مقاله را برای برنامهنویسانی نوشتیم که میخواهند برنامههای اندرویدی را با استفاده از بهروزترین فریمورکها ایجاد کنند.
کتابخانه ها، صرف نظر از پلتفرم ، تغییرات بزرگی در توسعه نرم افزار هستند. با استفاده ار کتابخانهها، از کار و تجربیات توسعهدهندگان دیگر میتوانیم برای تکمیل سریعتر، مؤثرتر و با boilerplate code کمتر استفاده کنیم. چه برنامه نویس جونیور (برانمه نویس تازه کار ) باشید و چه سنیور (برنامه نویس ارشد و با تجربه)، می دانید که انجام کارهای به ظاهر ابتدایی چقدر دشوار است. بسیاری از افراد دیگر قبل از شما این کارها را کردهاند و کتابخانهها و چارچوبهای اندرویدی را ایجاد کردهاند تا توسعه برنامه ها را آسانتر کنند.و حالا چرا ما باید چرخ رو اختراع کنیم وقتی که افرادی قبلا اینکار رو کردن ؟
۱۶ تا از بهترین کتابخانه های اندروید در سال ۲۰۲۲
۱. Zxing
کتابخانه ای برای پردازش تصاویر بارکد است. Zxing به زبان جاوا نوشته شده است و با انواع زبان های کامپیوتری دیگر کار می کند. می تواند بارکدهای یک بعدی، بارکدهای صنعتی یک بعدی و بارکدهای دو بعدی را بخواند. گوگل از ZXing برای ایندکس کردن چندین بارکد در وب استفاده کرد. این کتابخانه همچنین مسئول توسعه برنامه اسکنر بارکد اندروید است که در جستجوی محصولات و کتاب Google ادغام شده است.
۲. ThreeTen
اسم JakeWharton تو گیت هاب باید احتمالا به گوشتان خورده باشه.شخصی که کتابخونه Retrofit رو برای اندروید گسترش داد و کار بسیاری از ما رو راحت کرد.علاوه بر اون کتابخونه های بسیار دیگه ای هم گسترش داده که یکی از اونها همین ThreeTen هستش.
کتابخانه ThreeTen اندروید برای مدیریت تاریخ و زمان مفید است. این کتابخونه یک بکپورت از JSR-310 است که قبلاً در جاوا ۸ به عنوان بخشی از بسته استاندارد “java.time.*” گنجانده شده بود.
کتابخانه ThreeTen بسیار مفید و راحت هستش به این دلیل ازش استفاده میکنیم که کار با API تقویم اصلی خود Android دشوار است. این کتابخونه از نظر تعداد و اندازه کوچکتر از JodaTime است، اما API آن مختصرتر است.
۳. Smart Lock for Passwords
یک توسعهدهنده میتواند از Smart Lock برای گذرواژههای Android استفاده کند تا بهطور خودکار کاربران را با استفاده از اعتبارنامههایی که ذخیره کردهاند وارد برنامهشان کند. آنها همچنین می توانند اعتبار هویت فدرال و همچنین اعتبار نام کاربری-رمز عبور را ذخیره کنند.
با استفاده از Credentials API برای دسترسی به اطلاعات کاربری ذخیره شده در هنگام ورود به سیستم، می توانید به سرعت Smart Lock رو به رمزهای عبور برنامه خود اضافه کنید. از Credentials API برای ورود سریع کاربران جدید با تکمیل جزئی فرم ورود یا ثبت نام برنامه خود استفاده کنید، یا از اعتبارنامه های بازیابی شده با موفقیت برای ورود کاربر استفاده کنید.
۴. API for Detecting Activity
کاربر می تواند از API تشخیص فعالیت برای شناسایی فعالیت فعلی خود مانند راه رفتن، رانندگی یا بی حرکت ایستادن استفاده کند. دکمه «Seek Update» به توسعهدهندگان اندروید اجازه میدهد تا بهروزرسانیهای فعالیت را درخواست کنند، و دکمه «Remove Updates» به آنها اجازه میدهد تا آنها را دریافت نکنند.
۵. ObjectBox
ObjectBox یک کتابخانه اندرویدی محبوب است که به توسعهدهندگان اجازه میدهد تا به جای ذخیرهسازی و بازیابی اطلاعات، روی آنچه که برنامههایشان را برجسته میکند، تمرکز کنند.
علاوه بر این، این کتابخانه شامل یک پایگاه داده تعبیه شده شی گرا است که جایگزین عالی برای SQLite است که بسیار خوب تعریف شده و برای اینترنت اشیا مناسب است.
همچنین با حذف چندین کار خسته کننده در زمان کاربران صرفه جویی می کند و یک رابط داده ساده و کاربرپسند ارائه می دهد. ObjectBox همچنین به گونه ای طراحی شده است که نیاز توسعه دهندگان برنامه را برای مقابله با SQL به حداقل برساند.
۶. MyLittleCanvas
MyLittleCanvas یکی از محبوب ترین کتابخانه های اندروید برای توسعه دهندگان است. این کتابخانه برای سادهتر کردن کار با canvas در اندروید طراحی شده است، با این حال، اکنون میتوانید از objects به جای methods استفاده کنید.
این بسته پشتیبانی اندروید به TextViews قابلیت های بیشتری مانند خط کشی قابل تنظیم می دهد. RectShape، RoundRectShape، TextShape، LineShape، DrawableShape، PathShape، و CircleShape همگی با استفاده از متدهای Canvas قابل پیاده سازی هستند.
۷. ButterKnife
یک کتابخانه مخصوص view binding با استفاده از annotation ها میباشد. توسط ButterKnife برای تولید کد boilerplate توسط توسعهدهندگان اندروید استفاده میشود. جیک وارتون این کتابخانه اندرویدی پیشرفته رو ایجاد کرد که باعث میشه کد شما خواناتر از قبل شود.
توسعهدهندگان میتوانند با استفاده از این کتابخانه view binding در زمان و نوشتن کد های مکرر صرفهجویی کنند. ButterKnife یک راه عالی برای توسعه دهندگان است تا string dimen ، drawables ، click events و موارد دیگر را بدون نیاز به نوشتن کدهای تکراری مانند “findViewByID(R.id.yourview)” متصل کنند.
اکنون می توانید از حاشیه نویسی OnClick@ برای ارائه click events و برای single view و multiple views به جای اجرای تابع setOnClickListener برای هر view استفاده کنید. به طور خلاصه، استفاده از کتابخانه ButterKnife پروژه اندروید شما را بسیار آسان می کند.
نکته مهم
طبق گیت هاب خود butterknife : این کتابخونه deprecate شده و اعلام کرده از view binding خود android studio استفاده کنید اما کاملا پشتیبانی رو قطع نکرده و bug fix های خیلی مهم رو منتشر میکنه اما اشکال های کلی رو برطرف نمیکنن و ویژگی خاصی بهش اضافه نمیشه.
۸. ExpansionPanel
ExpansionPanel توسط Florent Champigny یکی دیگر از کتابخانههای غنی از ویژگیها هستش که به توسعهدهندگان اجازه میده تا ExpansionPanel (که حاوی creation flows هستن و lightweight editing یک element را فعال میکنند) ایجاد کنند. از این کتابخانه میتوان برای ایجاد بسیاری از expansion layouts استفاده کرد، به طوری که تنها یکی از آنها در یک زمان باز میشود.
درک این کتابخانه آسان است و پروژه با یک نمونه Application برای توسعه دهندگان ارائه می شود. علاوه بر این، کل کد این کتابخانه تحت مجوز آپاچی ۲ مجوز دارد و یک برنامه نمونه در Google Play برای اون منتشر شده است.
۹. Kotlin-math
یکی دیگه از کتابخانههای شگفتانگیز برای اندروید Kotlin-math هست که مجموعه کاملی از Kotlin API برای آسانتر ساختن ریاضیات بصری هستش. این API ها بر اساس GLSL (OpenGL Shading Language) هستند که انتقال کد به shaders و همچنین از اون رو تا حد امکان ساده کنند.
بسیاری از انواع این کتابخانه فقط برای استفاده به عنوان value types در نظر گرفته شده است. تعدادی از API ها به عنوان توابع سطح بالا (top-level functions) به جای method در دسترس هستند.
۱۰. Lottie
Lottie یک جعبه ابزار توسعه اندروید است که انیمیشن های Adobe After Effects را که به صورت JSON با Bodymovin رندر می شوند، تجزیه می کند و آنها را به صورت native در تلفن همراه ارائه می کند.
اکنون طراحان میتوانند انیمیشنهای زیبا بسازند و ارسال کنند، بدون اینکه نیازی به تکیه بر یک مهندس برای تکرار آنها با دست داشته باشند.
Solids، form layers، masks، alpha mattes ، trim paths ، و dash patterns همگی در حال حاضر پشتیبانی میشوند.
یک توسعهدهنده همچنین میتواند در زمان به جلو و عقب برود، و همچنین با استفاده از کتابخانه به هر ورودی پاسخ دهد.
۱۱. Android Retrofit
به عنوان برنامه نویس اندروید استفاده از این کتابخونه مثل آب ، حیاتی هستش و مسلط شدن بهش بسیار واجبه به این دلیل که تقریبا ۹۰ درصد اپلیکیشن های اندرویدی با سرور در ارتباط هستن و کار این کتابخونه هم دقیقا همین هستش.
Android Retrofit یک کتابخانه اندرویدی محبوبه که زمینه را برای تعامل موفق و احراز هویت فراهم می کنه.
برای اندروید و جاوا، Square یک کلاینت HTTP ایمن ایجاد کرده است. Retrofit یک کتابخانه عالی برای ادغام برنامه های اندروید با سرویس های API مبتنی بر HTTP است. قابلیتهای اساسی کتابخانه OkHttp را با افزودن مجموعهای از ویژگیهای جدید و در عین حال کاهش boilerplate گسترش میدهد.
۱۲. Dagger 2
ما نمیتونستیم این فهرست رو بدون گنجاندن Dagger، بهترین کتابخانه های اندروید نام گذاری کنیم. Dagger از میان انبوه چارچوبهای تزریق وابستگی متمایز است. کتابخانه dependency injector ، ارائه اجزای کوچکتر به مدل دیگر را آسانتر می کند و در عین حال آنها را متصل نگه می دارد.
مدیریت تزریق وابستگی در حین ساخت برنامه های بزرگتر مشکل خواهد بود. این بار، Dagger ما رو نجات خواهد داد زیرا از پردازشگرهای حاشیه نویسی برای ایجاد نمودار تزریق وابستگی در زمان کامپایل استفاده می کند.
درسته که درک این مبحث در ابتدا دشوار هستش اما وقتی به اون مسلط بشید دیگه هیچ وقت اونو رها نمیکنید چون که قلب تپنده برنامه های بزرگ هستش.
اگر به بازار کار هم سری بزنید متوجه میشید که ۹۰ درصد کارفرما ها از شما تسلط به Dagger یا تزریق وابستگی رو میخوان
البته با اومدن Koin و Hilt کار خیلی راحت تر شده.
۱۳. Glide
Glide یک API مفید هستش که به شما این امکان رو می دهه که تصویر رو به هر شکلی که می خواهید دستکاری کنید. اگر استفاده از API بارگیری و مدیریت تصویر اندروید دشوار شده است، این کتابخانه بارگیری تصویر می تواند کمک کند. بدون ایجاد “OutOfMemoryException” اندازه تصاویر را تغییر می دهد.
Fetching، decoding و نمایش تماسهای ویدیویی همگی توسط Glide و همچنین پشتیبانی از GIF متحرک در حین بارگذاری تصویر پشتیبانی میشوند.
بسیار سبک و سریع تصاویر رو لود میکنه و قابلیت های خیلی زیادی داره که حتما در موردش مطالعه کنید
کتابخونه مشابه اون Coil هستش که شما میتونید در اینجا مقاله اون رو مطالعه کنید.
۱۴. Room
با استفاده از این کتابخانه اندروید ایجاد برنامههای آفلاین آسانتر میشود . علاوه بر این، شما از قابلیت های SQLite در مدیریت داده ها نهایت استفاده را می برید.
درک این ماژول نسبت به سایر ORM ها بسیار آسان تر است زیرا از نحو و حاشیه نویسی های اولیه SQL استفاده می کند. این کتابخانه همچنین از Rx پشتیبانی می کند و عملکرد تحسین برانگیزی دارد.
هر برنامه نویس اندروید باید به این کتابخانه مسلط باشه چون که دیتابیس یا پایگاه داده در اکثر برنامه ها استفاده میشه.
۱۵. EasyPermissions
EasyPermissions یک بسته نرم افزاری اندروید M و بالاتر است که ورود مجوزهای اولیه سیستم را ساده می کند. می توان با استفاده از EasyPermissions ببیند آیا برنامه از قبل مجوزهای لازم را دارد یا خیر. این فرآیند می تواند هر تعداد مجوز را به عنوان ورودی نهایی بگیرد.
همچنین می توانید از EasyPermissions#requestPermissions برای درخواست مجوز استفاده کنید. این متد مجوزهای سیستم را می خواهد و در صورت لزوم specified justification string را نشان می دهد. از طرفی request code باید منحصر به این درخواست باشد.
۱۶. EventBus
هنگام ایجاد یک برنامه اندروید با چندین components فعال که با یکدیگر ارتباط برقرار می کنند، ممکن است با تعدادی چالش مواجه شوید. بهترین کتابخانه برای اندروید EventBus است که با در نظر گرفتن معماری publisher/subscriber برای حل این مشکل ایجاد شده است.
این کتابخانه فرستنده و گیرنده رویداد را از هم جدا کرده و تعاملات component را ساده کرده است. همچنین با Activities، Fragments، و رشته های پس زمینه سازگار است.
جمع بندی :
این کتابخونه هایی که معرفی شد جزء بهترین ها هستن و به شما کمک میکنن که اپلیکیشن های ریسپانسیو و موثر تولید کنید و اگر بخواید از این کتابخونه ها برای توسعه کدتون استفاده نکنید کار براتون بسیار سخت میشه و زمانتون از دست میره.امیدوارم که از مقاله بهره لازم رو ببرید.