ข่าวสารผลิตภัณฑ์

Jetpack Navigation 3 พร้อมให้ใช้งานอย่างเสถียรแล้ว

อ่าน 3 นาที
ดูโปรไฟล์ของ Don Turner
Don Turner วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์

Jetpack Navigation 3 เวอร์ชัน 1.0 เสถียรแล้ว 🎉 นำไปใช้ในแอปเวอร์ชันที่ใช้งานจริงได้แล้ววันนี้ JetBrains ใช้ฟีเจอร์นี้ในแอป KotlinConf อยู่แล้ว

Navigation 3 เป็นไลบรารีการนำทางใหม่ที่สร้างขึ้นตั้งแต่ต้นเพื่อรองรับสถานะของ Jetpack Compose ซึ่งจะช่วยให้คุณควบคุม Back Stack ได้อย่างเต็มที่ ช่วยรักษาสถานะการนำทาง และช่วยให้คุณสร้างเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์ได้ง่ายๆ (เช่น รายการ-รายละเอียด) JetBrains ยังมีเวอร์ชันข้ามแพลตฟอร์มด้วย

เหตุใดจึงต้องมีคลังใหม่

ไลบรารีการนำทาง Jetpack เดิม (ปัจจุบันคือ Nav2) ได้รับการออกแบบเมื่อ 7 ปีที่แล้ว และแม้ว่าไลบรารีนี้จะตอบโจทย์เป้าหมายเดิมได้เป็นอย่างดีและได้รับการปรับปรุงอย่างต่อเนื่อง แต่ปัจจุบันวิธีสร้างแอปได้เปลี่ยนแปลงไปโดยสิ้นเชิง 

การเขียนโปรแกรมแบบรีแอ็กทีฟที่มี UI แบบประกาศตอนนี้เป็นเรื่องปกติแล้ว Nav3 ใช้แนวทางนี้ ตัวอย่างเช่น NavDisplay (คอมโพเนนต์ UI ของ Nav3 ที่แสดงหน้าจอ) จะสังเกตรายการคีย์ (แต่ละคีย์แสดงถึงหน้าจอ) ที่ได้รับการสนับสนุนโดยสถานะ Compose และอัปเดต UI เมื่อรายการนั้นเปลี่ยนแปลง

nav-display.png

นอกจากนี้ Nav2 ยังอาจทำให้แหล่งข้อมูลความจริงเดียวสำหรับสถานะการนำทางเป็นเรื่องยาก เนื่องจากมีสถานะภายในของตัวเอง Nav3 ให้คุณระบุสถานะของคุณเอง ซึ่งจะช่วยให้คุณควบคุมได้อย่างเต็มที่

สุดท้ายนี้ คุณขอให้เราเพิ่มความยืดหยุ่นและปรับแต่งได้มากขึ้น Nav3 ไม่ได้มี API แบบโมโนลิธเดียว แต่มี API ที่เล็กลงและแยกออกจากกัน ("บล็อกการสร้าง") ซึ่งสามารถนำมารวมกันเพื่อสร้างฟังก์ชันที่ซับซ้อนได้ Nav3 เองก็ใช้บล็อกการสร้างเหล่านี้เพื่อมอบค่าเริ่มต้นที่สมเหตุสมผลสำหรับกรณีการใช้งานการนำทางที่กำหนดไว้อย่างดี 

แนวทางนี้ช่วยให้คุณทำสิ่งต่อไปนี้ได้ 

อ่านเพิ่มเติมเกี่ยวกับการออกแบบและฟีเจอร์ได้ในบล็อกการเปิดตัว 

การย้ายข้อมูลจาก Navigation 2

