ข่าวสารเกี่ยวกับผลิตภัณฑ์

ฉลองครบรอบ 5 ปีของ Jetpack Compose

ใช้เวลาอ่าน 5 นาที
ผู้เขียน 3 คน
Rebecca Franks, Nick Butcher, Loryn Hairston

วันนี้เราจะฉลองครบรอบ 5 ปีอย่างเป็นทางการนับตั้งแต่เปิดตัว Jetpack Compose 1.0 ตั้งแต่เวอร์ชัน 1.0 ที่ประกาศเมื่อวันที่ 28 กรกฎาคม 2021 ไปจนถึง เวอร์ชัน 1.11 ล่าสุด เราได้เห็นการพัฒนา API อย่างมากในช่วงหลายปีที่ผ่านมา และขอใช้โอกาสนี้ฉลองกัน

เมื่อประกาศเปิดตัวเวอร์ชัน 1.0 อย่างเป็นทางการ เราสัญญาว่าจะมอบวิธีที่ง่ายขึ้น เร็วขึ้น และใช้งานง่ายขึ้นในการสร้างอินเทอร์เฟซที่ใช้กับ Android โดยเฉพาะ เมื่อมองย้อนกลับไป เราพูดได้อย่างเต็มปากว่า Compose ไม่เพียงแต่ทำตามสัญญาเท่านั้น แต่ยังเปลี่ยนระบบนิเวศของ Android ไปอย่างสิ้นเชิง โดยมีแอปยอดนิยม 1,000 อันดับแรกกว่า 68% ที่ใช้ Compose ในการใช้งานจริงในปัจจุบัน

ประวัติ

Compose เติบโตขึ้นอย่างต่อเนื่องในช่วง 5 ปีที่ผ่านมา ใน ช่วงแรกๆ  เราได้สำรวจการแสดงวิธีสร้างเลย์เอาต์ด้วย Box, Row และ Column พื้นฐาน ปัจจุบันเราได้ขยาย Compose ให้ทำงานได้ไม่เพียงแค่ในอุปกรณ์เคลื่อนที่เท่านั้น แต่ยังรวมถึงรูปแบบของอุปกรณ์อื่นๆ เช่น Compose สำหรับ TV, WearOS, Glance for Widgets, และแม้แต่แว่นตาที่มีจอแสดงผลด้วย Jetpack Compose Glimmer ด้วย

jetpack_compose_everywhere.png

เราได้บันทึกตอนหนึ่งของ Android Developers Backstage กับ Clara Bayarri หัวหน้าทีมวิศวกรรมของ Jetpack และหัวหน้าทีม 2 คนก่อนหน้านี้ ได้แก่ Romain Guy และ Chet Haase รวมถึง Tor Norbye ผู้อำนวยการอาวุโสด้านวิศวกรรม ในตอนนี้ พวกเขาจะพูดคุยเกี่ยวกับประวัติของ Compose และช่วงแรกๆ ของการพัฒนา

ไทม์ไลน์.png
ไฮไลต์ของ Compose ในช่วงหลายปีที่ผ่านมา

มองย้อนกลับไป

จุดเริ่มต้นของ Compose แตกต่างจากสิ่งที่คุณรู้จักในปัจจุบันมาก โดยมี 2 โปรเจ็กต์ที่เกิดขึ้นพร้อมๆ กันภายในทีม Android

ในขณะนั้น ทีมชุดเครื่องมือ Views กำลังคิดที่จะแยกชุดเครื่องมือ UI ออกเป็นไลบรารีเพื่อช่วยให้การพัฒนาเร็วขึ้น และช่วยให้นักพัฒนาแอปนำไปใช้และควบคุมการอัปเดตได้ง่ายขึ้น ขณะเดียวกัน ทีมหนึ่งกำลังทำงานเกี่ยวกับแนวคิดใหม่ในการสร้างเลย์เอาต์แบบประกาศสิ่งที่ต้องการโดยการฝัง XML ไว้ใน Kotlin ซึ่งมีลักษณะดังนี้

jetpack_compose_early_code.png

ความพยายามทั้ง 2 อย่างนี้ได้รวมกันจนกลายเป็นสิ่งที่คุณรู้จักในปัจจุบัน นั่นคือ ชุดเครื่องมือ UI แบบประกาศสิ่งที่ต้องการอย่างเต็มรูปแบบซึ่งใช้ประโยชน์จากปลั๊กอินคอมไพเลอร์ รันไทม์ และ Kotlin

@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 เหมาะสมที่จะแก้ปัญหาของนักพัฒนาแอปของเรา

ความทรงจำที่โปรดปรานอย่างหนึ่งของเราคือ Android Dev Challenge เราท้าทายชุมชนให้สร้างงาน 4 อย่างที่แตกต่างกันด้วย Compose ซึ่งทำให้ฟีดของเราเต็มไปด้วยแอป Puppy, นาฬิกา และแอปสภาพอากาศ รวมถึงได้รับความคิดเห็นโดยตรงมากมายที่ช่วยกำหนดทิศทางในการเปิดตัวเวอร์ชัน 1.0

Compose ได้รับการพัฒนาอย่างต่อเนื่อง ตั้งแต่การเปิดตัวพร้อมกับคอมโพเนนต์ Material 2 ไปจนถึงการรองรับ Material 3 Expressive ในปัจจุบัน

material2.png
Material 2 ใน Compose

มองไปข้างหน้า

