داستان Jetpack چیست و چرا به وجود آمد؟
قبل از Jetpack توسعه اندروید چند مشکل بزرگ داشت:
- API های اندروید پراکنده و قدیمی بودند
- مدیریت lifecycle بسیار سخت بود
- برنامهها معماری استاندارد نداشتند
- ناسازگاری بین نسخههای مختلف اندروید زیاد بود
- هر تیم توسعهدهنده معماری خودش را میساخت
برای حل این مشکلات، گوگل در Google I/O 2018 مجموعهای از کتابخانهها را با نام Android Jetpack معرفی کرد.
هدف Jetpack:
- استاندارد کردن معماری اپلیکیشنها
- ساده کردن توسعه اندروید
- حل مشکلات lifecycle
- پشتیبانی بهتر از نسخههای مختلف اندروید
- افزایش سرعت توسعه
در واقع Jetpack یک جعبه ابزار رسمی گوگل برای ساخت اپلیکیشنهای اندروید مدرن، تمیز و قابل نگهداری است که در ادامه به بخش های مختلف ان می پردازیم.
بخشهای اصلی Android Jetpack
Jetpack به طور کلی در چند دسته اصلی تقسیم میشود:
- Architecture
- UI
- Behavior
- Foundation
در ادامه مهمترین کامپوننتهای هر بخش را میبینید:
1. Architecture (معماری)
ابزارهایی برای ساختاردهی بهتر اپلیکیشن و مدیریت دادهها.
ViewModel
دادههای UI را نگهداری میکند و در تغییرات lifecycle مثل چرخش صفحه از بین نمیرود.
LiveData
یک داده observable که به lifecycle وابسته است و UI را خودکار آپدیت میکند.
Room
لایهی abstraction روی SQLite که کار با دیتابیس را سادهتر میکند.
WorkManager
برای اجرای کارهای پسزمینه قابل اعتماد حتی اگر اپ بسته شود.
DataStore
جایگزین مدرن SharedPreferences برای ذخیره دادههای ساده.
Paging
برای بارگذاری تدریجی لیستهای بزرگ از سرور یا دیتابیس.
Navigation
مدیریت ناوبری بین Fragmentها و صفحهها به صورت استاندارد.
2. UI
ابزارهایی برای ساخت رابط کاربری.
Jetpack Compose
فریمورک مدرن و declarative برای ساخت UI بدون XML.
Fragment
مدیریت بخشهای قابل استفاده مجدد از UI داخل Activity.
ConstraintLayout
سیستم layout پیشرفته برای طراحی UI انعطافپذیر.
RecyclerView
نمایش لیستهای بزرگ با performance بالا.
ViewBinding / DataBinding
اتصال مستقیم Viewها به کد بدون findViewById.
Material Components
پیادهسازی کامپوننتهای طراحی Material Design.
Emoji
پشتیبانی از آخرین ایموجیها روی نسخههای قدیمی اندروید.
- Animation & Transition
ابزارهای ساخت انیمیشنهای UI.
- Auto Tv Wear
ابزارهایی برای ساخت نسخهی سازگار اپلیکیشن با محیط خودرو، تلویزیون و ساعت های هوشمند.
3. Behavior
ابزارهایی برای تعامل بهتر اپ با سیستم اندروید.
Permissions
مدیریت سادهتر مجوزهای اندروید.
Notifications
ساخت و مدیریت نوتیفیکیشنها.
Media
ابزارهای کار با صوت و ویدیو.
Sharing
اشتراکگذاری داده بین اپها.
DownloadManager
مدیریت دانلود فایلها بهصورت سیستممحور.
4. Foundation
پایههای فنی برای سازگاری با نسخههای مختلف اندروید.
AppCompat
فراهم کردن قابلیتهای جدید اندروید برای نسخههای قدیمیتر.
Android KTX
اکستنشنهای Kotlin برای کوتاهتر و خواناتر شدن کد.
Multidex
مدیریت محدودیت ۶۵K متد در اپلیکیشنها.
Test
ابزارهای تست واحد و UI برای اندروید.
در مقالات مجموعه مقالات بعدی سراغ تک به تک موارد میریم و به جزئیات بیشتری میپردازیم.