หากใช้ Nav2 อยู่แล้ว โดยเฉพาะ Navigation Compose คุณควรพิจารณาเปลี่ยนไปใช้ Nav3 เรามีคำแนะนำในการย้ายข้อมูลที่จะช่วยคุณในเรื่องนี้ ขั้นตอนสำคัญมีดังนี้ 

  1. เพิ่มทรัพยากร Dependency ของ Navigation 3
  2. อัปเดตเส้นทางการนำทางเพื่อใช้ NavKey เส้นทางของคุณไม่จำเป็นต้องใช้ฟีเจอร์นี้เพื่อใช้ Nav3 แต่หากใช้ คุณจะใช้ประโยชน์จากฟังก์ชัน rememberNavBackStack ของ Nav3 เพื่อสร้าง Back Stack แบบถาวรได้
  3. สร้างคลาสเพื่อจัดเก็บและแก้ไขสถานะการนำทาง ซึ่งเป็นที่จัดเก็บสแต็กย้อนกลับ
  4. แทนที่ NavController ด้วยคลาสเหล่านี้
  5. ย้ายปลายทางจาก NavGraph ของ NavHost ไปยัง entryProvider
  6. แทนที่ NavHost ด้วย NavDisplay

การทดลองย้ายข้อมูล AI Agent

คุณอาจต้องการทดลองใช้ AI Agent เพื่ออ่านคู่มือการย้ายข้อมูลและทำตามขั้นตอนในโปรเจ็กต์ วิธีลองใช้ฟีเจอร์นี้ด้วยโหมด Agent ของ Gemini ใน Android Studio

  • บันทึกคู่มือเวอร์ชันมาร์กดาวน์นี้ลงในโปรเจ็กต์
  • วางพรอมต์นี้ลงใน Agent (แต่ไม่ต้องกด Enter) "ย้ายข้อมูลโปรเจ็กต์นี้ไปยัง Navigation 3 โดยใช้ "
  • พิมพ์ @migration-guide.md ซึ่งจะให้คำแนะนำเป็นบริบทแก่ Agent 

โปรดตรวจสอบการเปลี่ยนแปลงที่ AI Agent ทำอย่างละเอียดเสมอ เนื่องจาก AI Agent อาจทำผิดพลาดได้

เรายินดีรับฟังความคิดเห็นเกี่ยวกับประสิทธิภาพของคุณหรือตัวแทน โปรดส่งความคิดเห็นที่นี่

สูตรการไปยังส่วนต่างๆ ที่ยอดเยี่ยมสำหรับสถานการณ์ทั่วไป

สำหรับ Use Case ที่พบบ่อยแต่มีความซับซ้อน เรามีที่เก็บสูตร ซึ่งแสดงวิธีรวม API ของ Nav3 ในลักษณะเฉพาะที่ช่วยให้คุณเลือกหรือแก้ไขสูตรให้ตรงกับความต้องการของคุณได้ หากสูตรอาหารได้รับความนิยม เราจะพิจารณา "เลื่อน" ส่วนที่ไม่มีความแตกต่างของสูตรอาหารนั้นไปยังไลบรารี Nav3 หลักหรือไลบรารีเสริม 

code-recipes.png

ปัจจุบันมีสูตรอาหาร 19 สูตร ซึ่งรวมถึงสูตรต่อไปนี้ 

ขณะนี้เรากำลังดำเนินการเกี่ยวกับสูตรการใช้ Deep Link รวมถึงการผสานรวม Koin และมีแผนที่จะดำเนินการอื่นๆ อีกมากมาย วิศวกรจาก JetBrains ยังได้เผยแพร่สูตรอาหารเวอร์ชัน Compose Multiplatform ด้วย

หากคุณมีกรณีการใช้งานทั่วไปที่ต้องการดูสูตร โปรดยื่นคำขอสูตร 

สรุป

หากต้องการเริ่มต้นใช้งาน Nav3 โปรดดูเอกสารและสูตร นอกจากนี้ โปรดคอยติดตามเนื้อหาด้านเทคนิคตลอดทั้งสัปดาห์ ซึ่งรวมถึงเนื้อหาต่อไปนี้ 

  • วิดีโอเจาะลึกเกี่ยวกับ API ที่ครอบคลุมการแยกส่วน ภาพเคลื่อนไหว และเลย์เอาต์ที่ปรับเปลี่ยนได้
  • เซสชันถามฉันได้ทุกเรื่อง (AMA) แบบสดกับวิศวกรที่สร้าง Nav3

สัปดาห์สปอตไลต์ของ Nav3 จะเริ่มในวันที่ 1 ธ.ค. 2025 


และเช่นเคย หากพบปัญหาใดๆ โปรดรายงานที่นี่ 

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