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

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

อ่าน 4 นาที
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 ในการผลิต 

ประวัติ

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

jetpack_compose_everywhere.png

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

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

ย้อนดูความทรงจำ

ช่วงแรกๆ ของ Compose นั้นแตกต่างจากที่คุณรู้จักในปัจจุบันมาก ทีม Android ดำเนินการ 2 โปรเจ็กต์ควบคู่กันไป 

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

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 ขอขอบคุณทีม Toolkit ทั้งหมดที่ Google และชุมชนนักพัฒนาแอปทั่วโลกที่ยอดเยี่ยมซึ่งเขียนไลบรารี ยื่นข้อบกพร่อง และขยายขอบเขตของสิ่งที่ UI แบบประกาศทำได้ 

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

ขอให้มีความสุขกับการแต่งเพลงในอีก 5 ปีข้างหน้า

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