เฟซบุ๊กประกาศปล่อยแอป Messenger เวอร์ชั่นใหม่ที่เป็นผลของโครงการ LightSpeed ที่ประกาศเมื่อปีที่แล้ว โดยแอปเวอร์ชั่นใหม่นี้เฟซบุ๊กเลิกพยายามใช้เฟรมเวิร์คคั่นกลางใดๆ แต่ใช้ไลบรารีและ UI ของ iOS โดยตรงทั้งหมด เพื่อทำแอปให้เบาเท่าที่เป็นไปได้
นอกจากการใช้ไลบรารีระบบปฎิบัติการแล้ว การเก็บข้อมูลยังใช้ SQLite สำหรับเก็บข้อมูลบนเครื่อง ส่วนข้อมูลที่ไม่เหมาะกับ SQLite จะอาศัยการซิงก์จากเซิร์ฟเวอร์ลงมา ทำให้ต้องสร้างโปรโตคอลการซิงก์ใหม่ที่สามารถซิงก์ข้อมูลได้แทบทุกส่วน
แอปเวอร์ชั่นใหม่นี้เขียนใหม่ทั้งหมด และปริมาณโค้ดรวมลดลงจาก 1.7 ล้านบรรทัดเหลือ 360,000 บรรทัด แอปรวมเบาลงและทำงานเร็วขึ้น ในแง่การพัฒนาเองเฟซบุ๊กระบุว่าจะทำให้ทีมวิศวกรสร้างสรรค์ฟีเจอร์ใหม่ๆ ได้เร็วขึ้นด้วย สำหรับผู้ใช้แอปจะมีขนาดเล็กลงเหลือ 1 ใน 4 ของเวอร์ชั่นก่อน และโหลดเร็วขึ้นเท่าตัว
ที่มา - Facebook Engineering Blog
Comments
แสดงว่า React Native ไม่เหมาะกับแอพใหญ่ ๆ เหรอครับ
ผมไม่เคยเห็นว่า Messenger ใช้ React Native นะครับ
แต่ถ้าฐานผู้ใช้มากพอ บริษัทมีทรัพยากรมากพอ การ maintain โค้ดหลายชุดโดยไม่สนใจจะสร้าง layer คั่นกลางก็เป็นเรื่องสมเหตุสมผล
lewcpe.com, @wasonliw
ขึ้นกับว่าเราอยากจะแลก binary ที่ใหญ่ขึ้น เพื่อความรวดเร็วและยืดหยุ่นในการพัฒนาหรือเปล่า
ส่วน Messenger ไม่ใส่ RN เลย เพราะอยากให้ binary เล็กที่สุด แลกกับการเสียข้อได้เปรียบความเร็วในการพัฒนาไป
เล็กลงแล้วก็ไปเพิ่มฟีเจอร์ให้มันบวมขึ้นได้อีก
โห แอพแชทมีโค้ดเป็นล้านบรรทัดเลยเหรอ
เขานับรวม Library ต่างๆด้วยครับ แต่ตอนนี้น่าจะตัดไปเยอะ เพราะเปลี่ยนมาใช้ของ iOS เองเลย
Line ก็ควรทำได้แล้วนะ
แอพบวมมากตอนนี้
Line เท่าที่ดูคือพยายามเป็น Wechat แต่ดู UI พินาศกว่าเยอะ
+10 เกลียด UI Line มาก
ดูท่าจะเบาจริง เพราะตอนนี้เหลือ 142.6MB เอง ซึ่งถ้าจำไม่ผิด เหมือนก่อนหน้าจะประมาณเกือบ 300MB นะ
ตัวจริงขนาดน่าจะต่ำกว่า 30MB นะครับ
Facebook said the new app would launch in under two seconds and come in at under 30MB in size.
https://www.neowin.net/news/facebook-introduces-its-new-messenger-app-for-ios-based-on-project-lightspeed/
ก็ว่าฟีเจอร์หายไปเยอะ แต่การพยายามเป็น native สักทีก็เป็นสิ่งที่ดี
:-)