เมื่อวันอังคารผมมีโอกาสได้ไปงาน Google Developer Day 2011 ที่จัดที่โยโกฮามามาครับ
งานนี้จัดแสดงเทคโนโลยีของกูเกิลมากมายอาทิ Android, HTML5, Chrome, App Engine, Google+ โดยมีพนักงานและผู้ที่เกี่ยวข้องมากมายมาบรรยายให้ฟังด้วยครับ
งานมีตารางดังต่อไปนี้ครับ

สีเหลืองคือส่วนที่ผมได้ไปนั่งฟังมาด้วยครับ
เนื้อหาในงานมีอะไรบ้างเชิญอ่านต่อจากนี้เลยครับ
Google Dev Day 2011 - Tokyo
Keynote
Takuya Oikawa - Senior Engineering Manager
พูดถึงประวัติของ GDD
GTUG (Google Technology User Groups)
วีดิโอแนะนำ Google Developers web
developers.google.com
พูดถึง 3.11
Openness google ทำอะไรในนี้บ้าง
ได้อะไรจากในเหตุการณ์ครั้งนั้นบ้าง
Brad Abrams - Head of Google+ Playform Team
Tim Bray - Developer Advocate
Kenichi Kanbara - iplatform.org Japanese Develop
Tony Chan - Developer Advocate
Eiji Kitamura - Developer Advocate
Takashi Matsuo - Developer Advocate
Daniel ‘Wolff’ Dobson - Developer Programs Engineer
Ken Tokusei - Product Management Director
พูดโดยรวมเกี่ยวกับเทคโนโลยีต่างๆของกูเกิลในขณะนี้
ตั้งแต่ Android, HTML5, Chrome, App Engine, Google+
Android มีพรีวิว Ice Cream Sandwich
โดยเฉพาะ API เกี่ยวกับ People, Calendar และ Intent Filter ใหม่ที่ให้นักพัฒนาเขียนขอ Intent ได้ง่ายขึ้นด้วยโค้ดน้อยลง
Beam!!
HTML5 และ Chrome
พูดถึงเทคโนโลยีเช่น Chrome Developer Tools, เทคโนโลยีของ HTML5 เช่น WebM Video Codec, Web Audio API
ตามมาด้วย App Engine ซึ่งช่วยให้นักพัฒนาเขียนโค้ดได้ง่ายขึ้น ไม่ต้องมาพะวงถึง scalability ฯลฯ ถ้าต้องจัดการเองทุกอย่าง
ที่น่าสนใจมี Google Cloud Storage, Google Prediction API, Google Cloud SQL
จบด้วย Google+
พูดถึงจำนวนคนที่เพิ่มขึ้นอย่างรวดเร็วหลังจากเปิดให้ผู้คนทั่วไปสมัครได้โดยไม่ต้องรออินไวท์
พูดถึง API ต่างๆและตัวอย่าง Apps และ Hangout App
บ่าย
Session 1 : แนะนำ Android ใหม่ ICS
Tim Bray - Developer Advocate
รวมโอเอสของมือถือกับแทบเล็ตเข้าด้วยกัน
ของที่ใช้ใน Honeycomb ได้ก็ใช้ใน ICS ต่อได้
เพิ่มความสามารถและ API ใหม่ๆเช่น
People, Calendar, Sharing (Intents), Beam (NFC), Face Detection, Text-to-Speech,
Improved Notification, Launcher Widgets, Social APIs
หัวข้อที่น่าสนใจ
Sharing
- ทำให้ Intent Filtering ง่ายขึ้น ลดจำนวนโค้ดที่ต้องเขียนลง
- Beam ใช้ NFC เพื่อส่งข้อมูลให้กับอุปกรณ์ ICS ที่อยู่ใกล้ๆกันได้
- Face Detection มี API เปิดให้ใช้ได้ พร้อมทั้งมีความสามารถปลดล็อกเครื่องด้วยใบหน้าได้ด้วย
- Text-to-Speech เดิมทีใช้ API จากบุคคลที่สาม แต่ตอนนี้มีเปิด API ในตัว OS เลย
- Notification เพิ่มความสามารถลบ Notification ทีละอันได้
ปรับปรุงหน้าตา
- เพิ่ม Widgets
- มี Social API ที่ให้นักพัฒนาเรียกจัดการข้อมูล Social Network ได้ผ่าน API เลย
Session 2 : Excellence in the Android User Experience
UI สำหรับ ICS
Ryosuke Matsuuchi - Developer Advocate
เป้าหมาย 5 ประการในการออกแบบ
1 เร็ว
2 ใช้งานได้
ถ้าแอพของคุณต้องมีคู่มือ แปลว่ามีอะไรบางอย่างผิดพลาดแล้ว
3 สวยงาม
ความประทับใจแรกเป็นสิ่งสำคัญ
ควรทำงานกับนักออกแบบมืออาชีพ
4 สมเป็นแอนดรอด์
ไม่ควรย้าย UI มาจากแพลตฟอร์มอื่นดื้อๆ
อย่าใช้ปุ่ม Back ในความหมายอื่นๆเพราะผู้ใช้จะงง
อย่าสร้างวัตถุมาตรฐานเอง
5 ฟังผู้ใช้
มีผู้ใช้ได้แสดงความคิดเห็นได้
ใช้ Google Analytics for Android
Android 4.0 (ICS)
เป็นแพลตฟอร์มที่รวมอุปกรณ์ทั้งหลายตั้งแต่โทรศัพท์มือถือ แทบเล็ต และอื่นๆ
สนับสนุนทุกความละเอียดหน้าจอ
ความสามารถจาก Android 3
- System Bar (Navigation Bar)
- Recent Apps
- Notification ปรับปรุงใหม่
- Widget ปรับขนาดได้
- Action Bar
- Fragment
- Drag and Drop
- Copy and Paste
- เนื่องจาก ICS สนับสนุนอุปกรณ์หลายประเภท จึงมีธีมที่เหมาะกับอุปกรณ์ประเภทนั้นๆ
และนักพัฒนาสามารถเลือกใช้ได้โดยเรียก default device theme
- ปรับปรุง UI ให้ดูเรียบง่ายขึ้น เอากรอบต่างๆออกไปเพิ่มพื้นที่ใช้งาน
- มี xhdpi สำหรับ 320 dpi เช่น Galaxy Nexus
ขนาดไอค่อนเป็น 96x96 dpi
- บางอุปกรณ์ไม่มีปุ่ม Menu ซึ่งเป็นมาตรฐานถึง 2.x แต่จะมี ActionBar มาแทน
UI Patterns
1 Action Bar
มีสามส่วนคือ App Icon, View Details, Action Buttons
App Icon มีหน้าที่คือ “ขึ้น” ไปยัง View ที่มีโครงสร้างเหนือกว่า
(สังเกตดีๆว่าต่างจากปุ่ม Back ที่อยู่ใน Navigation Bar และพาไปยัง View ก่อนหน้า)
View Detail ให้ข้อมูลเกี่ยวกับ View นั้น มีปุ่มที่สามารถออกมาเป็น menu ได้
Action Buttons เป็นส่วนที่วางปุ่มที่ทำให้เกิด Action สำคัญๆของ View นั้น
Action Bar สามารถเปลี่ยนรูปร่างหรือสีได้ตามอินพุตของผู้ใช้
และเมื่อขนาดหน้าจอเปลี่ยนไป เช่นเมื่อใช้ในมือถือแทนแทบเล็ตหรือแนวนอน/แนวตั้ง
ปุ่มต่างๆใน Action Bar จะสามารถกำหนดให้เรียงซ้อนเป็นชั้นที่สองด้านบนหรือย้ายไปอยู่ด้านล่างก็ได้
ข้อมูลเพิ่มเติมอ่านใน Customizing Action Bar blog
สำหรับ ADK ต่ำกว่า ICS ให้ใช้ ActionBarCompat
2 Multi-Pane Layouts
เนื่องจาก ICS ใช้ได้ทั้งบนมือถือและแทบเล็ต ดังนั้นนักพัฒนาจึงต้องเขียนโค้ดให้รองรับทั้งสองแบบ
ในบางแอพสามารถใช้รูปแบบ Multi-pane ได้ในแทบเล็ต แต่ถ้าให้โปรแกรมใช้ได้ในมือถือด้วยจะต้องเขียนโค้ดใหม่
ICS จึงมี Fragment ซึ่งเป็นคลาสใหม่ที่มีเพื่อใช้เพื่อให้เขียนโค้ดซ้ำน้อยที่สุด
การออกแบบใน ICS จึงควรให้ Activity เป็นแค่ชั้นบางๆที่มี Fragment(s) อยู่ข้างใน
ข้อมูลเพิ่มเติมอ่านใน Framents blog: goo.gl/T5Ln7
3 App Navigation
มี Notification ปรับปรุงใหม่
สั่งลบทีละอันได้ สามารถมีแอคชั่นไปยังแต่ละแอพโดยตรงได้
มี widget ในหน้าหลักปรับปรุงใหม่
ที่ผ่านมา Android มีแค่ปุ่ม Back ซึ่งพาผู้ใช้กลับไปยัง View ก่อนหน้า
แต่ส่วนมากผู้ใช้คำนึงถึงการใช้งานในเชิงโครงสร้างมากกว่า
เลยให้ App Icon พากลับไปยัง View ที่มีโครงสร้างอยู่เหนือกว่า View ปัจจุบัน
Do’s and Don’ts
DO ตั้งเป้าพัฒนาเพื่อ APK เดียว
DO use the compatibility library
DO ถ้าจะไม่ใช้ธีม Holo ของตัวเครื่องเอง จงออกแบบใหม่ทั้งหมด
DO สร้างแอพที่รองรับทั้งแนวตั้งและแนวนอน
DO ใช้ dp/sp อย่าใช้ px
DO ดึงขนาดหน้าจอออกมาทั้งใช้มือถือและแทบเล็ต (extract dimensions for phones and tablets)
DO ใช้ธีมหรือ style เพื่อลดความซ้ำซ้อน
DO ผสานรูปแบบของโลโก้เข้ากับรูปแบบหน้าตาของ OS
DO create 9-patch bitmaps
ข้อมูลเพิ่มเติม http://code.google.com/p/android-ui-utils/
DON’T คิดว่า API 11 ขึ้นไปเป็นแทบเล็ต เพราะ ICS มี API 14
DON’T คิดว่า xlarge เป็นแทบเล็ต เพราะมีแทบเล็ตขนาด 7” และเป็น large
DON’T อย่าใช้ขนาดตัวอักษรขนาดเล็กในหน้าจอขนาดใหญ่
http://code.google.com/p/iosched