کامپوز چیه؟ فرق بین Compose و XML در اندروید
گوگل 2 هفته پیش (29/7/2021) نسخه پایدار کامپوز (Compose) رو معرفی کرد.
به کمک کامپوز میتونی برای اپلیکیشن خودت رابط کاربری طراحی کنی.
یعنی دقیقا کاری که XML انجام میداد.
ولی کامپوز نسبت به روش قبلی یعنی ایکسامال سرعت خیلی بیشتری داره.
کامپوز چیه؟
همونطور که بالا توضیح دادم کامپوز یک کتابخونه ای در زمینه طراحی و ساخت رابط کاربری هستش.
ولی برای اینکه با کامپوز بتونی برای اپلیکیشن خودت رابط کاربری طراحی کنی، باید به زبان کاتلین کد بزنی.
تا قبل از تاریخ 29/7/2021 کامپوز توی نسخه بتا قرار داشت و خب همونطور که میدونی نسخه های بتای هیچ چیزی برای پروژه های بزرگ مناسب نیستش.
ولی از این تاریخ به بعد دیگه کامپوز به نسخه پایدار یا 1 رسیده و دیگه با خیال راحت میشه ازش استفاده کرد.
ایده اصلی کامپوز درواقع برای گوگل نیستش.
گوگل این ایده رو از اپل کپی کرده.?
اپل تقریبا 5 سال پیش روشی رو با نام SwiftUI معرفی کرد که به واسطه اون روش برنامه نویس ها با زبان سوئیفت میتونستن برای اپلیکیشن های خودشون رابط کاربری طراحی کنن.
اینطوری دستشون هم برای درست کردن انواع انیمیشن ها خیلی بازتر بود.
2 سالی هم هست که گوگل با الگو برداری از اپل روی کامپوز کار میکنه و حالا نسخه نهایی اون رو عرضه کرده.
مزایا Compose نسبت به XML چیه؟
- کامپوز سرعت خیلی زیادی نسبت به ایکسامال داره.
- کامپوز فشار خیلی کمتری رو به سخت افزار میاره.
- ارتباط سریع بین المان های رابط کاربری با بخش لاجیک بوجود میاد.
- کارایی (performance) کامپوز به نسبت ایکسامال خیلی زیاده.
- زمان اجرا شدن کمتری نسبت به ایکسامال داره.
معایب کامپوز نسبت به ایکسامال چیه؟
- کامپوز خیلی تازه کاره و جا واسه پیشرفت خیلی زیادی داره.
- فعلا نمیشه به طور %100 توی اپلیکیشن های خیلی بزرگ ازش استفاده کرد چون با بعضی از بخش ها به مشکل میخوره.
- باعث شلوغ تر شدن کدها میشه.
ممکنه ایکسامال نابود بشه؟
قطعا تا 3 سال آینده، خیر!
چرا؟ چون ایکسامال حاصل 13 سال تجربه هستش.
همه برنامه نویس های اندروید بلااستثنا با ایکسامال آشنایی دارن.
ولی کامپوز فعلا تازه چند هفته هستش که معرفی شده!
تا همهگیر شدن کامپوز حداقل 3 سال زمان میبره! حداااقل!
پس خیالت راحت باشه که حالاحالاها ایکسامال از بین نمیره.
برای ایکسامال هزاران کتابخونه و … وجود داره! مگه ممکنه که به این آسونیا از بین بره؟!?
نحوه استفاده از Compose
کامپوز بر خلاف ایکسامال داخل خود SDK اندروید به صورت پیشفرض قرار نگرفته!
باید اون رو به صورت مجزا به پروژه اضافه کنی.
برای استفاده از کامپوز باید کتابخونه های زیر رو به پروژه خودت اضافه کنی.
کتابخونه اصلی و پایه ای کامپوز
implementation("androidx.compose.ui:ui:1.0.1")
کتابخونه کامپوز برای پشتیبانی از حالت پیش نمایش
implementation("androidx.compose.ui:ui-tooling:1.0.1")
کتابخونه کامپوز برای پشتیبانی از موارد اضافی مانند پسزمینه ها ، حاشیه ها، جعبه ها و …
implementation("androidx.compose.foundation:foundation:1.0.1")
کتابخونه کامپوز برای پشتیبانی از متریال دیزاین
implementation("androidx.compose.material:material:1.0.1")
کتابخونه کامپوز برای پشتیبانی از آیکن های متریال دیزاین
implementation("androidx.compose.material:material-icons-core:1.0.1") implementation("androidx.compose.material:material-icons-extended:1.0.1")
با این کتابخونه ها میتونی از کامپوز توی پروژه های خودت استفاده کنی.
نمونه کد پیاده سازی شده
به تصویر زیر با دقت نگا کن.
این یک نمونه از المان های ساخته شده توسط کامپوز هستش.
همانطور که میبینی به وسیله کدهای کاتلین ساخته شده.
خب طبیعتا یکسری متدهای خاص خودشم داره که با ترکیب کردن اون متدها توسط زبان کاتلین میشه رابط کاربری متنوعی رو برای اپلیکیشن طراحی کرد.
دوستان توی این مطلب صرفا میخواستم شما رو با کتابخونه Jetpack Compose آشنایی کنم.
توی پست های آینده حتما آموزش کار کردن با این کتابخونه رو هم بهتون آموزش میدم.