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
Comments
ไม่ใช่แค่ของ iOS หรอก :3
FB น่าจะซื้อ FriendCaster นะ
เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"
Twitter : @Zerntrino
G+ : Zerntrino Plus
ใช้ทาง m.facebook.com ดีกว่าทุกอย่าง อัพเดทอะไรก็ตรงและเร็วกว่า แค่ไม่มีโปรเซสของการอัพโหลดรูปให้เห็นแค่นั้นเอง ;)
my blog
App Facebook ใน Android แย่กว่าใน iOS อีก ตอนนี้ผมก็หนีไปใช้ FriendCaster แล้ว
ข่าวนี้ ขอบคุณคุณ PaPaSEK มากครับสำหรับคำแนะนำในการเขียนข่าว :D (แอบปรึกษาหลังไมค์กันมาก่่อน อิอิ)
คนอื่นอาจจะไม่เข้าใจในความสัมพันธ์ของสองเรา
จะแต่งเมื่อไหร่ก็บอกนะครับ!
=0=
WE ARE THE 99%
ขอบคุณทุกท่านที่มาร่วมงานครัฟ
อยากได้มือที่สามมั้ยฮ้าฟฟ
=______= พอคนอื่นเล่นด้วยแล้วมันแปลกๆ แฮะ
โทษค้าบ แซวเล่นๆ :P
ฮา แซวเล่น ๆ ทำจริง ๆ สินะครับ
ปล่าวครับ ... กำลังคิดอยู่ว่า threesome ก็น่าสน :D
ไปกันใหญ่แล้วเฟ้ย!!
ผมรู้ตั้งแต่ที่คุณมาเม้นใน G+ ผมแล้วล่ะว่าเป็นคนแบบนี้ ...
ข่าวเฟสบุ้คกลายเป็นกระทู้ชาวเกย์ไปแล้ว = =
UIWebViews ใน iOS5 มี เอนจิน Nitro JavaScript แล้วนิครับ
เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"
Twitter : @Zerntrino
G+ : Zerntrino Plus
เท่าที่ search นั้น iOS5 ใส่ตัวเอนจินเพิ่มลงไปแค่ Home Screen web app เท่านั้นอะครับ
ลองดูผลเทสครับ
สรุปคือ ทีมพัฒนาแอพฯของพี่มาร์คไม่ได้ ใส่ "ความตั้งใจจะทำให้ดี" ตั้งแต่แรกใช่มั้ยครับ?
ผมเจอทุกวันครับ "ข้อมูลนำเสนอขัดแย้งกัน" เมื่อไหร่จะดีกว่านี้ซะที
ไม่มีลายเซ็น
ไม่แต่ iOS หรือ Android หรอก XP หรือ Windows 7 บน PC/Laptop ก็ไม่รอด เครื่องทำงานอยู่ดีๆ พอเปิด FB ขึ้นมาเท่านั้นแหละ ดูเหมือนเครื่องถูกสาปให้หยุดเดินไปเลย
เครื่อง หรืองานที่กำลังทำครับ
5555
มิน่าล่ะ
ของ Android ก็ห่วยมาก เขียนมักง่ายสุดๆ เขียนไม่สมกับเป็นบริษัทที่มีชื่อเสียงเลย ต่างกับ Twitter for Android สุดๆ
FB สมควรไปซื้อ FriendCaster ได้แล้ว
ยากหน่อยครับ
เพราะคนทำ FriendCaster เป็นเจ้าของเดียวกับ TweetCaster
อย่าเลยครับ เดี๋ยวไม่มี FB App ดีๆ ใช้ :P
อคติทำให้คนรับเหตุผลด้านเดียว
ปัญหารุมเร้าจริงๆ แต่บน iOS ก็ช้าจริงอะไรจริง แบบ desktop ที่เปิดใน iPad ก็เละเวลามีคนโพสต์คลิป YouTube
ความจริงเปิดเผยแล้วสินะ!!
เพื่อ facebook phone จะได้มีที่ยืนในตลาด (ถ้ามีจริง)
สำหรับ Android ต้อง FriendCaster เท่านั้น
facebook น่าจะลองดู G+ บ้าง แอพตัวใหม่เค้าลื่นปรื้ดๆเลย
รวยจะแย่อยู่แล้ว ลงทุนพัฒนา ค้นคว้าวิจัย เรื่องพวกนี้ไม่เกินแรงคุณแม้แต่น้อย อาทิตย์สองอาทิตย์นี้เอ๋อมากทั้ง Desktopม Mobile ข้อมูลไม่ตรงกันบ่อย รูปเปิดไม่ขึ้น โน่นนี่นั้น เยอะแยะเบื่อมากของ Android ไม่ต้องพูดถึงเลย
ต้องเป็น "เตือน" หรือเปล่าครับ
น่าจะเรียบเรียงใหม่นะครับ แบบนี้เหมือนงง ๆ อาจจะเปลี่ยน "ทำไม่ง่าย" เป็น "ทำได้ไม่ง่าย" ก็ได้ หรือไม่ก็เปลี่ยนใหม่เลย
แก้ตามดูแล้วครับ ขอบคุณครับ
ฟังดูย่ำแย่กว่าของ Windows Phone แฮะ = ="
ของผมเจอโหลดรูปไม่ติดบ่อยขนาดใช้ Wifi มันก็โหลดรูปไม่ติด
Achievement Unlocked: Being a Blognone's Writer
ผมยังใช้ people hub อยู่เลยครับ ฮา
ผมก็ด้วยล่ะครับ แต่ว่ากันตรง ๆ Facebook app บน WP7 เร็วแล้วนะครับ (เทียบกับเจ้าอื่น) - -" แต่ฟังก์ชันขาดไปเพียบ
ผมลองเทียบความเร็วใน People Hub กับ Facebook for Windows Phone มันก็แทบจะไม่ต่างกันเลยล่ะ (ยกเว้นตอนเปิดแอพนะอันนี้ FB ช้าใช้ได้เลย)
ถ้าใช้แค่ News Feed นี่แทบจะใช้ People Hub แทนได้เลยจริงๆ แต่ผมมันแอบโรคจิตอ่ะ ชอบให้มันมีฟีเจอร์เยอะๆเข้าไว้เผื่อใช้ :3
Achievement Unlocked: Being a Blognone's Writer
ของผมถ้าเน็ทเน่าๆ เช่นต่อ EDGE โหลด Notification ไม่มาเลยครับ เดี้ยงสนิท
แอปดูช้าๆ เทียบกับ People Hub คนละเรื่องเลย ฮ่าๆ
เป็นเหมือนกันครับ
ตอนนี้อยู่ระหว่างย้ายค่ายไปใช้ 3G เลยมีแต่ Edge ใช้ Notification นี่ตั้งแต่ใช้มาได้ 2 อาทิตย์เห็นเด้งมาแค่ 4 ครั้งตัวเลขก็ไม่เคยตรง
เวลาแค่เช็คว่ามีอะไรใหม่เลยไปดู Notification ของ ME Tiles แทนเวิร์กกว่า = =
Achievement Unlocked: Being a Blognone's Writer
นี่อาจจะเป็นสาเหตุที่ Facebook จะซื้อ Opera เพื่อเอา Engine การแสดงผล HTML มาใช้บน App ตัวเองมั้ง ...
เรามันของตายนี่หว่า? ไม่เคยสังเกตุเลยนะว่าเล่นผ่าน Safari ได้ดีกว่า
ไม่เข้าใจว่าทำไมต้องทำให้ API Endpoint ต่างกัน
onedd.net
ถ้าใครใช้ iPad ผมแนะนำ Fera (หรือ MyPad ก็ได้ ดีคนละอย่าง) ครับ เพิ่งหวดมาเมื่อคืน ชอบมากกกก เสียแต่หน้าจอดูรกไปหน่อย
ขอบคุณมากครับ เพิ่งรู้ เอิ๊กๆ
ผมว่า Android version ช้ากว่ามากๆๆๆ
มีเงินตั้งเยอะ แต่ไม่คิดนวัตกรรมใหม่ๆ ระวังหายไปแบบ Nokia, Sony นะครับ กว่าจะฟื้นก็อีกนานพอควร
ผมใช้ m.facebook.com ครับ ง่าย สะดวก :D
ช้าทั้งแอนดรอย ทั้ง iosสงสัยต้องรอโทรศัพย์ของเฟสบุ๊ก
คือลองเปรียบเทียบเวอร์ชั่นเก่าๆ ไวมากๆๆๆ อาจจะมีบัคบ้างแต่ไม่กระทบเท่าไหร่
แต่พออัพมาเป็น v4 ทุกอย่างแย่ลงตามลำดับ ไม่ว่าจะเป็นการโหลด timeline ที่ต้องรอนานมากๆๆและก็คือโหลดข้อมูลกลุ่ม ก็ช้าด้วย
สู้เวอร์ชั่น3 ก็ไม่ได้
มือใหม่!! ใหม่จริงๆนะ
ถึงว่าทำไมน้องผมก็บ่นเรื่อง Facebook for Android
Coder | Designer | Thinker | Blogger
iSud!!! แล้วเมื่อไหร่จะแก้><~~~
โมโหขนาดต้องแสดงความหยาบคายเลยเหรอครับ