Tags:
Node Thumbnail

จากงาน Google I/O ครั้งที่ผ่านมา กูเกิลได้เผยโฉม Google TV เวอร์ชัน Honeycomb พร้อมกับการจัด Session พูดคุยเกี่ยวกับการพัฒนาโปรแกรมบน Google TV โดยจุดที่น่าสนใจคือถึงแม้ว่าทีวีจะเป็นอุปกรณ์ที่อยู่กับเรามานาน (กว่า PC และ Smart Phone) แต่การพัฒนาโปรแกรมให้ทำงานบนทีวีนั้นยังเป็นเรื่องใหม่มากในตอนนี้

หลังจากที่ได้ดู Session แล้ว (อ่านเพิ่มได้จากบล็อก "On Google TV" ของ mk) ก็เห็นว่าเป็นเรื่องที่น่าสนใจดี เลยนำมาแชร์กันครับ

No Description

เราผ่านโลกในยุค PC มานานแล้ว โปรแกรมแทบทุกชนิดในโลกของ PC มี Pattern ของมันจนแทบจะดิ้นไปทางอื่นลำบาก จนมาเมื่อ 4-5 ปีนี้ที่โลกของ Smart Phone เข้ามา ตามมาด้วย Tablet ซึ่งก็เริ่มสร้าง Pattern ของตัวเองขึ้นมาได้ระดับหนึ่ง

  • PC รับคำสั่งผ่านเมาส์และคีย์บอร์ด ซึ่งมีความแม่นยำสูง เหมาะกับโปรแกรมประเภทหน้าต่าง
  • Smart Phone รับคำสั่งผ่านนิ้ว อาจจะมีคีย์บอร์ดบางรุ่น ความแม่นยำต่ำ หน้าจอเล็ก โปรแกรมจึงควรออกแบบให้ปุ่มใหญ่ Simplify ทุกอย่างให้น้อยที่สุดเท่าที่จะทำได้
  • Tablet มีขนาดใหญ่กว่า Smart Phone โปรแกรมสามารถแสดงผลแบบ 2-3 column ได้ ควรรองรับการหมุนเครื่องแนวตั้งและแนวนอน

คำถามคือแล้วสำหรับโลกใหม่ที่ยังเพิ่งเริ่มก่อตัวอย่างเงียบๆ อย่างการเขียนโปรแกรมบนทีวีที่นำโดย Google TV และอาจจะมี Apple TV ตามมาในอนาคต นักพัฒนาโปรแกรมอย่างเราจะมี Pattern ในการออกแบบโปรแกรมอย่างไร

เราอยู่กับทีวีมานาน ก่อนจะรู้จัก PC ด้วยซ้ำไป แต่การพัฒนาโปรแกรมบนทีวีเพิ่งจะเกิดขึ้นไม่นาน

  • ทีวีรับ input ผ่านทางรีโมท โดยมากจะมีเพียง D-pad (บน ล่าง ซ้าย ขวา) และปุ่มเลข 0-9
  • ทีวีมีหลากหลายมาก ทั้งขนาด การแสดงผล ความกว้างยาวของหน้าจอ จำนวน DPI
  • ผู้ใช้ส่วนใหญ่นั่งห่างจากทีวี 2 - 10 เมตร ซึ่งตรงนี้ต่างจาก PC, Smart Phone และ Tablet มาก

TV Application Pattern ที่ทีมงานกูเกิลแนะนำสำหรับนักพัฒนาโปรแกรมมีดังนี้

No Description

No Description

โปรแกรมสามารถลงผ่าน Google TV และเรียกใช้งานได้เหมือนโปรแกรมบน PC หรือ Smart Phone
มีระบบ Install, Update, Uninstall แบบเดียวกัน

No Description

ทีวีไม่มีระบบสัมผัสหน้าจอ บังคับได้ 3 ทาง

  • D-Pad บน ล่าง ซ้าย ขวา
  • (อาจจะมี) คีย์บอร์ด
  • (อาจจะมี) เมาส์
ผู้ใช้ส่วนใหญ่นั่งห่างจากจอ 2 - 10 เมตร ซึ่งต่างจากหน้าจอ Smart Phone หรือ Tablet
ถึงแม้ทีวีจะมีขนาดใหญ่มาก แต่เมื่อนั่งอยู่ห่างออกไป ขนาดของหน้าจอที่เห็นก็ใกล้เคียงกันกับ Tablet ที่วางอยู่ใกล้ๆ
อย่าลืมว่าหน้าจอทีวีอยู่ในแนวนอนเสมอ ไม่จำเป็นต้องทำโปรแกรมสำหรับแนวตั้ง !!

