รู้จักเทคโนโลยีใหม่บน iOS 10 ที่ช่วยให้แอพเร็วขึ้น

ios10_faster_app

ช่วงนี้นักพัฒนาหลายคนเริ่มอ่านรายละเอียดของ iOS 10 และได้เขียนเรื่องราวออกมาเรื่อย ๆ ซึ่งมีเรื่องหนึ่งที่น่าสนใจ และทีมงาน MacThai จะนำมาเล่าให้ฟังกัน ก็คือเทคโนโลยีใหม่บนตัว iOS 10 ที่ทำให้แอพเร็วขึ้น

เรื่องนี้ได้มาจากต้นฉบับซึ่งเป็นบทความจาก The Next Web ปัจจุบันการโหลดข้อมูลของแอพบน iOS 10 นั้นมีหลายจุดที่เมื่อเรา scroll เร็ว ๆ ไปแล้วจะทำให้เริ่มเกิดการกระตุก เนื่องจากตัวแอพต้องรอโหลดข้อมูล frame rate จึงลดลง ส่งผลให้เห็นการกระตุก ดังนั้น Apple จึงเปลี่ยนวิธีโหลดข้อมูลกับ API ที่เข้าถึงข้อมูลรวมถึง API สำหรับการแสดงผลต่าง ๆ บน iOS 10 หลายอย่าง ดังนี้

Prefetching Data โหลดข้อมูลมารอไว้ก่อน

ปกติแล้วถ้าเรา scroll ในแอพใด ๆ ก็ตาม จะมีข้อมูลเยอะ ๆ เรียกว่า cell ซึ่งถ้าเราเริ่ม scroll เร็วมาก ๆ จะถึงจุด ๆ หนึ่งที่แอพเริ่มจะ frame rate ลดลง และเกิดอาการกระตุกขึ้นเล็กน้อย

ในงาน WWDC ครั้งนี้ Apple ได้อธิบายไว้ว่าเหตุผลที่ frame rate ลดลงนี้เพราะว่าคอนเทนต์ต่าง ๆ ถูกโหลดแค่แปปเดียวแล้วก็นำขึ้นหน้าจอทันที ฉะนั้น cell เหล่านั้นเพิ่งถูกโหลดมาเพียงไม่กี่มิลลิวินาทีก่อนที่มันจะแสดงขึ้นมา บางครั้งก็อาจเกิดอาการโหลดไม่ทัน

ฉะนั้นเพื่อแก้ปัญหานี้ ต่อไป Apple จะใช้วิธีโหลดข้อมูล cell เหล่านั้นขึ้นมาก่อนที่จะแสดงขึ้นมาบนหน้าจอ ซึ่ง Apple บอกว่าในอุดมคตินั้นจะสามารถทำได้ถึง 60 เฟรมต่อวินาทีเลยทีเดียว ซึ่งวิธีเรียกว่า prefetching data

ปรับปรุง API สำหรับการเรียกข้อมูล

Apple ได้ใช้ API สำหรับการเรียกใช้ข้อมูลใหม่บน iOS 10 ซึ่ง API ใหม่นี้จะเข้าถึงข้อมูลได้แบบ asynchronous เหมือนเดิม แต่ว่าจะทำให้เรียกใช้ได้เร็วขึ้น ซึ่ง Apple ได้ออกแบบให้ทำงานได้กับ Core Data ซึ่งจะใช้งานกับ solution ทุกแบบที่นักพัฒนากำลังใช้อยู่ ซึ่งปัจจุบันนักพัฒนามักจะใช้ฐานข้อมูลอย่างเช่น Realm เพื่อทำให้เร็วขึ้น แต่การที่ Apple ปรับปรุง Core Data ก็ถือว่าเป็นเรื่องที่ดีมาก

ตัว API นี้จะโหลดข้อมูลในเบื้องหลังโดยไม่ไปรบกวน main thread ซึ่งจะทำให้การ scroll มีประสิทธิภาพที่ดีขึ้น ฉะนั้นข้อมูลก็จะมาทันกับการการะทำต่าง ๆ ที่ cell ถูกโหลดขึ้นมา

ios10

แอพคอลัมน์เยอะ ๆ ถูกเปลี่ยนวิธีโหลดใหม่

ปัจจุบัน แอพที่มีคอลัมน์หลาย ๆ คอมลัมน์ จะโหลดแถวทั้งหมดของ cell ทีเดียวเหมือนแอพแบบคอลัมน์เดี่ยว แต่ก็จะเกิดปัญหา frame rate ลดลงเมื่อผู้ใช้ scroll เร็ว ๆ

ต่อไปนี้ Apple จะเปลี่ยนวิธีโหลด cell ใหม่ทั้งหมด โดย cell จะถูกโหลดขึ้นมาจากซ้ายไปขวา ซึ่งจะทำให้แอพที่ซับซ้อนมีประสิทธิภาพได้เทียบเท่ากับแอพทั่ว ๆ ไป ซึ่งถ้านักพัฒนาแสดงคอนเทนต์ใน page view หรือ table view แล้ว API ที่ Apple ทำใหม่นี้สามารถจัดการให้ได้ทันที

การเปลี่ยนแปลงทั้งหมดนี้เกิดขึ้นโดยอัตโนมัติ

Apple กล่าวว่า การเปลี่ยนแปลงทั้งหมดของ API บน iOS 10 ที่ว่ามานี้จะเป็นการเปลี่ยนแปลงแบบอัตโนมัติ นักพัฒนาเพียงคอมไพล์แอพให้รองรับ iOS 10 โดยไม่ต้องเปลี่ยนแปลงโค้ดที่ใช้ API เหล่านี้เลย เพราะว่าการเปลี่ยนแปลงทั้งหมดถูกทำในเบื้องหลังของ API

ทั้งนี้ ก็ต้องรอดูกันต่อไปว่า เทคโนโลยีใหม่บน iOS 10 นี้จะสามารถช่วยให้แอพเร็วขึ้นสมคำที่ Apple คุยไว้หรือไม่

บทความต้นฉบับจาก The Next Web

เรียบเรียงโดย
ทีมงาน MacThai