Dirk de Kok เจ้าของเว็บ Mobtest (เว็บเกี่ยวกับการทดสอบแอพบนมือถือ) ได้โพสต์เกี่ยวกับการทำงานของแอพ Facebook บนอุปกรณ์ iOS ว่าอะไรทำให้แอพตัวนี้ค่อนข้าง ”แย่” โดยเฉพาะปัญหาในเรื่องของความเร็วและการโหลดเนื้อหา
จะว่าไปแอพตัวนี้มีเรทติ้งเฉลี่ยเพียงแค่ 2 ดาวจาก 5 ดาวเท่านั้น (ใน iTunes ของอเมริกา) ซึ่งแสดงให้เห็นว่าแอพ social network ตัวนี้ให้ประสบการณ์การใช้งานที่ไม่ดีนักกับผู้ใช้ ซึ่งปัญหาส่วนใหญ่ก็คือ
- แอพทำงานช้า
- ข้อมูลนำเสนอขัดแย้งกัน (ยกตัวอย่าง ไอคอนระบบแจ้งเตือนบอกว่ามีคอมเม้นท์ใหม่ แต่เมื่อเปิดดูแล้วกลับไม่มีอะไรใหม่)
- ตัวแอพทำงานช้ากว่าเวอร์ชันโมบายเวบ (m.facebook.com)
- บั๊กเพียบ
แล้วปัญหาพวกนี้เกิดจากอะไร?
Dirk de Kok ได้พูดถึงปัญหานี้ไว้สองประเด็นหลักใหญ่ๆ ครับ
1. แอพ Facebook ใช้ HTML ผ่าน UIWebViews ที่ปราศจากเอนจิน Nitro JavaScript
เขารู้เรื่องนี้เพราะใช้วิธีที่เรียกว่า Sniffing (การดักจับข้อมูล) แล้วค้นพบว่าตัวแอพดาวน์โหลดข้อมูลจาก facebook.com แบบ REST (ใช้ฟอร์แมต XML ไม่มีการใช้ JSON) และ HTML
Dirk de Kok บอกว่า HTML ใช้สำหรับแสดง TimeLine รวมถึงข้อมูลโปรไฟล์ต่างๆ ซึ่งมีลักษณะเดียวกับ m.facebook.com เป๊ะ แต่เวลาแอพจะแสดงเนื้อหา HTML ภายในแอพ ผู้พัฒนาใช้วิธีไปเรียกคอมโพเน้นท์ของ Safari ที่ชื่อว่า “UIWebViews” (พูดง่ายๆ มันคือการ embed หรือใช้เว็บภายในแอพพลิเคชันนั้นๆ)
วิธีนี้จะสะดวกสำหรับนักพัฒนามาก แต่ก็มีข้อจำกัดเช่นกัน ยกตัวอย่างเช่น หากมีการเปลี่ยนแปลงข้อมูลใน Timeline มันจะโหลดหน้า Timeline “ใหม่ทั้งหมด” หรือเมื่อนำไปรันบน Sunspider จะพบว่าประสิทธิภาพของ UIWebViews ภายในตัวแอพต่ำกว่าประสิทธิภาพของตัวเบราเซอร์ Safari ถึง 3 เท่าเพราะ UIWebViews ไม่มีเอนจิน Nitro JavaScript เหมือนกับเบราว์เซอร์ Safari นั่นเอง (เอนจิน Nitro จะช่วยในการประมวลผล JavaScript เร็วขึ้นและส่งผลให้หน้าเว็บโหลดเสร็จเร็วขึ้นด้วย)
ตัวอย่างภาพปัญหาที่เกิดขึ้นได้จากการโหลดหน้า HTML ไม่มี style sheet ไม่มีรูป

