اخبار محصول

جشن ۵ سالگی Jetpack Compose

۴ دقیقه مطالعه
۳ نویسنده
Rebecca Franks, Nick Butcher, Loryn Hairston

امروز، ما رسماً پنجمین سالگرد انتشار Jetpack Compose 1.0 را جشن می‌گیریم. از نسخه ۱.۰ که در ۲۸ جولای ۲۰۲۱ اعلام شد ، تا آخرین نسخه ۱.۱۱ ، شاهد تکامل قابل توجه APIها در طول این سال‌ها بوده‌ایم و اکنون لحظه‌ای را برای جشن گرفتن در نظر می‌گیریم.

وقتی رسماً نسخه ۱.۰ را اعلام کردیم، قول دادیم که روشی ساده‌تر، سریع‌تر و شهودی‌تر برای ساخت رابط‌های کاربری بومی در اندروید ارائه دهیم. با نگاهی به گذشته، می‌توان با اطمینان گفت که Compose نه تنها به آن وعده عمل نکرد، بلکه اکوسیستم اندروید را نیز کاملاً تغییر داد، به طوری که امروزه بیش از ۶۸٪ از ۱۰۰۰ برنامه برتر از آن در تولید استفاده می‌کنند.

تاریخچه

در طول پنج سال گذشته، Compose به طور پیوسته رشد کرده است. در روزهای اولیه ، ما به شما نشان دادیم که چگونه با استفاده از Box، Row و Column طرح‌بندی‌هایی بسازید. امروزه، Compose را گسترش داده‌ایم تا نه تنها روی دستگاه‌های تلفن همراه، بلکه روی سایر فرم‌فکتورها مانند Compose برای تلویزیون ، WearOS ، Glance برای ابزارک‌ها و حتی عینک‌های نمایش با Jetpack Compose Glimmer نیز کار کند.

jetpack_compose_everywhere.png

ما یک قسمت از پشت صحنه توسعه‌دهندگان اندروید را با کلارا بایاری ، سرپرست مهندسی جت‌پک، و دو سرپرست سابق تیم، رومن گای و چت هاسه ، به همراه تور نوربای ، مدیر ارشد مهندسی، ضبط کردیم. در این قسمت، آنها در مورد تاریخچه Compose و روزهای اولیه توسعه آن بحث می‌کنند.

جدول زمانی.png
نکات برجسته را در طول سال‌ها بنویسید

نگاهی به گذشته

آغاز Compose با آنچه امروز می‌شناسید بسیار متفاوت بود. دو پروژه به طور موازی در تیم اندروید در حال انجام بودند.

در آن زمان، تیم ابزار Views به فکر جداسازی ابزار UI در یک کتابخانه بود تا به سرعت توسعه کمک کند و پذیرش و کنترل به‌روزرسانی‌ها را برای توسعه‌دهندگان آسان‌تر کند. در همین حال، تیمی روی ایده جدیدی برای ساخت طرح‌بندی‌های اعلانی با جاسازی XML در کاتلین کار می‌کرد که چیزی شبیه به این بود:

jetpack_compose_early_code.png

این دو تلاش با هم ادغام شدند تا چیزی را که امروز می‌شناسید، تولید کنند - یک جعبه ابزار رابط کاربری کاملاً اعلانی که از قدرت یک افزونه کامپایلر، زمان اجرا و کاتلین بهره می‌برد:

@Composable
fun Newsfeed(stories: List<Story>) {
    LazyColumn {
        items(stories) { story ->
            Card {
                val author = story.author
                Image(painterResource(author.profilePhoto),
                    contentDescription = author.name)
                Text(author.name)
                Text(story.content)
                if (story.hasCommentsEnabled()) {
                    for(comment in story.comments) {
                        Text(comment.mainContent)
                    }
                }
            }
        }
    }
}

و شما، جامعه، خیلی زود به ما کمک کردید! قبل از سال 2021، Compose یک مرحله پیش‌آلفا داشت که به ما کمک کرد تا مطمئن شویم Compose برای حل مشکلات توسعه‌دهندگان ما مناسب است.

یکی از خاطرات مورد علاقه ما چالش توسعه‌دهندگان اندروید است. ما جامعه را به چالش کشیدیم تا چهار وظیفه مختلف را با Compose بسازند، فیدهای ما را با برنامه‌های Puppy، ساعت‌ها و برنامه‌های آب و هوا پر کنند و کلی بازخورد مستقیم به ما بدهند که به شکل‌گیری نسخه ۱.۰ کمک کرد.

Compose به تکامل خود ادامه داده است، از زمان عرضه با مجموعه‌ای از کامپوننت‌های Material 2 تا اکنون که از Material 3 Expressive پشتیبانی می‌کند.

material2.png
ماده ۲ در نوشتن

با نگاهی به آینده

تا به امروز، Compose 1.11 آخرین نسخه است و نسخه 1.12 نیز به زودی منتشر خواهد شد که امکانات بسیار بیشتری نسبت به نسخه 1.0، که 5 سال پیش منتشر شده بود، ارائه می‌دهد. امسال، APIهای تطبیق‌پذیرتری مانند FlexBox ، Grid ، MediaQuery و Styles را معرفی کردیم. این APIها به شما امکان می‌دهند با Compose به سطح بعدی توسعه رابط کاربری تطبیق‌پذیر و ممتاز برسید.

