جت پک کمپوز، انقلابی در اندروید

چند روزیه که جت پک کمپوز استیبل شده و من از وقتی که وارد کانال بتا شد از اون استفاده کردم و قصد دارم از تجربیاتم تو این مدت بگم :)



از بزرگترین و مهم ترین رویداد هایی که امسال در برنامه نویسی اندروید اتفاق افتاد، میشه به این موارد اشاره کرد:

  • انتشار نسخه 1.5 کاتلین، که به گفته‌ی شرکت جت برینز بزرگ ترین رویداد سال ۲۰۲۱ بود!
  • نسخه بتا و در نهایت انتشار جت پک کمپوز، فریمورکی برای طراحی یو ای به صورت declarative در اندروید
  • اندروید استدیو نسخه Arctic fox، با قابلیت های زیادی مانند ادیتور و نمایشگر جت پک کمپوز و کلی امکانات دیگه...

خب حالا جت پک کمپوز چیه؟

ی ابزار برای ساخت و توسعه یو ای به صورت declarative هست که از زبان برنامه نویسی کاتلین استفاده می‌کنه و نسبت به روش و ابزار های قدیمی برای ساخت یو ای، کد کمتری نوشته میشه و باگ های کمتری در روند ساخت یو ای به وجود میاد! اگه با فلاتر یا ری اکت نیتیو کار کردید بیشتر با مفهوم declarative آشنایی دارید!

اگر با مفهوم declarative آشنایی ندارید حتما مقاله های زیر را مطالعه کنید:

https://virgool.io/@leaksin/%DA%A9%D8%AF%D9%90-declarative-%DB%8C%D8%A7-%D8%A7%D8%B9%D9%84%D8%A7%D9%86%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-y2wbwbq7lsnt


https://virgool.io/devAndroid/%D9%85%D9%81%D9%87%D9%88%D9%85-declarative-ui-%DB%8C%D8%A7-%D8%B1%D8%A7%D8%A8%D8%B7-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C-%D8%A7%D8%B9%D9%84%D8%A7%D9%86%DB%8C-n74m3jhpl9cw


از کجا جت پک کمپوز رو یاد بگیرم؟

برای شروع یادگیری اول مطمئن شوید که از آخرین نسخه اندروید استدیو یعنی arctic fox استفاده می‌کنید و سپس با استفاده از داکیومنت ها و کد لب هایی که در صفحه رسمی جت پک کمپوز برای شما قرار داده شده است می‌توانید یادگیری را شروع کرده و حتی اپ های قدیمی خودتون رو با اون ریفکتور کنید :)

سمپل کد های کمپوز:

https://github.com/android/compose-samples


https://github.com/jetpack-compose/jetpack-compose-awesome


ریپازیتوری پروژه دانشگاه خودمو هم اینجا میذارم شاید به کارتون بیاد :)

https://github.com/moeindev/InstaWeather


در آخر هم توجه‌تون رو به این رشته توییت از آقای ادیب فرامرزی از تیم تپسی در مورد جت پک کمپوز جلب می‌کنم که نکات خیلی مهمی رو راجب کمپوز توضیح داده و از تجربه‌ش با کمپوز گفته:

https://twitter.com/TheSNAKY/status/1416453656870805516

تجربه شخصی خودم:

برای پروژه آخر ترم دانشگاه دوست داشتم که کار جدیدی انجام بدم و از این روال تکراری استفاده از دیتابایندینگ یا ویوبایندینگ خسته شده بودم تا اینکه به فکرم رسید که از جت پک کمپوز استفاده کنم که به تازگی وارد کانال بتا شده!

نکته در مورد کانال های رلیز کتابخانه های گوگل:

  • آلفا: در این فاز خیلی از APIها استیبل نیستن و ممکنه در هر نسخه به کلی عوض بشن و مجبور بشید که کل کدی که نوشتید رو بازنویسی کنید. ( تجربه ای که تو این چند وقت با نسخه کمپوز کتابخونه لاتی(Lottie) داشتم که کلا اسم متود ها و سینتکسشو عوض کرد!)
  • بتا: تو این فاز اکثر APIهای مربوطه استیبل شده و باگ های بزرگ و اشکالات نسخه آلفا رو نداره. این نسخه معمولا بهترین وقتیه که قصد دارید یک فریمورک رو تست کنید!
  • آرسی(RC): باگ های جزئی نسخه بتا در این نسخه رفع شده و برای رلیز نهایی استیج شده و یکبار دیگه تست میشه.
  • نهایی: بعد از چنل RC نسخه نهایی منتشر میشه و فاصله بین RC و رلیز نهایی معمولا کمتر از یک هفته هست!


طی این چند ماه تجربه لذت بخشی از کمپوز داشتم و هیچ وقت دوست ندارم که دوباره با XML کار کنم:) تنها مشکلی که طی این چند ماه وجود داشت سر آپدیت های اندروید استدیو و کتابخونه ها بود که بعضی وقتا باهم همخونی نداشتن و یهو کل پروژه میرفت رو هوا :(


اگه بازم وقت داشته باشم این مقاله رو کامل تر می‌کنم و ی سری مقاله راجب کمپوز منتشر می‌کنم پس یادتون نره انتشارات و من رو فالو کنید که اگه مطلب جدیدی گذاشتم سریعتر خبردار بشید :)