ทำไม iOS ถึงเทพ

สังเกตว่าสาวก Android จะคุยว่าฟีเจอร์นั้นนี้ Apple ลอกไป นั้นนี้มีมาตั้งนานแล้ว ฯลฯ แต่ว่าทำไมเมื่อสัมผัส Apple แล้วรู้สึกถึงความฟินมากกว่า

เรื่องการเกทับกันในระดับ consumer ก็คงเป็นประมาณนั้นแหละครับ ว่าใคร original กับใครแรง แค่นั้น แต่เหล่า dev จะรู้ดีว่า Android แมร่งทรมานและการทำงานบน iOS นี่คือความสุขมากๆ 555 แต่ก็รู้กันแค่เหล่า dev ล่ะนะ (ออแล้วก็ แอพ App Store มีคนยอมเสียตังมากกว่า แบบสุดๆ ใครจะไม่รักล่ะ!)

Magic ที่ว่านี้เป็นฟีเจอร์ที่ “โฆษณายาก” ซะด้วย นั่นก็คือ audio latency กับ touch latency ครับ

เป็นสิ่งที่โฆษณายากแต่เป็น foundation คล้ายๆที่ผมชอบ MBP ทั้งๆที่เล่นเกมก็กาก การ์ดจอก็โง่ ราคาก็เวอร์ (“ไม่ใช่แค่มีเงินก็ซื้อได้ แต่ต้องโง่ด้วย 555”) แต่ว่าเครื่องมัน “solid” มีใครเคยโฆษณาขึ้นเว็บว่า “solid build” มั้ย แม้แต่ Apple เองก็ไม่เพราะเอา feature มาอวดเข้าใจง่ายกว่าสำหรับพ่อๆแม่ๆที่มาดูเว็บ อีกอย่างของจอ MBP ที่ผมชอบก็คือการที่ขอบดำมันเรียบไปกับจอ นี่ก็ไม่มีโฆษณาตรงไหนเหมือนกันแต่พอใช้จริงแล้วมันรู้สึก “cinema” มากกว่าเป็นพลาสติกนูนขึ้นมาเยอะ เข้าใจว่าทาง technical ก็ออกแบบให้เป็นแบบนี้ยากกว่าแบบกรอบทับ แต่ถึงอย่างนั้น Apple ก็ไม่สามารถโฆษณาได้ซักคำถึง “ฟีเจอร์” นี้ ขนาดแค่เขียนโปรแกรมก็รู้สึกเหมือนดูหนังตลอดเวลา ผมว่ามันสนุกดี และยังไม่รวมความที่ hinge มันฝืด perfect ฯลฯ

วิดิโอนี้สู้กันระหว่าง Android ปี 2018 กับ iPad 3 จาก 6 ปีที่แล้วครับ (สู้กับ iPod Touch Gen 5 เก่ากึ้กที่ใช้จนเยินของผมก็ผลคล้ายๆกัน) จะเห็นว่าของ Android ได้ยินเสียงเล็บกับเสียงตอบรับแยกกัน ส่วน iPad 3 นี่แทบแยกไม่ออกเลย

ซึ่งจริงๆแล้วผลการวัดความต่างของ 2 กรณีนี้คือ 21.4ms เท่านั้นครับ แต่ว่า 21.4ms นี้ทำได้ยากกว่า 21.4ms ไหนของ Android low end vs Android flagship เพราะมันเป็นการก้าวข้าม threshold สุดท้ายของ “emulated feel” (แตะจอ -แล้ว- มันจะมีเสียง) กับ “the real thing” (เหมือนกับกำลังแตะเครื่องดนตรี เหมือนกระจกจอนี้เป็นฉาบจริงๆแล้วมีเสียงออกมา) แค่ 3–5ms latency นี่คนเราก็เริ่มรู้สึกแล้วครับ สมมติเป็นมือกีตาร์ที่ต่อเอฟเฟคยาวๆกว่าจะรอเสียงออกมาจาก amp ส่วนมือกลองดีหน่อยเพราะเสียงที่ได้ยินออกมาจากไม้เลย

ยังไม่พอ มาดูเปเปอร์บ้างครับ

เปเปอร์เก่าแล้ว แต่ก็ยังจริงอยู่ครับผมรับประกัน ใน Windows ตอนนี้ทุกโปรแกรมแต่งเพลง (FL Studio, Ableton Live, …) ถ้าไม่ลงสิ่งที่เรียกว่า ASIO4ALL แล้วใช้ driver ปกติของ Windows นี้แบบ ฟห่กาดสว่ฟหดสวา่หฟสดาว ช้าจนหงุดหงิดคิดดู (แต่ถ้าใช้ เสียง Windows ดับหมด 555) แต่ของ OSX ไม่ต้องทำอะไรเลย!

กราบ Core Audio API !!

เรื่อง touch วันแรกๆที่ iPad ออกมาแล้วเขาพูดว่า “like holding the web in your hand” นี่ไม่ผิดเลยครับ ความ “นิ้วติดจอ” ของ Apple นี้ชนะมาตั้งแต่ iPhone รุ่นแรก ผมเข้าใจว่าทำตามไม่ได้เพราะ patent กั้นอยู่แต่อันไหนไม่แน่ใจ ถ้าใครรู้ช่วยบอกหน่อยก็ดีครับ แต่เหมือนคุ้นๆว่าเป็นเทคนิคที่ให้ UI คุยกับ input โดยตรง เรียกได้ว่า UI นี่ขยับก่อนที่จะได้ประมวลผลด้วยซ้ำ ไม่เหมือน Android ที่ไปตาม flow ปกติคือโอเคขยับเท่านี้ ข้อมูลต้องเลื่อนไปแบบนี้ สุดท้ายจอเปลี่ยนไปตามนี้นะ ฯลฯ

ผมยังจำวันนั้นได้ วันแรกที่แฮพ iPad เพื่อนมาเล่นแล้วดึงหนังสติ้กแรกใน Angry Birds แมร่งมันดึงจริงๆ ดึงเป็นดึง! เข้าใจมั้ย 555

เรื่องนี้คือ Frame Uniformity ใครสนใจแนะนำ

Smooth Scrolling, Frame Uniformity, Touch Interpolation and Touch Responsiveness
I hope you have coffee, because this one is going to be a long one. When scrolling a webpage on a device, how smooth is…www.masonchang.com

และสำหรับ Android โดยเฉพาะ

Android's Touch Resampling Algorithm
After digging through the internet and some advice from Jerry Shih, I looked into Google Android's touch resampling…www.masonchang.com

แล้วก็ปัญหาที่ว่านี้ทำให้แอพดนตรี -ที่ใช้ได้จริงจัง- แทบจะเป็นไปไม่ได้ใน Android เลยครับ แนะนำ
https://superpowered.com/androidaudiopathlatency

สำหรับ music gamer ชาว Android ที่จะทำคะแนน พวกเราทุกคนรู้ดีว่าสิ่งแรกที่ควรทำคือปิดเสียงตอบรับ แล้วเคาะแบบเอาเล็บลงให้เล็บเป็นเสียงตอบรับแทน… analog! no latency!