Tags:
Node Thumbnail

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 ไม่มีรูป

No Description

2. เนื้อหาใหม่ที่เชื่อมกับระบบแจ้งเตือนไม่ sync กันเพราะเรียก (call) คนละส่วน

จำนวนตัวเลขระบบแจ้งเตือนใหม่จะเรียกผ่าน https://api.facebook.com/restserver.php ส่วนเนื้อหาใหม่ตามการแจ้งเตือนจะถูกโหลดผ่าน https://api-read.facebook.com/restserver.php ซึ่งการเรียกที่แยกกัน ทำให้ข้อมูลที่รีเทิร์นมาปรากฏบนตัวแอพนั้นอาจขัดแย้งกันเองหรือไม่ทันกันเองได้ เช่น ผู้ใช้เปิดแอพมาเห็นเลขแจ้งเตือนใหม่ ถ้ากดดูเร็วเกินไป จะไม่เห็นเนื้อหาใหม่อัพเดตตามที่แจ้งเตือนนั่นเอง

คำถาม: แล้วทำไม Facebook ต้องใช้เทคโนโลยี HTML?

Dirk de Kok ได้วิเคราะห์ตามนี้ครับ

  1. ข้อมูลที่ไหลตลอดเวลานั้นใช้ HTML พัฒนาได้ง่ายกว่า เพราะว่าการเขียนด้วย Objective-C เพื่อแสดงเนื้อหาที่ไหลตลอดเวลาทำได้ยาก เช่น การโชว์รูป ปุ่มต่างๆ ที่มีตัวหนังสือหลายๆ แบบ (อาจจะหมายถึงปุ่ม like ปุ่ม comment ฯลฯ) การจะสร้างปุ่มพวกนี้ด้วย Objective-C ทำได้ไม่ง่ายนักเพราะต้องเขียนกำหนดขนาดแต่ละปุ่ม ตำแหน่งวางปุ่มแต่ละปุ่ม ในขณะที่ใช้ HTML แทนจะทำได้ง่ายกว่า
  2. เขียนครั้งเดียว โผล่ได้ทุกแพลตฟอร์ม
  3. กระบวนการการทำงานและพัฒนาของ Facebook เขาเชี่ยวชาญในเรื่อง HTML อยู่แล้ว แต่การจะมาเขียนเป็นแอพ native ล้วนๆ ส่งให้แอปเปิลรีวิวเป็นอาทิตย์ (นึกภาพเวลาจะอัพเดตอะไรใหม่ๆ) ต้องคอยแก้โค้ด Objective-C ล้วนๆ ก็เป็นฝันร้ายของทีมพัฒนาแอพเลยทีเดียว
  4. ฟีเจอร์โฟนต่างหากที่ Facebook อยากจะบุกเข้าไปต่อเพราะโลกที่สามยังใช้ฟีเจอร์โฟนอยู่จำนวนมาก พวกเขาเหล่านี้อยากใช้ Facebook มากกว่าจะไปหาซื้อไอโฟนมาใช้ และขณะเดียวกันผู้ที่ใช้ไอโฟนหรือแอนดรอยด์อยู่แล้วก็ต้องหาแอพ Facebook มาลงอยู่ดี (ของตายว่างั้น ทนใช้ต่อไป)

ที่มา - Mobtest

Get latest news from Blognone

Comments

By: nudyed
AndroidWindowsIn Love
on 8 June 2012 - 13:17 #429590

ไม่ใช่แค่ของ iOS หรอก :3

By: zerntrinos
ContributorAndroidWindows
on 8 June 2012 - 13:18 #429591
zerntrinos's picture

FB น่าจะซื้อ FriendCaster นะ


เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"

Twitter : @Zerntrino
G+ : Zerntrino Plus

By: lingjaidee
ContributoriPhoneAndroid
on 8 June 2012 - 13:18 #429592
lingjaidee's picture

