Jetpack Navigation 3 เวอร์ชัน 1.0 เสถียรแล้ว 🎉 นำไปใช้ในแอปเวอร์ชันที่ใช้งานจริงได้แล้ววันนี้ JetBrains ใช้ฟีเจอร์นี้ในแอป KotlinConf อยู่แล้ว
Navigation 3 เป็นไลบรารีการนำทางใหม่ที่สร้างขึ้นตั้งแต่ต้นเพื่อรองรับสถานะของ Jetpack Compose ซึ่งจะช่วยให้คุณควบคุม Back Stack ได้อย่างเต็มที่ ช่วยรักษาสถานะการนำทาง และช่วยให้คุณสร้างเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์ได้ง่ายๆ (เช่น รายละเอียดรายการ) นอกจากนี้ยังมีเวอร์ชันข้ามแพลตฟอร์มจาก JetBrains ด้วย
เหตุใดจึงต้องมีคลังใหม่
ไลบรารีการนำทาง Jetpack เดิม (ปัจจุบันคือ Nav2) ได้รับการออกแบบเมื่อ 7 ปีที่แล้ว แม้ว่าไลบรารีนี้จะตอบโจทย์เป้าหมายเดิมได้เป็นอย่างดีและได้รับการปรับปรุงอย่างต่อเนื่อง แต่ปัจจุบันวิธีสร้างแอปได้เปลี่ยนแปลงไปอย่างสิ้นเชิง
การเขียนโปรแกรมแบบรีแอกทีฟที่มี UI แบบประกาศตอนนี้เป็นเรื่องปกติแล้ว Nav3 ใช้แนวทางนี้ ตัวอย่างเช่น NavDisplay (คอมโพเนนต์ UI ของ Nav3 ที่แสดงหน้าจอ) จะสังเกตรายการคีย์ (แต่ละคีย์แสดงถึงหน้าจอ) ที่ได้รับการสนับสนุนโดยสถานะ Compose และอัปเดต UI เมื่อรายการนั้นเปลี่ยนแปลง
นอกจากนี้ Nav2 ยังอาจทำให้การมีแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียวสำหรับสถานะการนำทางเป็นเรื่องยาก เนื่องจากมีสถานะภายในของตัวเอง Nav3 ให้คุณระบุสถานะของคุณเอง ซึ่งจะช่วยให้คุณควบคุมได้อย่างเต็มที่
สุดท้ายนี้ คุณขอให้มีความยืดหยุ่นและปรับแต่งได้มากขึ้น Nav3 ไม่มี API แบบโมโนลิธเดียว แต่มี API ขนาดเล็กที่แยกออกจากกัน (หรือ "บล็อกการสร้าง") ซึ่งสามารถนำมารวมกันเพื่อสร้างฟังก์ชันที่ซับซ้อนได้ Nav3 เองก็ใช้บล็อกการสร้างเหล่านี้เพื่อระบุค่าเริ่มต้นที่เหมาะสมสำหรับกรณีการใช้งานการนำทางที่กำหนดไว้อย่างดี
แนวทางนี้ช่วยให้คุณทำสิ่งต่อไปนี้ได้
- ปรับแต่งภาพเคลื่อนไหวบนหน้าจอทั้งในระดับโลกและระดับบุคคล
- แสดงหลายบานหน้าต่างพร้อมกันและสร้างเลย์เอาต์ที่ยืดหยุ่นโดยใช้ Scenes API
- แทนที่คอมโพเนนต์ Nav3 ด้วยการติดตั้งใช้งานของคุณเองได้อย่างง่ายดาย หากต้องการลักษณะการทำงานที่กำหนดเอง
อ่านเพิ่มเติมเกี่ยวกับการออกแบบและฟีเจอร์ของฟีเจอร์นี้ได้ในบล็อกการเปิดตัว
การย้ายข้อมูลจาก Navigation 2
หากคุณใช้ Nav2 อยู่แล้ว โดยเฉพาะ Navigation Compose คุณควรพิจารณาย้ายข้อมูลไปยัง Nav3 เรามีคำแนะนำในการย้ายข้อมูลที่จะช่วยคุณในเรื่องนี้ ขั้นตอนสำคัญมีดังนี้
- เพิ่มการพึ่งพาการนำทาง 3
- อัปเดตเส้นทางการนำทางเพื่อใช้ NavKey เส้นทางของคุณไม่จำเป็นต้องใช้ฟีเจอร์นี้เพื่อใช้ Nav3 แต่หากใช้ คุณจะใช้ประโยชน์จากฟังก์ชัน rememberNavBackStack ของ Nav3 เพื่อสร้าง Back Stack แบบถาวรได้
- สร้างคลาสเพื่อจัดเก็บและแก้ไขสถานะการนำทาง ซึ่งเป็นที่จัดเก็บสแต็กย้อนกลับ
- แทนที่ NavController ด้วยคลาสเหล่านี้
- ย้ายปลายทางจาก NavGraph ของ NavHost ไปยัง entryProvider
- แทนที่ NavHost ด้วย NavDisplay
การทดสอบการย้ายข้อมูล AI Agent
คุณอาจต้องทดลองใช้ AI Agent เพื่ออ่านคำแนะนำในการย้ายข้อมูลและทำตามขั้นตอนในโปรเจ็กต์ วิธีลองใช้ฟีเจอร์นี้กับโหมด Agent ของ Gemini ใน Android Studio
- บันทึกคู่มือเวอร์ชันมาร์กดาวน์นี้ลงในโปรเจ็กต์
- วางพรอมต์นี้ลงใน Agent (แต่ไม่ต้องกด Enter) "ย้ายข้อมูลโปรเจ็กต์นี้ไปยังการนำทาง 3 โดยใช้ "
- พิมพ์ @migration-guide.md ซึ่งจะให้คำแนะนำเป็นบริบทแก่ Agent
เช่นเคย โปรดตรวจสอบการเปลี่ยนแปลงที่ AI Agent ทำอย่างละเอียด เนื่องจากอาจมีข้อผิดพลาด
เรายินดีรับฟังความคิดเห็นเกี่ยวกับประสิทธิภาพของคุณหรือตัวแทน โปรดส่งความคิดเห็นของคุณที่นี่
สูตรการนำทางที่ยอดเยี่ยมสำหรับสถานการณ์ที่พบบ่อย
สำหรับ Use Case ทั่วไปแต่มีความซับซ้อน เรามีที่เก็บสูตร ซึ่งแสดงวิธีรวม API ของ Nav3 ในลักษณะเฉพาะที่ช่วยให้คุณเลือกหรือแก้ไขสูตรให้ตรงกับความต้องการเฉพาะได้ หากสูตรอาหารได้รับความนิยม เราจะพิจารณา "ย้าย" ส่วนที่ไม่มีความซับซ้อนของสูตรอาหารนั้นไปยังคลัง Nav3 หลักหรือคลังส่วนเสริม
ปัจจุบันมีสูตรอาหาร 19 สูตร ซึ่งรวมถึงสูตรต่อไปนี้
- การย้อนกลับหลายครั้ง
- การแยกส่วนและการแทรกทรัพยากร Dependency
- การส่งอาร์กิวเมนต์การนำทางไปยัง ViewModel (รวมถึงการใช้ Koin)
- การแสดงผลลัพธ์จากหน้าจอตามเหตุการณ์และตามสถานะที่แชร์
เรากำลังดำเนินการเกี่ยวกับสูตรการใช้ Deep Link รวมถึงการผสานรวม Koin และมีแผนที่จะดำเนินการอื่นๆ อีกมากมาย วิศวกรจาก JetBrains ยังได้เผยแพร่สูตรอาหารเวอร์ชัน Compose Multiplatform ด้วย
หากคุณมีกรณีการใช้งานทั่วไปที่ต้องการดูสูตร โปรดยื่นคำขอสูตร
สรุป
หากต้องการเริ่มต้นใช้งาน Nav3 โปรดดูเอกสารและสูตรอาหาร นอกจากนี้ โปรดติดตามคอนเทนต์ด้านเทคนิคตลอดทั้งสัปดาห์ ซึ่งรวมถึง
- วิดีโอเจาะลึกเกี่ยวกับ API ที่ครอบคลุมการแยกส่วน ภาพเคลื่อนไหว และเลย์เอาต์แบบปรับได้
- เซสชันถามฉันได้ทุกเรื่อง (AMA) แบบสดกับวิศวกรที่สร้าง Nav3
สัปดาห์สปอตไลต์ของ Nav3 จะเริ่มในวันที่ 1 ธ.ค. 2025
และเช่นเคย หากพบปัญหาใดๆ โปรดรายงานที่นี่
อ่านต่อ
-
ข่าวสารผลิตภัณฑ์
ในปี 2025 ระบบนิเวศของ Android จะเติบโตไปไกลกว่าแค่โทรศัพท์ ปัจจุบันนักพัฒนาแอปมีโอกาสเข้าถึงอุปกรณ์ที่ใช้งานอยู่กว่า 500 ล้านเครื่อง ซึ่งรวมถึงอุปกรณ์พับได้ แท็บเล็ต XR Chromebook และรถยนต์ที่รองรับ
Fahd Imtiaz • ใช้เวลาอ่าน 2 นาที
-
ข่าวสารผลิตภัณฑ์
เวิร์กโฟลว์และความต้องการด้าน AI ของนักพัฒนาซอฟต์แวร์แต่ละรายนั้นแตกต่างกันไป และคุณควรเลือกได้ว่าจะให้ AI ช่วยในการพัฒนาอย่างไร ในเดือนมกราคม เราได้เปิดตัวความสามารถในการเลือกโมเดล AI ในเครื่องหรือระยะไกลเพื่อขับเคลื่อนฟังก์ชันการทำงานของ AI ใน Android Studio
Matthew Warner • ใช้เวลาอ่าน 2 นาที
-
ข่าวสารผลิตภัณฑ์
Android Studio Panda 3 พร้อมให้คุณใช้ในเวอร์ชันที่ใช้งานจริงแล้ว การเปิดตัวนี้ช่วยให้คุณควบคุมและปรับแต่งเวิร์กโฟลว์ที่ทำงานด้วยระบบ AI ได้มากยิ่งขึ้น ทำให้การสร้างแอป Android คุณภาพสูงง่ายกว่าที่เคย
Matt Dyor • ใช้เวลาอ่าน 3 นาที
รับข่าวสาร
รับข้อมูลเชิงลึกด้านการพัฒนา Android ล่าสุดส่งตรงถึงกล่องจดหมายของคุณทุกสัปดาห์