2. เนื้อหาใหม่ที่เชื่อมกับระบบแจ้งเตือนไม่ sync กันเพราะเรียก (call) คนละส่วน
จำนวนตัวเลขระบบแจ้งเตือนใหม่จะเรียกผ่าน https://api.facebook.com/restserver.php ส่วนเนื้อหาใหม่ตามการแจ้งเตือนจะถูกโหลดผ่าน https://api-read.facebook.com/restserver.php ซึ่งการเรียกที่แยกกัน ทำให้ข้อมูลที่รีเทิร์นมาปรากฏบนตัวแอพนั้นอาจขัดแย้งกันเองหรือไม่ทันกันเองได้ เช่น ผู้ใช้เปิดแอพมาเห็นเลขแจ้งเตือนใหม่ ถ้ากดดูเร็วเกินไป จะไม่เห็นเนื้อหาใหม่อัพเดตตามที่แจ้งเตือนนั่นเอง
คำถาม: แล้วทำไม Facebook ต้องใช้เทคโนโลยี HTML?
Dirk de Kok ได้วิเคราะห์ตามนี้ครับ
- ข้อมูลที่ไหลตลอดเวลานั้นใช้ HTML พัฒนาได้ง่ายกว่า เพราะว่าการเขียนด้วย Objective-C เพื่อแสดงเนื้อหาที่ไหลตลอดเวลาทำได้ยาก เช่น การโชว์รูป ปุ่มต่างๆ ที่มีตัวหนังสือหลายๆ แบบ (อาจจะหมายถึงปุ่ม like ปุ่ม comment ฯลฯ) การจะสร้างปุ่มพวกนี้ด้วย Objective-C ทำได้ไม่ง่ายนักเพราะต้องเขียนกำหนดขนาดแต่ละปุ่ม ตำแหน่งวางปุ่มแต่ละปุ่ม ในขณะที่ใช้ HTML แทนจะทำได้ง่ายกว่า
- เขียนครั้งเดียว โผล่ได้ทุกแพลตฟอร์ม
- กระบวนการการทำงานและพัฒนาของ Facebook เขาเชี่ยวชาญในเรื่อง HTML อยู่แล้ว แต่การจะมาเขียนเป็นแอพ native ล้วนๆ ส่งให้แอปเปิลรีวิวเป็นอาทิตย์ (นึกภาพเวลาจะอัพเดตอะไรใหม่ๆ) ต้องคอยแก้โค้ด Objective-C ล้วนๆ ก็เป็นฝันร้ายของทีมพัฒนาแอพเลยทีเดียว
- ฟีเจอร์โฟนต่างหากที่ Facebook อยากจะบุกเข้าไปต่อเพราะโลกที่สามยังใช้ฟีเจอร์โฟนอยู่จำนวนมาก พวกเขาเหล่านี้อยากใช้ Facebook มากกว่าจะไปหาซื้อไอโฟนมาใช้ และขณะเดียวกันผู้ที่ใช้ไอโฟนหรือแอนดรอยด์อยู่แล้วก็ต้องหาแอพ Facebook มาลงอยู่ดี (ของตายว่างั้น ทนใช้ต่อไป)
ที่มา - Mobtest
on
ไม่ใช่แค่ของ iOS หรอก :3
nudyed Fri, 08/06/2012 - 13:17
ไม่ใช่แค่ของ iOS หรอก :3
FB น่าจะซื้อ FriendCaster นะ
zerntrinos Fri, 08/06/2012 - 13:18
FB น่าจะซื้อ FriendCaster นะ
ใช้ทาง m.facebook.com
lingjaidee Fri, 08/06/2012 - 13:18
ใช้ทาง m.facebook.com ดีกว่าทุกอย่าง อัพเดทอะไรก็ตรงและเร็วกว่า แค่ไม่มีโปรเซสของการอัพโหลดรูปให้เห็นแค่นั้นเอง ;)
App Facebook ใน Android
churos Fri, 08/06/2012 - 13:22
App Facebook ใน Android แย่กว่าใน iOS อีก ตอนนี้ผมก็หนีไปใช้ FriendCaster แล้ว
ข่าวนี้ ขอบคุณคุณ PaPaSEK
Pinery Fri, 08/06/2012 - 13:23
ข่าวนี้ ขอบคุณคุณ PaPaSEK มากครับสำหรับคำแนะนำในการเขียนข่าว :D (แอบปรึกษาหลังไมค์กันมาก่่อน อิอิ)
คนอื่นอาจจะไม่เข้าใจในความสัม
PaPaSEK Fri, 08/06/2012 - 13:52
In reply to ข่าวนี้ ขอบคุณคุณ PaPaSEK by Pinery
คนอื่นอาจจะไม่เข้าใจในความสัมพันธ์ของสองเรา
จะแต่งเมื่อไหร่ก็บอกนะครับ!
sunback Fri, 08/06/2012 - 14:30
In reply to คนอื่นอาจจะไม่เข้าใจในความสัม by PaPaSEK
จะแต่งเมื่อไหร่ก็บอกนะครับ!
=0=
Fzo Fri, 08/06/2012 - 14:30
In reply to คนอื่นอาจจะไม่เข้าใจในความสัม by PaPaSEK
=0=
ขอบคุณทุกท่านที่มาร่วมงานครัฟ
PaPaSEK Fri, 08/06/2012 - 14:34
In reply to คนอื่นอาจจะไม่เข้าใจในความสัม by PaPaSEK
ขอบคุณทุกท่านที่มาร่วมงานครัฟ
อยากได้มือที่สามมั้ยฮ้าฟฟ
illusion Fri, 08/06/2012 - 17:22
In reply to คนอื่นอาจจะไม่เข้าใจในความสัม by PaPaSEK
อยากได้มือที่สามมั้ยฮ้าฟฟ
=______=
PaPaSEK Fri, 08/06/2012 - 18:58
In reply to อยากได้มือที่สามมั้ยฮ้าฟฟ by illusion
=______= พอคนอื่นเล่นด้วยแล้วมันแปลกๆ แฮะ
โทษค้าบ แซวเล่นๆ :P
illusion Fri, 08/06/2012 - 21:29
In reply to =______= by PaPaSEK
โทษค้าบ แซวเล่นๆ :P
ฮา แซวเล่น ๆ ทำจริง ๆ
hisoft Fri, 08/06/2012 - 21:36
In reply to โทษค้าบ แซวเล่นๆ :P by illusion
ฮา แซวเล่น ๆ ทำจริง ๆ สินะครับ
ปล่าวครับ ... กำลังคิดอยู่ว่า
PaPaSEK Sat, 09/06/2012 - 01:42
In reply to โทษค้าบ แซวเล่นๆ :P by illusion
ปล่าวครับ ... กำลังคิดอยู่ว่า threesome ก็น่าสน :D
ไปกันใหญ่แล้วเฟ้ย!!
ผมรู้ตั้งแต่ที่คุณมาเม้นใน G+
mr_tawan Sat, 09/06/2012 - 03:05
In reply to ปล่าวครับ ... กำลังคิดอยู่ว่า by PaPaSEK
ผมรู้ตั้งแต่ที่คุณมาเม้นใน G+ ผมแล้วล่ะว่าเป็นคนแบบนี้ ...
ข่าวเฟสบุ้คกลายเป็นกระทู้ชาวเ
superballsj2 Sat, 09/06/2012 - 09:12
In reply to ปล่าวครับ ... กำลังคิดอยู่ว่า by PaPaSEK
ข่าวเฟสบุ้คกลายเป็นกระทู้ชาวเกย์ไปแล้ว = =
UIWebViews ใน iOS5 มี เอนจิน
zerntrinos Fri, 08/06/2012 - 13:25
UIWebViews ใน iOS5 มี เอนจิน Nitro JavaScript แล้วนิครับ
เท่าที่ search นั้น iOS5
Pinery Fri, 08/06/2012 - 15:00
In reply to UIWebViews ใน iOS5 มี เอนจิน by zerntrinos
เท่าที่ search นั้น iOS5 ใส่ตัวเอนจินเพิ่มลงไปแค่ Home Screen web app เท่านั้นอะครับ
ลองดูผลเทสครับ
สรุปคือ
Masscotte Fri, 08/06/2012 - 13:39
สรุปคือ ทีมพัฒนาแอพฯของพี่มาร์คไม่ได้ ใส่ "ความตั้งใจจะทำให้ดี" ตั้งแต่แรกใช่มั้ยครับ?
ผมเจอทุกวันครับ
Thai.hacker Fri, 08/06/2012 - 13:51
ผมเจอทุกวันครับ "ข้อมูลนำเสนอขัดแย้งกัน" เมื่อไหร่จะดีกว่านี้ซะที
ไม่แต่ iOS หรือ Android หรอก
solid Fri, 08/06/2012 - 14:07
ไม่แต่ iOS หรือ Android หรอก XP หรือ Windows 7 บน PC/Laptop ก็ไม่รอด เครื่องทำงานอยู่ดีๆ พอเปิด FB ขึ้นมาเท่านั้นแหละ ดูเหมือนเครื่องถูกสาปให้หยุดเดินไปเลย
เครื่อง หรืองานที่กำลังทำครับ
bankkung Fri, 08/06/2012 - 14:57
In reply to ไม่แต่ iOS หรือ Android หรอก by solid
เครื่อง หรืองานที่กำลังทำครับ
5555
zalapao Sun, 10/06/2012 - 02:25
In reply to เครื่อง หรืองานที่กำลังทำครับ by bankkung
5555
มิน่าล่ะ
MiiXel2 Fri, 08/06/2012 - 14:22
มิน่าล่ะ
ของ Android ก็ห่วยมาก
UltimaWeapon Fri, 08/06/2012 - 14:28
ของ Android ก็ห่วยมาก เขียนมักง่ายสุดๆ เขียนไม่สมกับเป็นบริษัทที่มีชื่อเสียงเลย ต่างกับ Twitter for Android สุดๆ
FB สมควรไปซื้อ FriendCaster
rainhawk Fri, 08/06/2012 - 14:28
FB สมควรไปซื้อ FriendCaster ได้แล้ว
ยากหน่อยครับ เพราะคนทำ
PaPaSEK Fri, 08/06/2012 - 14:35
In reply to FB สมควรไปซื้อ FriendCaster by rainhawk
ยากหน่อยครับ
เพราะคนทำ FriendCaster เป็นเจ้าของเดียวกับ TweetCaster
อย่าเลยครับ เดี๋ยวไม่มี FB
Zatang Fri, 08/06/2012 - 18:33
In reply to FB สมควรไปซื้อ FriendCaster by rainhawk
อย่าเลยครับ เดี๋ยวไม่มี FB App ดีๆ ใช้ :P
ปัญหารุมเร้าจริงๆ แต่บน iOS
woohoo Fri, 08/06/2012 - 14:41
ปัญหารุมเร้าจริงๆ แต่บน iOS ก็ช้าจริงอะไรจริง แบบ desktop ที่เปิดใน iPad ก็เละเวลามีคนโพสต์คลิป YouTube
ความจริงเปิดเผยแล้วสินะ!!
kajeaw Fri, 08/06/2012 - 14:42
ความจริงเปิดเผยแล้วสินะ!!
เพื่อ facebook phone
maytee Fri, 08/06/2012 - 15:08
เพื่อ facebook phone จะได้มีที่ยืนในตลาด (ถ้ามีจริง)
สำหรับ Android ต้อง
Go-Kung Fri, 08/06/2012 - 15:09
สำหรับ Android ต้อง FriendCaster เท่านั้น
facebook น่าจะลองดู G+ บ้าง
Sephanov Fri, 08/06/2012 - 15:16
facebook น่าจะลองดู G+ บ้าง แอพตัวใหม่เค้าลื่นปรื้ดๆเลย
รวยจะแย่อยู่แล้ว ลงทุนพัฒนา
NgOrXz Fri, 08/06/2012 - 15:45
รวยจะแย่อยู่แล้ว ลงทุนพัฒนา ค้นคว้าวิจัย เรื่องพวกนี้ไม่เกินแรงคุณแม้แต่น้อย อาทิตย์สองอาทิตย์นี้เอ๋อมากทั้ง Desktopม Mobile ข้อมูลไม่ตรงกันบ่อย รูปเปิดไม่ขึ้น โน่นนี่นั้น เยอะแยะเบื่อมากของ Android ไม่ต้องพูดถึงเลย
ตัวเลขระบบแจ้งเดือนใหม่ ต้อง
hisoft Fri, 08/06/2012 - 15:48
ต้องเป็น "เตือน" หรือเปล่าครับ
น่าจะเรียบเรียงใหม่นะครับ แบบนี้เหมือนงง ๆ อาจจะเปลี่ยน "ทำไม่ง่าย" เป็น "ทำได้ไม่ง่าย" ก็ได้ หรือไม่ก็เปลี่ยนใหม่เลย
แก้ตามดูแล้วครับ ขอบคุณครับ
Pinery Fri, 08/06/2012 - 15:54
In reply to ตัวเลขระบบแจ้งเดือนใหม่ ต้อง by hisoft
แก้ตามดูแล้วครับ ขอบคุณครับ
ฟังดูย่ำแย่กว่าของ Windows
Job_The_Gamer Fri, 08/06/2012 - 16:04
ฟังดูย่ำแย่กว่าของ Windows Phone แฮะ = ="
ของผมเจอโหลดรูปไม่ติดบ่อยขนาดใช้ Wifi มันก็โหลดรูปไม่ติด
ผมยังใช้ people hub
Diew Fri, 08/06/2012 - 19:38
In reply to ฟังดูย่ำแย่กว่าของ Windows by Job_The_Gamer
ผมยังใช้ people hub อยู่เลยครับ ฮา
ผมก็ด้วยล่ะครับ แต่ว่ากันตรง
hisoft Fri, 08/06/2012 - 21:36
In reply to ผมยังใช้ people hub by Diew
ผมก็ด้วยล่ะครับ แต่ว่ากันตรง ๆ Facebook app บน WP7 เร็วแล้วนะครับ (เทียบกับเจ้าอื่น) - -" แต่ฟังก์ชันขาดไปเพียบ
ผมลองเทียบความเร็วใน People
Job_The_Gamer Fri, 08/06/2012 - 23:32
In reply to ผมก็ด้วยล่ะครับ แต่ว่ากันตรง by hisoft
ผมลองเทียบความเร็วใน People Hub กับ Facebook for Windows Phone มันก็แทบจะไม่ต่างกันเลยล่ะ (ยกเว้นตอนเปิดแอพนะอันนี้ FB ช้าใช้ได้เลย)
ถ้าใช้แค่ News Feed นี่แทบจะใช้ People Hub แทนได้เลยจริงๆ แต่ผมมันแอบโรคจิตอ่ะ ชอบให้มันมีฟีเจอร์เยอะๆเข้าไว้เผื่อใช้ :3
ของผมถ้าเน็ทเน่าๆ เช่นต่อ
TeamKiller Sat, 09/06/2012 - 01:03
In reply to ฟังดูย่ำแย่กว่าของ Windows by Job_The_Gamer
ของผมถ้าเน็ทเน่าๆ เช่นต่อ EDGE โหลด Notification ไม่มาเลยครับ เดี้ยงสนิท
แอปดูช้าๆ เทียบกับ People Hub คนละเรื่องเลย ฮ่าๆ
เป็นเหมือนกันครับ ตอนนี้อยู่ร
Job_The_Gamer Sat, 09/06/2012 - 11:00
In reply to ของผมถ้าเน็ทเน่าๆ เช่นต่อ by TeamKiller
เป็นเหมือนกันครับ
ตอนนี้อยู่ระหว่างย้ายค่ายไปใช้ 3G เลยมีแต่ Edge ใช้ Notification นี่ตั้งแต่ใช้มาได้ 2 อาทิตย์เห็นเด้งมาแค่ 4 ครั้งตัวเลขก็ไม่เคยตรง
เวลาแค่เช็คว่ามีอะไรใหม่เลยไปดู Notification ของ ME Tiles แทนเวิร์กกว่า = =
นี่อาจจะเป็นสาเหตุที่
mr_tawan Fri, 08/06/2012 - 16:32
นี่อาจจะเป็นสาเหตุที่ Facebook จะซื้อ Opera เพื่อเอา Engine การแสดงผล HTML มาใช้บน App ตัวเองมั้ง ...
เรามันของตายนี่หว่า?
mewthai Fri, 08/06/2012 - 16:46
เรามันของตายนี่หว่า? ไม่เคยสังเกตุเลยนะว่าเล่นผ่าน Safari ได้ดีกว่า
ไม่เข้าใจว่าทำไมต้องทำให้ API
wiennat Fri, 08/06/2012 - 19:11
ไม่เข้าใจว่าทำไมต้องทำให้ API Endpoint ต่างกัน
ถ้าใครใช้ iPad ผมแนะนำ Fera
kanatera Fri, 08/06/2012 - 19:31
ถ้าใครใช้ iPad ผมแนะนำ Fera (หรือ MyPad ก็ได้ ดีคนละอย่าง) ครับ เพิ่งหวดมาเมื่อคืน ชอบมากกกก เสียแต่หน้าจอดูรกไปหน่อย
ขอบคุณมากครับ เพิ่งรู้ เอิ๊กๆ
wished Sat, 09/06/2012 - 03:33
In reply to ถ้าใครใช้ iPad ผมแนะนำ Fera by kanatera
ขอบคุณมากครับ เพิ่งรู้ เอิ๊กๆ
ผมว่า Android version
Bntrnc Fri, 08/06/2012 - 21:10
ผมว่า Android version ช้ากว่ามากๆๆๆ
มีเงินตั้งเยอะ
LazarusSP1 Fri, 08/06/2012 - 21:59
มีเงินตั้งเยอะ แต่ไม่คิดนวัตกรรมใหม่ๆ ระวังหายไปแบบ Nokia, Sony นะครับ กว่าจะฟื้นก็อีกนานพอควร
ผมใช้ m.facebook.com ครับ
pongmile Fri, 08/06/2012 - 23:11
ผมใช้ m.facebook.com ครับ ง่าย สะดวก :D
ช้าทั้งแอนดรอย ทั้ง
iEkk Fri, 08/06/2012 - 23:28
ช้าทั้งแอนดรอย ทั้ง ios
สงสัยต้องรอโทรศัพย์ของเฟสบุ๊ก
คือลองเปรียบเทียบเวอร์ชั่นเก่
tg-thaigamer Sat, 09/06/2012 - 14:14
คือลองเปรียบเทียบเวอร์ชั่นเก่าๆ ไวมากๆๆๆ อาจจะมีบัคบ้างแต่ไม่กระทบเท่าไหร่
แต่พออัพมาเป็น v4 ทุกอย่างแย่ลงตามลำดับ ไม่ว่าจะเป็นการโหลด timeline ที่ต้องรอนานมากๆๆและก็คือโหลดข้อมูลกลุ่ม ก็ช้าด้วย
สู้เวอร์ชั่น3 ก็ไม่ได้
ถึงว่าทำไมน้องผมก็บ่นเรื่อง
Be1con Sat, 09/06/2012 - 22:24
ถึงว่าทำไมน้องผมก็บ่นเรื่อง Facebook for Android
iSud!!!
wssssss43 Thu, 21/06/2012 - 13:18
iSud!!! แล้วเมื่อไหร่จะแก้><~~~
โมโหขนาดต้องแสดงความหยาบคายเล
PaPaSEK Thu, 21/06/2012 - 17:48
In reply to iSud!!! by wssssss43
โมโหขนาดต้องแสดงความหยาบคายเลยเหรอครับ