ปัจจุบัน Compose 1.11 เป็นเวอร์ชันล่าสุด และเวอร์ชัน 1.12 จะเปิดตัวในเร็วๆ นี้ ซึ่งมีฟีเจอร์มากมายกว่าเวอร์ชัน 1.0 ที่เปิดตัวเมื่อ 5 ปีที่แล้ว ในปีนี้ เราได้เปิดตัว API ที่ปรับเปลี่ยนได้มากขึ้น เช่น FlexBox, Grid, MediaQuery, และ Styles API เหล่านี้ช่วยให้คุณก้าวไปอีกขั้นในการพัฒนา UI ที่ปรับเปลี่ยนได้ระดับพรีเมียมด้วย Compose

ในงาน Google I/O 2026 เราได้ประกาศว่าตอนนี้เราเป็น Compose-first แล้ว ซึ่งหมายความว่าการพัฒนา UI ทั้งหมดในอนาคตจะเกิดขึ้นใน Compose เท่านั้น ขณะที่ชุดเครื่องมือ Views จะเข้าสู่โหมดการบำรุงรักษา Material Design ก็จะ เปลี่ยนไปมุ่งเน้น ที่ Compose อย่างเต็มที่เช่นกัน ซึ่งเป็นการส่งสัญญาณว่า findViewById era

ชุมชนเป็นหัวใจสำคัญของ Compose

ในช่วงหลายปีที่ผ่านมา คุณได้สร้างแรงบันดาลใจให้เราด้วยตัวอย่างที่สร้างสรรค์ในการใช้ Compose และเรายินดีที่จะไฮไลต์ตัวอย่างเพิ่มเติมของงานที่น่าตื่นตาตื่นใจที่เราได้เห็น JetBrains เป็นพาร์ทเนอร์ที่ยอดเยี่ยมของ Google ในการใช้ Compose โดยได้ขยาย Compose ให้ทำงานได้ในหลายแพลตฟอร์มด้วย Compose Multiplatform และช่วยให้นักพัฒนาแอปบนเดสก์ท็อป, iOS และเว็บได้รับประโยชน์จาก Compose ด้วย  

เราสนุกกับการติดตามจดหมายข่าวที่ได้รับความนิยมมากที่สุดจาก JetpackCompose.app’s Dispatch, AndroidWeekly ไปจนถึง jetc ซึ่งช่วยให้นักพัฒนาแอป Android ได้รับข้อมูลล่าสุดเกี่ยวกับโลกของ Compose และ Android

sinasamaki เป็นอีกหนึ่งผู้มีส่วนร่วมที่โดดเด่น โดยได้สร้างประสบการณ์ที่น่าพึงพอใจมากมายโดยใช้ Compose เช่น ตัวปรับแต่งริบบิ้นแสนสนุกและเอฟเฟกต์ผิดเพี้ยนนี้

ribbon_modifier_sinasamaki.gif

Saket Narayan ยังเป็นแรงบันดาลใจเสมอมาในการสร้างเครื่องมือที่เป็นประโยชน์สำหรับ Compose เช่น telephoto ซึ่งเป็นไลบรารีที่รองรับท่าทางสัมผัสแบบแพนและซูม รวมถึงการย่อยตัวอย่างอัตโนมัติของรูปภาพขนาดใหญ่ หรือไลบรารีล่าสุดอย่าง 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

Jake Wharton ซึ่งใช้ Compose ในรูปแบบที่สร้างสรรค์ (เช่น molecule และแม้แต่การสร้าง UI ด้วย Compose สำหรับเทอร์มินัลด้วย mosaic) Chris Banes ซึ่งสร้างไลบรารี Compose มากมายในช่วงหลายปีที่ผ่านมา โดยไลบรารีโปรดล่าสุดของเราคือ Haze สำหรับการเบลอพื้นหลัง และ Google Developer Experts ด้าน Android หลายคน เช่น Akshay Chordiya, Huyen Tue Dao และ Katie Barnett ซึ่งมีส่วนช่วยให้ Compose ประสบความสำเร็จ แต่เราไม่ได้เลือกบุคคลใดบุคคลหนึ่ง เพราะมีผู้มีส่วนร่วมที่ยอดเยี่ยมมากมายในฐานของโค้ด Compose และพวกคุณหลายๆ คนยังคงสร้างแรงบันดาลใจให้เราด้วยตัวอย่าง ไลบรารี และการพูดคุยเชิงลึกที่สนุกสนาน หากไม่มีชุมชน Jetpack Compose ก็คงไม่ประสบความสำเร็จอย่างเช่นในปัจจุบัน

ขอให้ประสบความสำเร็จในอีก 5 ปีข้างหน้าและต่อๆ ไป

Jetpack Compose ได้เติบโตจากแนวคิดเชิงทดลองไปสู่มาตรฐานสำหรับการพัฒนา UI ของ Android ขอขอบคุณทีมชุดเครื่องมือทั้งหมดที่ Google และชุมชนนักพัฒนาแอปทั่วโลกที่ยอดเยี่ยมซึ่งเขียนไลบรารี ยื่นรายงานข้อบกพร่อง และผลักดันขีดจำกัดของสิ่งที่ UI แบบประกาศสิ่งที่ต้องการทำได้

สัปดาห์นี้เราจะฉลองด้วยงานปาร์ตี้วันเกิดแบบเข้าร่วมด้วยตนเองทั่วโลก และ "ปาร์ตี้วันเกิด" แบบสดๆ ใน ช่อง YouTube ของนักพัฒนาแอป Android ในวันที่ 30 กรกฎาคม เวลา 13:00 น. UTC ในช่วงนี้ เราจะมาพูดคุยกันเกี่ยวกับ Compose และตอบคำถามของคุณ

ขอให้ประสบความสำเร็จในอีก 5 ปีข้างหน้า และขอให้สนุกกับการเขียนโค้ดด้วย Compose

เขียนโดย:
อ่านต่อ