ใช้ทาง m.facebook.com ดีกว่าทุกอย่าง อัพเดทอะไรก็ตรงและเร็วกว่า แค่ไม่มีโปรเซสของการอัพโหลดรูปให้เห็นแค่นั้นเอง ;)


my blog

By: churos
ContributorAndroidWindows
on 8 June 2012 - 13:22 #429594

App Facebook ใน Android แย่กว่าใน iOS อีก ตอนนี้ผมก็หนีไปใช้ FriendCaster แล้ว

By: Pinery
ContributoriPhoneAndroidIn Love
on 8 June 2012 - 13:23 #429596

ข่าวนี้ ขอบคุณคุณ PaPaSEK มากครับสำหรับคำแนะนำในการเขียนข่าว :D (แอบปรึกษาหลังไมค์กันมาก่่อน อิอิ)

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 8 June 2012 - 13:52 #429608 Reply to:429596
PaPaSEK's picture

คนอื่นอาจจะไม่เข้าใจในความสัมพันธ์ของสองเรา

By: sunback
Contributor
on 8 June 2012 - 14:30 #429616 Reply to:429608
sunback's picture

จะแต่งเมื่อไหร่ก็บอกนะครับ!

By: Fzo
ContributorAndroid
on 8 June 2012 - 14:30 #429617 Reply to:429608
Fzo's picture

=0=


WE ARE THE 99%

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 8 June 2012 - 14:34 #429619 Reply to:429608
PaPaSEK's picture

ขอบคุณทุกท่านที่มาร่วมงานครัฟ

By: illusion
ContributorAndroid
on 8 June 2012 - 17:22 #429663 Reply to:429608
illusion's picture

อยากได้มือที่สามมั้ยฮ้าฟฟ

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 8 June 2012 - 18:58 #429682 Reply to:429663
PaPaSEK's picture

=______= พอคนอื่นเล่นด้วยแล้วมันแปลกๆ แฮะ

By: illusion
ContributorAndroid
on 8 June 2012 - 21:29 #429726 Reply to:429682
illusion's picture

โทษค้าบ แซวเล่นๆ :P

By: hisoft
ContributorWindows PhoneWindows
on 8 June 2012 - 21:36 #429732 Reply to:429726
hisoft's picture

ฮา แซวเล่น ๆ ทำจริง ๆ สินะครับ

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 9 June 2012 - 01:42 #429812 Reply to:429726
PaPaSEK's picture

ปล่าวครับ ... กำลังคิดอยู่ว่า threesome ก็น่าสน :D

ไปกันใหญ่แล้วเฟ้ย!!

By: mr_tawan
ContributoriPhoneAndroidWindows
on 9 June 2012 - 03:05 #429826 Reply to:429812
mr_tawan's picture

ผมรู้ตั้งแต่ที่คุณมาเม้นใน G+ ผมแล้วล่ะว่าเป็นคนแบบนี้ ...


  • 9tawan.net บล็อกส่วนตัวฮับ
By: superballsj2
iPhoneWindowsIn Love
on 9 June 2012 - 09:12 #429843 Reply to:429812
superballsj2's picture

ข่าวเฟสบุ้คกลายเป็นกระทู้ชาวเกย์ไปแล้ว = =

By: zerntrinos
ContributorAndroidWindows
on 8 June 2012 - 13:25 #429599
zerntrinos's picture

UIWebViews ใน iOS5 มี เอนจิน Nitro JavaScript แล้วนิครับ


เวลาดูสาวชอบดูสาวขาวๆ Sex Sex เวลาดู Notebook ชอบแบบ"ถึกๆดำๆ"

Twitter : @Zerntrino
G+ : Zerntrino Plus

By: Pinery
ContributoriPhoneAndroidIn Love
on 8 June 2012 - 15:00 #429627 Reply to:429599

เท่าที่ search นั้น iOS5 ใส่ตัวเอนจินเพิ่มลงไปแค่ Home Screen web app เท่านั้นอะครับ

ลองดูผลเทสครับ

