- ทางเลือกแทน React Native ที่เร็วและลื่นไหลยิ่งกว่า ซึ่งสร้างโดย TikTok (ByteDance)
- Lynx คือกลุ่มเทคโนโลยีที่ช่วยให้สร้าง Native UI ได้ด้วย เทคโนโลยีเว็บ
- รองรับแพลตฟอร์มที่หลากหลาย เช่น มือถือและเว็บ ได้จากโค้ดเบสเดียว
- มอบการเขียนโปรแกรม UI ที่เน้นประสิทธิภาพและเครื่องมือแบบ Rust-based สำหรับแอประดับใหญ่ เช่น TikTok
- ตัดสินใจ โอเพนซอร์ส เพื่อก้าวข้ามข้อจำกัดของการพัฒนาข้ามแพลตฟอร์มแบบเดิม
ส่งมอบแอปเนทีฟขนาดใหญ่ที่รวดเร็ว
- สำหรับผู้ใช้แอปมือถือ ประสบการณ์ที่ไม่เป็นเนทีฟมักนำไปสู่การรับรู้เชิงลบ
- หน้าจอว่าง ความหน่วงของแอนิเมชันเพียง 0.1 วินาที หรือ UI ที่ไม่สม่ำเสมอ ล้วนทำให้ความน่าเชื่อถือลดลง
- การสร้างประสบการณ์แบบเดียวกันบนหลายแพลตฟอร์มยังคงเป็นโจทย์ที่ยาก
- Lynx รองรับหลายแพลตฟอร์มจากโค้ดเบสเดียว ช่วยลดทั้งเวลาและต้นทุนในการพัฒนา
- TikTok ค่อย ๆ นำ Lynx มาใช้และได้ผลลัพธ์ที่ประสบความสำเร็จ
- ใช้ Lynx บนแพลตฟอร์มหลากหลาย เช่น TikTok Studio, Shop และ LIVE
- ใช้ Lynx ในอีเวนต์ขนาดใหญ่ด้วย เช่น Disney100 และ Met Gala
สร้างแรงบันดาลใจให้ชุมชนเว็บและกระตุ้นการเติบโต
- เดิมทีแพลตฟอร์มเว็บถูกออกแบบมาสำหรับเอกสาร แต่ค่อย ๆ พัฒนาไปเป็นแพลตฟอร์มสำหรับสร้างแอป
- PhoneGap (Cordova) และ React Native เป็นตัวอย่างบุกเบิกที่เชื่อมเทคโนโลยีเว็บเข้ากับ Native UI
- Lynx รักษาจุดแข็งของเทคโนโลยีเว็บไว้ พร้อมเพิ่มข้อจำกัดและส่วนขยายที่ชัดเจน เพื่อสร้างโมเดลที่เหมาะกับการพัฒนาแอปมากขึ้น
- สอดคล้องกับเทคโนโลยีเว็บ: รองรับมาร์กอัปและ CSS
- ส่วนขยายและความแตกต่าง: ใช้เจตนาการออกแบบที่ชัดเจนซึ่งแตกต่างจากเว็บ
ออกแบบได้บนพื้นฐานของมาร์กอัปและ CSS
- Lynx ยังคงความคุ้นเคยของแนวทางการพัฒนาแบบเว็บ
- รองรับ CSS animation และ transition
- รองรับ CSS selector และตัวแปร เพื่อกำหนดธีม
- รองรับเอฟเฟกต์ภาพ CSS สมัยใหม่ เช่น clipping และ masking
ใช้งานเมนเธรดอย่างมีประสิทธิภาพ
- ประมวลผลสคริปต์ของผู้ใช้โดยแยกออกเป็น 2 รันไทม์
- Main Thread Runtime: ทำงานบน PrimJS (JavaScript engine) เพื่อเรนเดอร์ UI ครั้งแรกและจัดการอีเวนต์ลำดับความสำคัญสูง
- Background Runtime: รันโค้ดผู้ใช้ทั่วไป
- มีความสามารถหลัก 2 อย่าง
- Instant First-Frame Rendering (IFR): เรนเดอร์เฟรมแรกได้ทันที → กำจัดหน้าจอว่าง
- Main-Thread Scripting (MTS): จัดการอีเวนต์ความสำคัญสูงได้อย่างลื่นไหล
- UI ที่สร้างด้วย Lynx ให้ประสิทธิภาพการทำงานเร็วขึ้นโดยเฉลี่ย 2~4 เท่า
Lynx โอเพนซอร์สแล้ว
- Lynx พัฒนาโดย ByteDance และถูกใช้งานอย่างกว้างขวางใน TikTok
- TikTok จะสนับสนุนโอเพนซอร์สของ Lynx และมีส่วนช่วยเสริมความแข็งแกร่งด้านเทคโนโลยี กระตุ้นชุมชน และขยายระบบนิเวศ
ทำให้เทคโนโลยีข้ามแพลตฟอร์มเข้าถึงได้กว้างขึ้น
- การพัฒนาข้ามแพลตฟอร์มแบบเดิมถูกขับเคลื่อนโดยผู้เล่นรายใหญ่เพียงบางส่วน
- Lynx ไม่ได้มอบแค่โซลูชันเดียว แต่เป็นเมตาอินฟราสตรักเจอร์ที่เปิดให้ใช้แนวทางได้หลากหลาย
- ReactLynx: รองรับคอมโพเนนต์สไตล์ React และ Declarative UI บน Lynx
- มี Rspeedy (บันเดลเลอร์ที่พัฒนาด้วย Rust) → รองรับการบิลด์ที่รวดเร็วและ module federation
- Lynx ไม่ผูกติดกับเฟรมเวิร์กหรือเรนเดอริงแบ็กเอนด์ใดโดยเฉพาะ
- ได้แรงบันดาลใจจากโปรเจกต์อย่าง Chromium, Flutter และ React Native
- สามารถรัน Lynx บนเบราว์เซอร์ได้ → ขยายไปสู่เดสก์ท็อป ทีวี และ IoT ได้
จุดเริ่มต้นใหม่
- Lynx ถูกใช้งานจริงในโปรดักชันแล้ว และเปิดตัวในเวอร์ชัน 3.x
- จะเปิดเผยกระบวนการพัฒนาอย่างโปร่งใสผ่านโอเพนซอร์ส
- คอมโพเนนต์เพิ่มเติม กราฟิกเรนเดอเรอร์ และเฟรมเวิร์กต่าง ๆ จะทยอยเปิดเผยในอนาคต
- ตั้งใจทำงานร่วมกับชุมชนโอเพนซอร์สเพื่อก้าวข้ามข้อจำกัดของการพัฒนาข้ามแพลตฟอร์ม
- ยินดีรับฟังฟีดแบ็กและการมีส่วนร่วมจากชุมชน
3 ความคิดเห็น
ดูเหมือนว่าการใช้ Lynx Explorer ที่ถูกบิลด์ไว้ล่วงหน้าจะเหมาะแค่ในขั้นตอนพัฒนาเท่านั้น และในทางปฏิบัติก็เข้าใจได้ว่าการบิลด์ Lynx Explorer เองต้องใช้ effort พอสมควร
ผมสนใจ React-Native มากอยู่แล้ว ตัวนี้ก็น่าสนใจเหมือนกันนะครับ
เนื้อหาข้างต้นนำมาจากบทความแนะนำอย่างเป็นทางการ Lynx: Unlock Native for More