No Description

ถึงแม้ปัจจุบันจะมีคีย์บอร์ดและเมาส์สำหรับทีวีแล้ว แต่ผู้ใช้จำนวนน้อยมากที่มี

เพราะฉะนั้นทุกโปรแกรมที่เขียนบททีวีควรจะสนับสนุน D-Pad ซึ่งมีอยู่ในรีโมททีวีแทบทุกตัวในปัจจุบัน

No Description

สำหรับการออกแบบโปรแกรมบน PC และ Tablet มักจะใช้หลักการของ Tab และ Scroll Bar ดังรูปข้างบน การออกแบบหน้าจอลักษณะนี้มีประโยชน์มากสำหรับอุปกรณ์ที่มี Pointing Device อย่างเมาส์หรือนิ้วสัมผัสจอ

แต่สำหรับทีวีที่มีเพียง D-Pad หากผู้ใช้ต้องการเลือกดูข้อมูลใน Tab 1 เลือก item 2 จะเห็นว่าผู้ใช้ต้องกดปุ่มลงมาเรื่อยๆ จนกว่าจะได้กดปุ่ม Button ข้างล่าง ซึ่งเป็นระยะทางที่ลำบากเกินไปสำหรับโปรแกรมบนทีวี

No Description

การออกแบบโปรแกรมบนทีวี จึงควรให้ Tab อยู่ทางซ้ายมือ รายการย่ออยู่ตรงกลาง และปุ่มสั่งการอาจจะอยู่ขวาสุดดังรูป

ถ้าผู้ใช้ต้องการเลือก Tab 1 และ item 2 หากจะไปที่ปุ่ม Button ก็กดปุ่มขวาเพียงครั้งเดียวก็เพียงพอ

ต่างกับ PC และ Smart Phone ที่ผู้ใช้สามรถเลื่อนไปกดปุ่มต่างๆ ได้ตามใจชอบ แต่กับทีวีและ D-Pad นักพัฒนาควรใส่ใจกับ State ของ Cursor ในแต่ละจุด ว่าตอนนี้อยู่ที่จุดไหนแล้ว กำลังจะไปที่ไหนต่อ ต้องใช้ระยะทางเท่าไหร่

No Description

No Description

ตัวอย่างการปรับ Action Bar จากบน Tablet มาอยู่บน Google TV นอกจากที่เราควรจะลดจำนวนปุ่มแล้วยังต้องปรับเมนูมาอยู่ทางซ้าย

No Description

ถ้าวัดขนาดกว้างยาวของหน้าจอ แน่นอนว่าทีวีมีขนาดใหญ่กว่าหน้าจอบนอุปกรณ์อื่นๆ มาก แต่ในความเป็นจริงแล้วจำนวน Pixel หรือ DPI ถ้าวัดจริงๆ ก็ไม่ได้มากกว่ากันซักเท่าไหร่ เราสามารถมองเห็น Pixel บนทีวีได้ถ้ามองใกล้ๆ ด้วยตาเปล่า

จากตารางข้างบน ทีวีจึงจัดอยู่ในกลุ่ม Large Screen และมี DPI อยู่ในช่วง 240-320 DPI

ถ้าหากเรานั่งห่างจากทีวีซัก 5 เมตร เราจะเห็นขนาดของจอทีวีไม่ได้ใหญ่กว่า Tablet ในมือมากนัก การทดสอบโปรแกรมบน Simulator จึงให้ผลไม่ต่างกับการทำงานจริงบนทีวีมากนัก

No Description

ด้วยเหตุผลทางการผลิตหลายอย่าง ทำให้ผู้ผลิตทีวีหลายรายจำเป็นต้องสร้างขอบขึ้นมาจากขนาดของจอจริงๆ เพราะฉะนั้นบางครั้งทีวีขนาด 1,920 x 1,080 อาจจะแสดงผลได้เพียง 1,692 x 952

ส่วนขอบที่หายไปจะถูก Crop ออกไป เพราะฉะนั้นเราควรออกแบบโรแกรมโดยเผื่อขอบที่หายไปด้วย

No Description