By: Masscotte
iPhone
on 8 June 2012 - 13:39 #429602

สรุปคือ ทีมพัฒนาแอพฯของพี่มาร์คไม่ได้ ใส่ "ความตั้งใจจะทำให้ดี" ตั้งแต่แรกใช่มั้ยครับ?

By: Thai.hacker
ContributoriPhoneAndroidUbuntu
on 8 June 2012 - 13:51 #429607
Thai.hacker's picture

ผมเจอทุกวันครับ "ข้อมูลนำเสนอขัดแย้งกัน" เมื่อไหร่จะดีกว่านี้ซะที


ไม่มีลายเซ็น

By: solid
Windows
on 8 June 2012 - 14:07 #429610

ไม่แต่ iOS หรือ Android หรอก XP หรือ Windows 7 บน PC/Laptop ก็ไม่รอด เครื่องทำงานอยู่ดีๆ พอเปิด FB ขึ้นมาเท่านั้นแหละ ดูเหมือนเครื่องถูกสาปให้หยุดเดินไปเลย

By: bankkung
ContributoriPhoneAndroidBlackberry
on 8 June 2012 - 14:57 #429624 Reply to:429610

เครื่อง หรืองานที่กำลังทำครับ

By: zalapao
Android
on 10 June 2012 - 02:25 #430095 Reply to:429624
zalapao's picture

5555

By: MiiXel2
iPhoneAndroidWindows
on 8 June 2012 - 14:22 #429613
MiiXel2's picture

มิน่าล่ะ

By: UltimaWeapon
Windows PhoneRed HatWindowsIn Love
on 8 June 2012 - 14:28 #429614
UltimaWeapon's picture

ของ Android ก็ห่วยมาก เขียนมักง่ายสุดๆ เขียนไม่สมกับเป็นบริษัทที่มีชื่อเสียงเลย ต่างกับ Twitter for Android สุดๆ

By: rainhawk
AndroidWindows
on 8 June 2012 - 14:28 #429615
rainhawk's picture

FB สมควรไปซื้อ FriendCaster ได้แล้ว

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 8 June 2012 - 14:35 #429620 Reply to:429615
PaPaSEK's picture

ยากหน่อยครับ

เพราะคนทำ FriendCaster เป็นเจ้าของเดียวกับ TweetCaster

By: Zatang
ContributoriPhoneAndroid
on 8 June 2012 - 18:33 #429675 Reply to:429615

อย่าเลยครับ เดี๋ยวไม่มี FB App ดีๆ ใช้ :P


อคติทำให้คนรับเหตุผลด้านเดียว

By: woohoo
ContributoriPhoneIn Love
on 8 June 2012 - 14:41 #429621

ปัญหารุมเร้าจริงๆ แต่บน iOS ก็ช้าจริงอะไรจริง แบบ desktop ที่เปิดใน iPad ก็เละเวลามีคนโพสต์คลิป YouTube

By: kajeaw
iPhoneWindows
on 8 June 2012 - 14:42 #429622
kajeaw's picture

ความจริงเปิดเผยแล้วสินะ!!

By: maytee
iPhone
on 8 June 2012 - 15:08 #429628

เพื่อ facebook phone จะได้มีที่ยืนในตลาด (ถ้ามีจริง)

By: Go-Kung
iPhoneWindows PhoneAndroidBlackberry
on 8 June 2012 - 15:09 #429629

สำหรับ Android ต้อง FriendCaster เท่านั้น

By: Sephanov
iPhoneUbuntu
on 8 June 2012 - 15:16 #429630
Sephanov's picture

facebook น่าจะลองดู G+ บ้าง แอพตัวใหม่เค้าลื่นปรื้ดๆเลย

By: NgOrXz
iPhoneAndroidWindows
on 8 June 2012 - 15:45 #429634
NgOrXz's picture

