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