در کنفرانس Google I/O 2026، اعلام کردیم که اکنون Compose-first هستیم، به این معنی که تمام توسعه‌های رابط کاربری آینده فقط در Compose اتفاق می‌افتد، در حالی که ابزار Views وارد حالت تعمیر و نگهداری می‌شود. طراحی متریال نیز به طور کامل تمرکز خود را به Compose تغییر می‌دهد و این نشان دهنده پایان findViewById era است.

جامعه در قلب Compose قرار دارد

در طول این سال‌ها، شما با مثال‌های خلاقانه‌ای از نحوه‌ی استفاده‌تان از Compose به ما الهام بخشیده‌اید و ما دوست داریم چند نمونه‌ی دیگر از کارهایی که در آن‌ها شاهد هیجان بوده‌ایم را برجسته کنیم. JetBrains با Compose شریک بسیار خوبی برای گوگل بوده است و Compose را برای کار در پلتفرم‌های مختلف با Compose Multiplatform گسترش داده و به توسعه‌دهندگان دسکتاپ، iOS و وب این امکان را داده است که از مزایای Compose نیز بهره‌مند شوند.

ما واقعاً از دنبال کردن خبرنامه‌های محبوبمان از JetpackCompose.app’s Dispatch ، AndroidWeekly و jetc لذت برده‌ایم - که به توسعه‌دهندگان اندروید کمک می‌کند تا از آخرین اخبار دنیای Compose و اندروید مطلع باشند.

یکی دیگر از مشارکت‌کنندگان برجسته sinasamaki است. آن‌ها با استفاده از Compose تجربیات لذت‌بخش زیادی ایجاد کرده‌اند، مانند این اصلاح‌کننده روبان سرگرم‌کننده و جلوه glitchy:

ribbon_modifier_sinasamaki.gif

ساکت نارایان همچنین همیشه در ایجاد ابزارهای مفید برای Compose الهام‌بخش بوده است، مانند telephoto ، کتابخانه‌ای که از حرکات pan و zoom و نمونه‌برداری خودکار از تصاویر بزرگ پشتیبانی می‌کند، یا جدیدترین کتابخانه، Touch Robot ، که به شما امکان می‌دهد انیمیشن‌های تعاملی را به راحتی آزمایش کنید:

paparazzi.gif(end = 3_000) {
  DebitCard(
    Modifier.testTag("card")
  )

  val touchRobot = rememberTouchRobot()
  LaunchedEffect(Unit) {
    touchRobot.onNode(hasTestTag("card")).performGesture {
      draw(
        path = createAndroidHeadPath(),
        duration = 3.seconds,
      )
    }
  }
}

/** A path drawing the Android head. */
fun createAndroidHeadPath(bounds: Rect): Path = TODO()
saket_touch_robot.gif

جیک وارتون ، که از Compose به روش‌های نوآورانه‌ای استفاده کرده است (مانند molecule و حتی ساخت رابط کاربری با Compose برای ترمینال با mosaic ). کریس بینز، که در طول سال‌ها کتابخانه‌های Compose زیادی ساخته است، از جمله جدیدترین کتابخانه مورد علاقه ما - Haze برای تار کردن پس‌زمینه، و بسیاری از متخصصان توسعه‌دهنده اندروید گوگل مانند Akshay Chordiya ، Huyen Tue Dao و Katie Barnett که در موفقیت Compose نقش داشته‌اند. اما این مربوط به انتخاب افراد نیست - مشارکت‌کنندگان بسیار خوبی در پایگاه کد Compose وجود داشته‌اند و بسیاری از شما همچنان با مثال‌های سرگرم‌کننده، کتابخانه‌ها و گفتگوهای عمیق خود به ما الهام می‌بخشید. بدون این جامعه، Jetpack Compose به اندازه امروز موفق نمی‌بود.

به سلامتی ۵ سال آینده و حتی بیشتر!

Jetpack Compose از یک ایده آزمایشی به استانداردی برای توسعه رابط کاربری اندروید تبدیل شده است. از تمام تیم Toolkit در گوگل و جامعه توسعه‌دهندگان جهانی فوق‌العاده که کتابخانه‌ها را نوشتند، اشکالات را ثبت کردند و مرزهای قابلیت‌های رابط کاربری اعلانی را گسترش دادند، متشکریم.

این هفته، ما با برگزاری جشن تولدهای حضوری در سراسر جهان و یک «جشن تولد» زنده در کانال یوتیوب توسعه‌دهندگان اندروید در تاریخ 30 جولای ساعت 13:00 به وقت جهانی، این جشن را برگزار خواهیم کرد. در این مدت، ما در مورد Compose صحبت خواهیم کرد و به سوالات شما پاسخ خواهیم داد!

به امید ۵ سال آینده، و آهنگسازی شاد!

    نوشته شده توسط:
    ادامه مطلب