รวยจะแย่อยู่แล้ว ลงทุนพัฒนา ค้นคว้าวิจัย เรื่องพวกนี้ไม่เกินแรงคุณแม้แต่น้อย อาทิตย์สองอาทิตย์นี้เอ๋อมากทั้ง Desktopม Mobile ข้อมูลไม่ตรงกันบ่อย รูปเปิดไม่ขึ้น โน่นนี่นั้น เยอะแยะเบื่อมากของ Android ไม่ต้องพูดถึงเลย

By: hisoft
ContributorWindows PhoneWindows
on 8 June 2012 - 15:48 #429637
hisoft's picture
  • ตัวเลขระบบแจ้งเดือนใหม่

ต้องเป็น "เตือน" หรือเปล่าครับ

  • การจะสร้างปุ่มพวกนี้ด้วย Objective-C ทำไม่ง่าย

น่าจะเรียบเรียงใหม่นะครับ แบบนี้เหมือนงง ๆ อาจจะเปลี่ยน "ทำไม่ง่าย" เป็น "ทำได้ไม่ง่าย" ก็ได้ หรือไม่ก็เปลี่ยนใหม่เลย

By: Pinery
ContributoriPhoneAndroidIn Love
on 8 June 2012 - 15:54 #429639 Reply to:429637

แก้ตามดูแล้วครับ ขอบคุณครับ

By: Job_The_Gamer
WriterWindows PhoneAndroidWindows
on 8 June 2012 - 16:04 #429641
Job_The_Gamer's picture

ฟังดูย่ำแย่กว่าของ Windows Phone แฮะ = ="

ของผมเจอโหลดรูปไม่ติดบ่อยขนาดใช้ Wifi มันก็โหลดรูปไม่ติด


Achievement Unlocked: Being a Blognone's Writer

By: Diew
ContributoriPhoneWindows PhoneAndroid
on 8 June 2012 - 19:38 #429699 Reply to:429641
Diew's picture

ผมยังใช้ people hub อยู่เลยครับ ฮา

By: hisoft
ContributorWindows PhoneWindows
on 8 June 2012 - 21:36 #429731 Reply to:429699
hisoft's picture

ผมก็ด้วยล่ะครับ แต่ว่ากันตรง ๆ Facebook app บน WP7 เร็วแล้วนะครับ (เทียบกับเจ้าอื่น) - -" แต่ฟังก์ชันขาดไปเพียบ

By: Job_The_Gamer
WriterWindows PhoneAndroidWindows
on 8 June 2012 - 23:32 #429768 Reply to:429731
Job_The_Gamer's picture

ผมลองเทียบความเร็วใน People Hub กับ Facebook for Windows Phone มันก็แทบจะไม่ต่างกันเลยล่ะ (ยกเว้นตอนเปิดแอพนะอันนี้ FB ช้าใช้ได้เลย)

ถ้าใช้แค่ News Feed นี่แทบจะใช้ People Hub แทนได้เลยจริงๆ แต่ผมมันแอบโรคจิตอ่ะ ชอบให้มันมีฟีเจอร์เยอะๆเข้าไว้เผื่อใช้ :3


Achievement Unlocked: Being a Blognone's Writer

By: TeamKiller
ContributoriPhone
on 9 June 2012 - 01:03 #429802 Reply to:429641
TeamKiller's picture

ของผมถ้าเน็ทเน่าๆ เช่นต่อ EDGE โหลด Notification ไม่มาเลยครับ เดี้ยงสนิท

แอปดูช้าๆ เทียบกับ People Hub คนละเรื่องเลย ฮ่าๆ

By: Job_The_Gamer
WriterWindows PhoneAndroidWindows
on 9 June 2012 - 11:00 #429866 Reply to:429802
Job_The_Gamer's picture

เป็นเหมือนกันครับ

ตอนนี้อยู่ระหว่างย้ายค่ายไปใช้ 3G เลยมีแต่ Edge ใช้ Notification นี่ตั้งแต่ใช้มาได้ 2 อาทิตย์เห็นเด้งมาแค่ 4 ครั้งตัวเลขก็ไม่เคยตรง

