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