Android

จากงาน 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 ของตัวเองขึ้นมาได้ระดับหนึ่ง

  • 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 ที่ทีมงานกูเกิลแนะนำสำหรับนักพัฒนาโปรแกรมมีดังนี้

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

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

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

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

เพราะฉะนั้นทุกโปรแกรมที่เขียนบททีวีควรจะสนับสนุน 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 ทุกอย่างดูเรียบง่ายดีอยู่แล้ว แต่ก็ยังมีสิ่งที่ต้องเปลี่ยนเมื่อมาอยู่บนทีวี

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

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

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

สุดท้าย หน้าตาของ 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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

Fzo Fri, 20/05/2011 - 02:34

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

ในโลกของ 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 ได้นะ

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

giogio Fri, 20/05/2011 - 12:33

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

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