เวลาแค่เช็คว่ามีอะไรใหม่เลยไปดู Notification ของ ME Tiles แทนเวิร์กกว่า = =


Achievement Unlocked: Being a Blognone's Writer

By: mr_tawan
ContributoriPhoneAndroidWindows
on 8 June 2012 - 16:32 #429651
mr_tawan's picture

นี่อาจจะเป็นสาเหตุที่ Facebook จะซื้อ Opera เพื่อเอา Engine การแสดงผล HTML มาใช้บน App ตัวเองมั้ง ...


  • 9tawan.net บล็อกส่วนตัวฮับ
By: mewthai
iPhone
on 8 June 2012 - 16:46 #429657

เรามันของตายนี่หว่า? ไม่เคยสังเกตุเลยนะว่าเล่นผ่าน Safari ได้ดีกว่า

By: wiennat
Writer
on 8 June 2012 - 19:11 #429692

ไม่เข้าใจว่าทำไมต้องทำให้ API Endpoint ต่างกัน


onedd.net

By: kanatera
AndroidUbuntuWindows
on 8 June 2012 - 19:31 #429696
kanatera's picture

ถ้าใครใช้ iPad ผมแนะนำ Fera (หรือ MyPad ก็ได้ ดีคนละอย่าง) ครับ เพิ่งหวดมาเมื่อคืน ชอบมากกกก เสียแต่หน้าจอดูรกไปหน่อย

By: wished on 9 June 2012 - 03:33 #429829 Reply to:429696
wished's picture

ขอบคุณมากครับ เพิ่งรู้ เอิ๊กๆ

By: Bntrnc
iPhoneBlackberry
on 8 June 2012 - 21:10 #429715

ผมว่า Android version ช้ากว่ามากๆๆๆ

By: LazarusSP1
ContributoriPhone
on 8 June 2012 - 21:59 #429739

มีเงินตั้งเยอะ แต่ไม่คิดนวัตกรรมใหม่ๆ ระวังหายไปแบบ Nokia, Sony นะครับ กว่าจะฟื้นก็อีกนานพอควร

By: pongmile
ContributorAndroidSymbianWindows
on 8 June 2012 - 23:11 #429760
pongmile's picture

ผมใช้ m.facebook.com ครับ ง่าย สะดวก :D

By: iEkk
AndroidBlackberryWindows
on 8 June 2012 - 23:28 #429766
iEkk's picture

ช้าทั้งแอนดรอย ทั้ง ios
สงสัยต้องรอโทรศัพย์ของเฟสบุ๊ก

By: tg-thaigamer
ContributoriPhoneAndroidBlackberry
on 9 June 2012 - 14:14 #429919
tg-thaigamer's picture

คือลองเปรียบเทียบเวอร์ชั่นเก่าๆ ไวมากๆๆๆ อาจจะมีบัคบ้างแต่ไม่กระทบเท่าไหร่

แต่พออัพมาเป็น v4 ทุกอย่างแย่ลงตามลำดับ ไม่ว่าจะเป็นการโหลด timeline ที่ต้องรอนานมากๆๆและก็คือโหลดข้อมูลกลุ่ม ก็ช้าด้วย

สู้เวอร์ชั่น3 ก็ไม่ได้


มือใหม่!! ใหม่จริงๆนะ

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 9 June 2012 - 22:24 #430012
Be1con's picture

ถึงว่าทำไมน้องผมก็บ่นเรื่อง Facebook for Android


Coder | Designer | Thinker | Blogger

By: wssssss43
iPhoneAndroidWindows
on 21 June 2012 - 13:18 #435266

iSud!!! แล้วเมื่อไหร่จะแก้><~~~

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 21 June 2012 - 17:48 #435382 Reply to:435266
PaPaSEK's picture

โมโหขนาดต้องแสดงความหยาบคายเลยเหรอครับ