การวางตำแหน่ง UI ไม่ควรที่จะเขียนโค้ดระบุตำแหน่ง X - Y ที่ชัดเจน ควรออกแบบให้ UI เผื่อการยืดและหดได้ ตามขนาดของจอทีวีที่ไม่เท่ากัน

สำหรับ QA ควรจะมีการทดสอบโปรแกรมบนทีวีหลากหลายเท่าที่จะหาได้

No Description

ตัวอย่างการพอร์ทโปรแกรมจาก Tablet มาบน Google TV

จากรูปนี้คือโปรแกรม Pandora ในเวอร์ชัน Tablet ทุกอย่างดูเรียบง่ายดีอยู่แล้ว แต่ก็ยังมีสิ่งที่ต้องเปลี่ยนเมื่อมาอยู่บนทีวี

  • ปรับขนาดของรูปหน้าปกให้มี Resolution ที่มากกว่าเดิม (จอใหญ่ขึ้น)
  • เรียงปุ่มที่ใช้บ่อยอย่างเช่น เมนู, หยุด, เล่นเพลงต่อไป ไว้ทางซ้าย และปุ่มที่ใช้ไม่บ่อยนักไว้ทางขวา
  • UI หลายอย่างที่เขียนบน Android Tablet สามารถ Reuse มาใช้่บน Google TV ได้เลย

No Description

อีกตัวอย่างนึงจาก CNBC ที่ต้องคิดใหม่ โดยการรวมโปรแกรมเวอร์ชันมือถือกับหน้าเว็บเข้าด้วยกัน

  • แสดงวิดีโอหรือเนื้อข่าวทางซ้าย
  • แสดงส่วนของ Stock ทางขวา
  • ใช้ D-Pad เลื่อนไปตาม item ต่างๆ ได้ง่าย
  • ถ้ารีโมทมีปุ่น Play, Pause, Forward ควรเขียนโปรแกรมให้รองรับด้วย

No Description

สุดท้าย หน้าตาของ Android Market สำหรับ Google TV หน้าตาเป็นเช่นนี้

สรุป
  • การเขียนโปรแกรม, SDK, โค้ด ไม่ต่างจากเดิมเท่าไหร่
  • สำคัญที่สุดคือการวาง Layout ของโปรแกรม เพื่อรองรับ D-Pad
  • ทีวีมีหลากหลาย(มาก) ควรคิดเผื่อในการแสดงผลบนทีวีหน้าจอแบบอื่นๆ ด้วย
  • TV Application Development ยังเป็นช่วงเริ่มต้น อาจจะต้องลองผิดลองถูกไปอีกซักพักจนกว่าจะได้ Pattern ที่เหมาะสม
คำถามที่น่าสนใจ
  • โมเดลการหารายได้จากโปรแกรมบนทีวีจะมีหน้าตาเป็นอย่างไร
  • โปรแกรมประเภทใช้ฟรีแล้วเก็บค่าโฆษณา พอมาอยู่บนทีวี บริการโฆษณาอย่าง Adsense, Admob จะมีหน้าตาเป็นอย่างไร เก็บรายได้กันอย่างไร (ตามเวลาที่โฆษณาโชว์ ?)
  • เมื่อไหร่ที่ Apple TV จะลงโปรแกรมเพิ่มเติมได้ และเมื่อลงได้จริง ตลาด TV Application จะเป็นขุมทรัพย์ได้เท่ากับตลาด Smart Phone และ Tablet จริงหรือเปล่า ?

ที่มา - Khajochi's Blog, Google I/O

Get latest news from Blognone

Comments

By: BlackMiracle
WriterAndroidUbuntuWindows
on 20 May 2011 - 02:00 #290828

เขียนได้ดีครับ

แน่นอน.. TVs are not just "big phones"


Pitawat's Blog :: บล็อกผมเองครับ

By: BreMen
iPhoneWindows PhoneAndroid
on 20 May 2011 - 02:09 #290829
BreMen's picture

มาอ่านยาว ตอนดึกดื่นเลยครับ ^^

By: Fzo
ContributorAndroid
on 20 May 2011 - 02:34 #290833
Fzo's picture

ชอบมากครับ ได้ความรู้เยอะเลย
ปล. มีคำผิดอยู่นิดนึง --> ไม่จำเป็นต้องทำโปรกแรมสำหรับแนวตั้ง !!


WE ARE THE 99%

By: hisoft
ContributorWindows PhoneWindows
on 20 May 2011 - 02:52 #290834
hisoft's picture

