จากงาน Google I/O ครั้งที่ผ่านมา กูเกิลได้เผยโฉม Google TV เวอร์ชัน Honeycomb พร้อมกับการจัด Session พูดคุยเกี่ยวกับการพัฒนาโปรแกรมบน Google TV โดยจุดที่น่าสนใจคือถึงแม้ว่าทีวีจะเป็นอุปกรณ์ที่อยู่กับเรามานาน (กว่า PC และ Smart Phone) แต่การพัฒนาโปรแกรมให้ทำงานบนทีวีนั้นยังเป็นเรื่องใหม่มากในตอนนี้
หลังจากที่ได้ดู Session แล้ว (อ่านเพิ่มได้จากบล็อก "On Google TV" ของ mk) ก็เห็นว่าเป็นเรื่องที่น่าสนใจดี เลยนำมาแชร์กันครับ
เราผ่านโลกในยุค PC มานานแล้ว โปรแกรมแทบทุกชนิดในโลกของ PC มี Pattern ของมันจนแทบจะดิ้นไปทางอื่นลำบาก จนมาเมื่อ 4-5 ปีนี้ที่โลกของ Smart Phone เข้ามา ตามมาด้วย Tablet ซึ่งก็เริ่มสร้าง Pattern ของตัวเองขึ้นมาได้ระดับหนึ่ง
คำถามคือแล้วสำหรับโลกใหม่ที่ยังเพิ่งเริ่มก่อตัวอย่างเงียบๆ อย่างการเขียนโปรแกรมบนทีวีที่นำโดย Google TV และอาจจะมี Apple TV ตามมาในอนาคต นักพัฒนาโปรแกรมอย่างเราจะมี Pattern ในการออกแบบโปรแกรมอย่างไร
เราอยู่กับทีวีมานาน ก่อนจะรู้จัก PC ด้วยซ้ำไป แต่การพัฒนาโปรแกรมบนทีวีเพิ่งจะเกิดขึ้นไม่นาน
TV Application Pattern ที่ทีมงานกูเกิลแนะนำสำหรับนักพัฒนาโปรแกรมมีดังนี้
โปรแกรมสามารถลงผ่าน Google TV และเรียกใช้งานได้เหมือนโปรแกรมบน PC หรือ Smart Phone
มีระบบ Install, Update, Uninstall แบบเดียวกัน
ทีวีไม่มีระบบสัมผัสหน้าจอ บังคับได้ 3 ทาง
ถึงแม้ปัจจุบันจะมีคีย์บอร์ดและเมาส์สำหรับทีวีแล้ว แต่ผู้ใช้จำนวนน้อยมากที่มี
เพราะฉะนั้นทุกโปรแกรมที่เขียนบททีวีควรจะสนับสนุน D-Pad ซึ่งมีอยู่ในรีโมททีวีแทบทุกตัวในปัจจุบัน
สำหรับการออกแบบโปรแกรมบน PC และ Tablet มักจะใช้หลักการของ Tab และ Scroll Bar ดังรูปข้างบน การออกแบบหน้าจอลักษณะนี้มีประโยชน์มากสำหรับอุปกรณ์ที่มี Pointing Device อย่างเมาส์หรือนิ้วสัมผัสจอ
แต่สำหรับทีวีที่มีเพียง D-Pad หากผู้ใช้ต้องการเลือกดูข้อมูลใน Tab 1 เลือก item 2 จะเห็นว่าผู้ใช้ต้องกดปุ่มลงมาเรื่อยๆ จนกว่าจะได้กดปุ่ม Button ข้างล่าง ซึ่งเป็นระยะทางที่ลำบากเกินไปสำหรับโปรแกรมบนทีวี
การออกแบบโปรแกรมบนทีวี จึงควรให้ Tab อยู่ทางซ้ายมือ รายการย่ออยู่ตรงกลาง และปุ่มสั่งการอาจจะอยู่ขวาสุดดังรูป
ถ้าผู้ใช้ต้องการเลือก Tab 1 และ item 2 หากจะไปที่ปุ่ม Button ก็กดปุ่มขวาเพียงครั้งเดียวก็เพียงพอ
ต่างกับ PC และ Smart Phone ที่ผู้ใช้สามรถเลื่อนไปกดปุ่มต่างๆ ได้ตามใจชอบ แต่กับทีวีและ D-Pad นักพัฒนาควรใส่ใจกับ State ของ Cursor ในแต่ละจุด ว่าตอนนี้อยู่ที่จุดไหนแล้ว กำลังจะไปที่ไหนต่อ ต้องใช้ระยะทางเท่าไหร่
ตัวอย่างการปรับ Action Bar จากบน Tablet มาอยู่บน Google TV นอกจากที่เราควรจะลดจำนวนปุ่มแล้วยังต้องปรับเมนูมาอยู่ทางซ้าย
ถ้าวัดขนาดกว้างยาวของหน้าจอ แน่นอนว่าทีวีมีขนาดใหญ่กว่าหน้าจอบนอุปกรณ์อื่นๆ มาก แต่ในความเป็นจริงแล้วจำนวน Pixel หรือ DPI ถ้าวัดจริงๆ ก็ไม่ได้มากกว่ากันซักเท่าไหร่ เราสามารถมองเห็น Pixel บนทีวีได้ถ้ามองใกล้ๆ ด้วยตาเปล่า
จากตารางข้างบน ทีวีจึงจัดอยู่ในกลุ่ม Large Screen และมี DPI อยู่ในช่วง 240-320 DPI
ถ้าหากเรานั่งห่างจากทีวีซัก 5 เมตร เราจะเห็นขนาดของจอทีวีไม่ได้ใหญ่กว่า Tablet ในมือมากนัก การทดสอบโปรแกรมบน Simulator จึงให้ผลไม่ต่างกับการทำงานจริงบนทีวีมากนัก
ด้วยเหตุผลทางการผลิตหลายอย่าง ทำให้ผู้ผลิตทีวีหลายรายจำเป็นต้องสร้างขอบขึ้นมาจากขนาดของจอจริงๆ เพราะฉะนั้นบางครั้งทีวีขนาด 1,920 x 1,080 อาจจะแสดงผลได้เพียง 1,692 x 952
ส่วนขอบที่หายไปจะถูก Crop ออกไป เพราะฉะนั้นเราควรออกแบบโรแกรมโดยเผื่อขอบที่หายไปด้วย
การวางตำแหน่ง UI ไม่ควรที่จะเขียนโค้ดระบุตำแหน่ง X - Y ที่ชัดเจน ควรออกแบบให้ UI เผื่อการยืดและหดได้ ตามขนาดของจอทีวีที่ไม่เท่ากัน
สำหรับ QA ควรจะมีการทดสอบโปรแกรมบนทีวีหลากหลายเท่าที่จะหาได้
ตัวอย่างการพอร์ทโปรแกรมจาก Tablet มาบน Google TV
จากรูปนี้คือโปรแกรม Pandora ในเวอร์ชัน Tablet ทุกอย่างดูเรียบง่ายดีอยู่แล้ว แต่ก็ยังมีสิ่งที่ต้องเปลี่ยนเมื่อมาอยู่บนทีวี
อีกตัวอย่างนึงจาก CNBC ที่ต้องคิดใหม่ โดยการรวมโปรแกรมเวอร์ชันมือถือกับหน้าเว็บเข้าด้วยกัน
สุดท้าย หน้าตาของ Android Market สำหรับ Google TV หน้าตาเป็นเช่นนี้
ที่มา - Khajochi's Blog, Google I/O
Comments
เขียนได้ดีครับ
แน่นอน.. TVs are not just "big phones"
Pitawat's Blog :: บล็อกผมเองครับ
มาอ่านยาว ตอนดึกดื่นเลยครับ ^^
ชอบมากครับ ได้ความรู้เยอะเลย
ปล. มีคำผิดอยู่นิดนึง --> ไม่จำเป็นต้องทำโปรกแรมสำหรับแนวตั้ง !!
WE ARE THE 99%
อ่านแล้วเห็นภาพดีครับ แต่ผมสงสัยเอาจริงจังว่า Google TV รุ่นแรกจะอัพได้หรือเปล่าเนี่ย
ในโลกของ Internet TV ที่ต่ออินเตอร์เน็ตเข้ามา มีสิทธิ์ติดไวรัสไหมครับ
โดยรวมแล้ว Hardware ของ Internet TV มีสเปค CPU ใกล้เคียงกับ Tablet หรือ Netbook ครับผม
เปิดมุมมองใหม่ ไอเดียพุ่งปรี๊ดเลยครับ. แต่ผมว่ารีโมทที่มีไจโรสโคป 3 แกนเหมาะที่จะทำเมาส์หรือไม่ก็เลียนแบบ Kinect ไปเลย.
TV ติด virus ... TV ติด malware ... หาโปรแกรม anti-virus มาลง ... ลง plug-in Ad-block ... แล้วจะมีเจ้าไหนไหมที่ออกมาโฆษณาว่า TV ของเราไม่มี Virus ... อิอิ
ไวรัส... "ประกาศจาก ค.. " เอ่อ ไวรัสจอดับ
จริงๆ ทำรีโมทเป็น touchscreen ขนาดเล็กอาจจะขนาดเท่า Iphone เป็นส่วนแสดงพวกเมนูหรือแสดงผลในส่วน os ไว้ที่รีโมทเลย ส่วน tv ทำหน้าที่แสดงผลในส่วนของ app ที่ถูกรันขึ้นมาอย่างเดียว น่าจะตัดปัญหาเรื่องการรับ input ได้นะ
เหมือน Apple Magic Trackpad ก็ดีเลยนะครับ แต่แบบราคาสูงไปก็ไม่ไหวนะ
หรือไม่ก็ให้ทำงานร่วมกับ Multi Touch Phone ไปเลย
มีโปรแกรมรีโมทสำหรับลง iPhone & Android ครับ
ต่อไปพวกโฆษณาในรายการต่างๆ จะโผล่มาเป็น pop up เล็กๆ แล้วก็หายไปโดยที่ไม่ต้องตัดรายการเข้าไปยังโฆษณาหรือเปล่าเนี่ย อย่างเช่นการถ่ายทอดฟุตบอล แทนที่จะตัดเข้าโฆษณาไปก็กลายเป็น pop up เล็กๆ โผล่ขึ้นมาแทน
แล้วก็บังโกล์ตอนกำลังจะยิงเข้าพอดี 555
น่าสนครับ แต่ตอนนี้ทีวีผมต่อตรงกับคอม คงยังไม่ต้องการ tv box พวกนี้หรอกมั้ง
เพิ่มให้นิดนึงครับ UI สำหรับทีวีเค้าจะมีชื่อเรียกเล่นๆ ว่า 10-Foot UI (บางที่ก็สะกด Ten-Foot UI) ซึ่งก็มีความหมายตามชื่อล่ะครับ ว่าเป็น UI สำหรับคนที่นั่งห่างจอไปอีก 10 ฟุต