Jetpack در اندروید چیست و چرا باید از آن استفاده کنیم؟
Jetpack در اندروید مجموعه ای از ابزارها، کامپوننت ها و راهنمایی هاییست تا بتوان برنامه های کاربردی اندروید را آسان و سریع ایجاد کرد. کامپوننت های Jetpack در اندروید پشتیبانی از کتابخانه و مؤلفههای معماری موجود را به هم متصل میکنند و آنها را به چهار دسته تقسیم میکنند:
اجزای JetPack در اندروید
اجزای Android jetpack به عنوان کتابخانه “unbundled” ارائه میشوند یعنی جزئی از پلتفرم اندروید نیستند. این به این معنی است که شما میتوانید هر کامپوننت را با سرعت و در یک زمان انتخاب کنید. زمانی که سیستمعامل اندروید جدید در دسترس است، میتوانید Android jetpack را به برنامه خود اضافه کنید، برنامه خود را در Play Store قرار دهید و تمام ویژگیهای جدید را در یک روز (در صورت سریع بودن) به کاربران نشان دهید! کتابخانه های unbundled Android Jetpack همه به namespace جدید androidx.* منتقل شده اند که از API های سیستم عامل جدا نشده است. این بدان معنی است که Jetpack با کل مجموعه سازگار شده است و اجزای Android Jetpack می توانند قابلیت های خود را مستقل از هر نسخه خاص ارائه دهند.
این مجموعه در موارد زیر به ما کمک می کنند:
- پیروی از بهترین روش نوشتن boilerplate Code و جلوگیری از نوشتن کدهای تکراری
- آسان ساختن کارهای پیچیده
که پیش از این، چالش های زیادی مانند موارد زیر وجود داشت:
- مدیریت activity lifecycles (چرخه حیات اکتیویتی)
- تغییرات پیکربندی Surviving
- جلوگیری از Crash کردن و خطای memory leaks
راه حل همه این مشکلات Jetpack در اندروید است و تمام این موارد با Jetpack در اندروید برطرف شده است.
آپدیتهای Android Jetpack زودتر از آپدیتهای سیستم عامل اندروید ارائه میشود و این امر باعث میشود ما همیشه ورژن بروز شده آن را دریافت کنیم.
Android Jetpack دارای 5 جزء جدید است که عبارتند از:
- WorkManager alpha release
- Navigation alpha release
- Paging stable release
- Slices alpha release
- Android KTX (Kotlin Extensions) alpha release
WorkManager
WorkManager یک کتابخانه قدرتمند است که می تواند زمانبندی کارهایی که نیاز به زمان زیادی دارند را در بکگراند مدیریت کند. این کتابخانه یک api ساده و مدرن است که توانایی کار بر روی دستگاه ها با یا بدون Google Play Services را فراهم می کند همچنین توانایی ایجاد گراف کار و توانایی درخواست query در حالت کار را نیز دارد. می توانید برای اطلاعات بیشتر the WorkManager component را مطالعه کنید.
Navigation
در حالی که activity های سیستم، ورودی به UI برنامه شما را فراهم میآورد، انعطافناپذیری آنها در زمان به اشتراک گذاری دادهها بین یکدیگر و انتقال آنها به یک معماری ایدهآل، برای ساخت navigation در درون برنامه، تبدیل کرده است؛ بنابراین در GoogleIO18 کامپوننت Navigation به عنوان فریمورک برای ساخت UI برنامه هایی با تنها یک اکتیویتی معرفی شد. با استفاده از پشتیبانی box support برای Fragments، تمام مزایای مولفه های معماری مانند Lifecycle و ViewModel را دریافت می کنید در حالی که به Navigation اجازه می دهید تا پیچیدگی FragmentTransactions را برای شما انجام دهد. علاوه بر این کامپوننت های Navigation اجازه اعلام انتقال را می دهند و به طور خودکار رفتن به صفحات قبل و بعد را به درستی انجام می دهند همچنین از پیوندهای عمیق پشتیبانی می کند و در اتصال ویجت های UI به اجزایی مانند navigation drawer و bottom navigation کمک می کند؛ اما این همه چیز نیست! Navigation Editor در Android Studio 3.2 به شما امکان می دهد ویژگی های navigation خود را بصورت بصری مشاهده و مدیریت کنید:
Paging
داده های زیاد و پرحجم در یک برنامه ممکن است مشاهده آن را طولانی و زمانبر کند برای این مورد شما می توانید از نمایش یکباره حجم عظیم اطلاعات جلوگیری کنید. Paging component version 1.0.0 این مشکل را حل کرده است و برای نمایش و اسکرول در RecyclerView مناسب است. این کامپوننت می تواند داده ها حافظه محلی، شبکه یا هر دو را صفحه بندی کند و به تدریج با تنظیماتی که انجام داده اید بارگذاری نماید. این کامپوننت با Room، LiveData و RxJava خارج از کادر کار میکند.
Slices
و در آخر اینکه Slices کامپوننتی است که Jetpack در اندروید برای تکمیل مجموعه ویژگی های خود گرد هم آورده است. یک Slice راهی برای پوشش UI شما در داخل Google Assistant می باشد. به نمونه جستجوی زیر دقت کنید:
Android KTX
و اما نکته آخر، Jetpack در اندروید از ویژگی های زبان Kotlin استفاده می کند که می تواند کد برنامه شما را کم حجم تر و بهینه تر کند. Android KTX به شما امکان می دهد تا کد Kotlin را به صورت زیر تغییر دهید:
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
});
کد Android KTX به صورت زیر نوشته میشود:
view.doOnPreDraw { actionToBeTriggered() }
کامپوننت های Android Jetpack
کامپوننت های Jetpack در اندروید مجموعه ای از کتابخانه هاست که ضمن بهره گیری از ویژگی های زبان Kotlin که باعث تولید برنامه های ما میشود، بصورت جداگانه ساخته و قابل استفاده هستند.
این کامپوننت ها در 4 دسته قرار گرفته اند که شامل موارد زیر می شوند:
- Foundation Components (کامپوننت های پایه)
- Architecture Components (کامپوننت های معماری)
- Behavior Components (کامپوننت های رفتاری)
- UI Components
در ادامه هر کدام را بیشتر شرح می دهیم:
Foundation Components
Foundation Components موارد زیر را ارائه می دهند:
- سازگاری با تمام ورژن های قبلی اندروید
- تست برنامه
- پشتیبانی از زبان Kotlin
Foundation Component ها به شرح زیر هستند:
App Compat: در نسخه های قدیمی تر اندروید با پشتیبانی از رابط کاربری طراحی شدند.
Android KTX: استفاده از افزونه ها برای نوشتن کدهای ساده و مختصر کاتلین
Multidex: پشتیبانی از برنامه با multiple dex files
Test: framework تست برای تست UI برنامه ها در حالت runtime یا unit
Architecture Components
Architecture Components در ساخت برنامه ها با ویژگی های زیر به ما کمک می کنند:
- برنامه های قوی
- برنامه های قابل تست
- قابلیت نگهداری برنامه ها
Architecture Component ها به شرح زیر هستند:
- Data Binding: اتصال داده ها به عناصر UI
- Lifecycles: مدیریت چرخه حیات اکتیویتی و فرگمنت ها
- LiveData: نمایش نوتیفیکیشن هنگامی که تغییری در دیتابیس انجام شود
- Navigation: با navigation می توان هر چیزی که در برنامه وجود دارد را مدیریت کرد
- Paging: دریافت تدریجی داده های مورد نیاز از منبع داده
- Room: دسترسی به دیتابیس SQLite
- ViewModel: مدیریت هوشمند داده های نمایشی UI با استفاده از چرخه حیات اکتیویتی
- WorkManager: مدیریت برنامه های در حال اجرا در پس زمینه برنامه اندرویدی
Behavior Components
Behavior Components برای ادغام شدن با سرویس های استاندارد اندروید در موارد زیر به ما کمک می کند:
- Notifications (اعلان ها)
- Permissions ( مجوزها)
- Sharing (اشتراک گذاری)
- Assistant (دستیار)
Behavior Component ها به شرح زیر هستند:
- Download Manager: مدیریت دانلودهایی حجیم در پس زمینه با قابلیت سعی مجدد
- Media & playback: API های سازگار با playback و routing (شامل Google Cast)
- Notifications: API های کاملاً سازگار و پشتیبانی از Wear و Auto
- Permissions: API های سازگاری برای بررسی و درخواست مجوز در برنامه
- Preferences: ایجاد صفحه تنظیمات تعاملی برای پیکربندی
- Sharing: عملکرد اشتراک گذاری مناسب برای همه برنامه های ارائه شده
- Slices: ایجاد UI انعطاف پذیر به طوری که بتوان داده ها را خارج از اپلیکیشن نمایش داد و تا اندروید 4.4 قابل گسترش هستند.
UI Components
UI Components به شما کمک می کند تا برنامه شما علاوه بر اینکه آسان ساخته میشود لذت بخش هم باشد.
UI Component ها به شرح زیر هستند:
- Animation and transitions: جابجایی بین صفحات یا ویجت ها
- Auto: Component هایی برای نمایش مناسب برنامه های اندروید در هر صفحه ای
- Emoji: فعال کردن فونت Emoji روی پلتفرم های قدیمی
- Fragment: یک واحد پایه UI قابل مقایسه
- Layout: ویجت ها را با استفاده از الگوریتم های مختلف تنظیم می کند.
- Palette: اطلاعات مفیدی از پالت های رنگی می دهد.
- TV: کامپوننت هایی برای توسعه برنامه های Android TV
- Wear: کامپوننت هایی برای توسعه برنامه های Wear
نتیجه گیری
همانگونه که در این آموزش مشاهده کردید Jetpack اینگونه در اندروید به ما کمک می کند و ما باید شروع پروژه های اندروید استفاده از آن ها کنیم چون اینکار می تواند کاربر کلی و سرعت اپلیکیشن را بهبود ببخشد. خیلی خوشحال می شویم نظر خود را در مورد Jetpack در اندروید با ما در میان بگذارید.
دیدگاهتان را بنویسید