อ่านแล้วเห็นภาพดีครับ แต่ผมสงสัยเอาจริงจังว่า Google TV รุ่นแรกจะอัพได้หรือเปล่าเนี่ย

By: kichinto
Android
on 20 May 2011 - 04:45 #290843
kichinto's picture

ในโลกของ Internet TV ที่ต่ออินเตอร์เน็ตเข้ามา มีสิทธิ์ติดไวรัสไหมครับ
โดยรวมแล้ว Hardware ของ Internet TV มีสเปค CPU ใกล้เคียงกับ Tablet หรือ Netbook ครับผม

By: Diaboros_Sorobaid
Windows PhoneAndroidWindows
on 20 May 2011 - 08:22 #290860
Diaboros_Sorobaid's picture

เปิดมุมมองใหม่ ไอเดียพุ่งปรี๊ดเลยครับ. แต่ผมว่ารีโมทที่มีไจโรสโคป 3 แกนเหมาะที่จะทำเมาส์หรือไม่ก็เลียนแบบ Kinect ไปเลย.

By: olarn_u
iPhoneUbuntu
on 20 May 2011 - 08:41 #290863

TV ติด virus ... TV ติด malware ... หาโปรแกรม anti-virus มาลง ... ลง plug-in Ad-block ... แล้วจะมีเจ้าไหนไหมที่ออกมาโฆษณาว่า TV ของเราไม่มี Virus ... อิอิ

By: nowingnoid
iPhoneAndroidUbuntu
on 20 May 2011 - 09:26 #290872 Reply to:290863
nowingnoid's picture

ไวรัส... "ประกาศจาก ค.. " เอ่อ ไวรัสจอดับ

By: mugaa
iPhoneWindows PhoneAndroidUbuntu
on 20 May 2011 - 09:12 #290868
mugaa's picture

จริงๆ ทำรีโมทเป็น touchscreen ขนาดเล็กอาจจะขนาดเท่า Iphone เป็นส่วนแสดงพวกเมนูหรือแสดงผลในส่วน os ไว้ที่รีโมทเลย ส่วน tv ทำหน้าที่แสดงผลในส่วนของ app ที่ถูกรันขึ้นมาอย่างเดียว น่าจะตัดปัญหาเรื่องการรับ input ได้นะ

By: nowingnoid
iPhoneAndroidUbuntu
on 20 May 2011 - 09:33 #290873 Reply to:290868
nowingnoid's picture

เหมือน Apple Magic Trackpad ก็ดีเลยนะครับ แต่แบบราคาสูงไปก็ไม่ไหวนะ

หรือไม่ก็ให้ทำงานร่วมกับ Multi Touch Phone ไปเลย

By: hisoft
ContributorWindows PhoneWindows
on 20 May 2011 - 15:09 #291121 Reply to:290868
hisoft's picture

มีโปรแกรมรีโมทสำหรับลง iPhone & Android ครับ

By: zipper
ContributorAndroid
on 20 May 2011 - 10:07 #290903

ต่อไปพวกโฆษณาในรายการต่างๆ จะโผล่มาเป็น pop up เล็กๆ แล้วก็หายไปโดยที่ไม่ต้องตัดรายการเข้าไปยังโฆษณาหรือเปล่าเนี่ย อย่างเช่นการถ่ายทอดฟุตบอล แทนที่จะตัดเข้าโฆษณาไปก็กลายเป็น pop up เล็กๆ โผล่ขึ้นมาแทน

By: geumatee
ContributoriPhoneAndroidWindows
on 20 May 2011 - 10:15 #290911 Reply to:290903

แล้วก็บังโกล์ตอนกำลังจะยิงเข้าพอดี 555

By: giogio
Android
on 20 May 2011 - 12:33 #291032
giogio's picture

น่าสนครับ แต่ตอนนี้ทีวีผมต่อตรงกับคอม คงยังไม่ต้องการ tv box พวกนี้หรอกมั้ง

By: mk
FounderAndroid
on 20 May 2011 - 14:34 #291106
mk's picture

เพิ่มให้นิดนึงครับ UI สำหรับทีวีเค้าจะมีชื่อเรียกเล่นๆ ว่า 10-Foot UI (บางที่ก็สะกด Ten-Foot UI) ซึ่งก็มีความหมายตามชื่อล่ะครับ ว่าเป็น UI สำหรับคนที่นั่งห่างจอไปอีก 10 ฟุต