ตอนที่ 4 เข้าเมืองตาหลิ่วต้องหลิ่วตาตาม

มาถึงช่วงที่สำคัญที่สุดในการออกแบบโปรแกรม เพราะกุญแจในการเข้าถึงผู้ใช้คือการปรับตัวเข้ากับสภาพแวดล้อมที่ผู้ใช้อยู่ เช่น เมื่อโปรแกรมของเราอยู่ในระบบ windows ซึ่งผู้ใช้คุ้นเคยกับการทำงานแบบหน้าต่างเดียวโปรแกรมก็ควรแสดงแบบหน้าต่างเดียว

โปรแกรม Photoshop บน windows

โปรแกรม Adobe Photoshop แสดงแบบหน้าต่างเดียวบน windows แต่เมื่อทำงานบน mac ที่ผู้ใช้คุ้นเคยแบบหน้าหน้าต่าง

โปรแกรม Photoshop บน mac

โปรแกรม Adobe Photoshop ก็จะแสดงเป็นแบบหลายหน้าต่าง

เพราะในสภาพแวดล้อมที่ผู้ใช้คุ้นเคย ผู้ใช้จะนำประสบการณ์ของเค้ามาตีความโปรแกรมของเรา และพยายามทำในสิ่งที่คุ้นเคยเสมอ ยกตัวอย่างโปรแกรม Adobe Photoshop บนระบบ Windows ผมจะคุยคุยที่จะย่อขนาดจอทีเดียวแล้วทุกอย่างหายไปหมด ถ้าโปรแกรมแสดงเป็นหน้าต่างๆ และไม่สามารถปิดได้ในทีเดียว ผมจะรู้สึกไม่ดีแน่ๆ ตรงข้ามกันถ้าทำงานบน OS X พฤติกรรมปกติคือผมจะเปิดโปรแกรม Finder ไว้อีกตัวเพื่อใช้ดึงรูปที่ต้องการมาเปิดใน Photoshop และคงรู้สึกไม่ดีถ้ามีฉากมาบังไว้

เข้าเมืองตาหลิวก็ต้องหลิ่วตาตามครับ มันจะดีหรือไม่ดีอย่างน้อยคนรอบข้างก็เข้าใจเราได้ง่ายขึ้น หลังจากนั้นถ้าผู้ใช้เห็นว่าแบบไหนง่ายกว่า ก็ให้แก้ property เอา

Menu2

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

menu bar

mac menu

ผู้ใช้ mac คุ้นเคยกับการที่ menu ของโปรแกรมอยู่ด้านบนของจอภาพ

windows menu

ผู้ใช้ windows คุ้นเคยกับการที่ menu อยู่ติดกับโปรแกรม ใต้ title bar

ใช้วิธีแสดงหลายๆหน้าต่างซ้อนๆ กัน

เหมือนในตัวอย่าง Adobe Photoshop ถ้าเป็น mac จะเน้นให้ทุกอย่างเป็นหน้าต่างย่อยๆ ถ้ากดย่อก็จะย่อเฉพาะหน้าต่างนั้นๆ และขณะที่โปรแกรมไม่ Active จะแสดงเฉพาะหน้าต่างหลักเท่านั้นพวก tools bar จะหายไป ในส่วนของ windows จะให้หนึ่งโปรแกรมเป็นหนึ่งหน้าต่างถ้าย่อก็จะย่อหมด

การใช้ Dock หรือ Title bar

ผู้ใช้บน mac จะสังเกตุ message ที่เกิดขึ้นบน dock เช่นการกระโดษ หรือการที่มีตัวเลขบน icon โปรแกรมที่ดีจะสื่อสารกับผู้ใช้ผ่านทาง Dock หรือ Title bar ในแบบที่ผู้ใช้บน platform นั้นคุ้นเคย

Dock

ระบบ mac ออกแบบให้ไม่ต้องปิดระบบ (shutdown) ในขณะที่ Windows ออกแบบให้ปิดทุกครั้งที่เลิกใช้งาน

ดังนั้นถ้าคุณพัฒนาโปรแกรมบน mac

ถ้าคุณพัฒนาโปรแกรมบน windows ก็พยายามอย่าให้ผู้ใช้ต้อง reboot แต่ถ้าจำเป็นผู้ใช้ก็ให้อภัยได้เพราะทำอยู่เป็นประจำ

ระบบสามารถเปลี่ยนแปลง/เชื่อมต่อได้อยู่ตลอดเวลา

ส่วนนี้เป็น concept ที่ไม่ว่าคุณพัฒนาโปรแกรมบน mac หรือ windows ก็ควรพยายามทำให้ได้แต่พึงระลึกว่าถ้าคุณพัฒนาโปรแกรมในปัจจุบัน พฤติกรรมของผู้ใช้จะถอดๆ เสียบๆ อุปกรณ์อยู่ตลอดเวลา ถ้าโปรแกรมของคุณต้องเชื่อมต่อกับระบบเหล่างนี้ก็ควรเขียนโปรแกรมให้รองรับไว้ด้วย

อุปกรณ์สำคัญๆ ก็เช่น

รองรับระบบผู้ใช้หลายคน

เดี๋ยวนี้ OS เป็นระบบผู้ใช้หลายคนกันหมดแล้ว แถมยังสามารถเปลี่ยนผู้ใช้ได้ on the fly อีกต่างหากดังนั้นเราจึงควร

OSX = /Users/apirak

Windows = C:\Documennt&Setting\apirak

Linux = /Home/apirak

ใช้ Documents folder

interface

ทำให้ความคุ้นเคยเดิมๆ ของผู้ใช้ยังคงทำได้

ให้โปรแกรมของเราสามารถทำได้เหมือนโปรแกรมอื่นๆ บน platform นั้นๆ เช่น Drag and Drop ผู้ใช้สามารถเปิด Address book แล้วลากชื่อผู้ใช้มาใส่ในโปรแกรมเราได้, ใช้ panel ที่ผู้ใช้คุ้นเคย เช่นตัวเลือก font หรือตัวเลือกสี ยกเว้นว่าโปรแกรมของเราสามารถทำได้ดีกว่า

เทคนิค.. พยายามใช้ของที่ platform นั้นๆ มีมาให้อยู่แล้วเพื่อประหยัดเวลาในการพัฒนาและทำให้ผู้ใช้คุ้นเคยกับโปรแกรมของเราได้ง่ายขึ้นด้วย

สิ่งที่เราควรออกแบบคือตัว core value ของโปรแกรม ไม่ต้องเสียเวลาออกแบบ color panel ใหม่ถ้ามันไม่ใช่ core value ของเรา

Accessibility and Spoken Interface

OS X และ Windows ต่างเตรียมระบบที่ทำให้โปรแกรมของเราสามารถรองรับผู้ใช้ได้ตามข้อจำกัดของเค้า โดยนักพัฒนาเพียงแค่ใส่ใจในรายละเอียดของโปรแกรม เช่นกำหนดชื่อให้กับรูปภาพและช่องกรอกข้อมูล เพื่อให้ OS อ่านตัวหนังสือดังกล่าวกับให้ผู้ใช้ที่มีปัญหาทางสายตา เป็นต้น ระบบที่มีมาให้ไม่ต้องการ การติดตั้งเพิ่มสามารถใช้งานได้เลย

interface

นักพัฒนาโปรแกรมสามารถทำให้โปรแกรมรองรับได้หลายภาษาโดยอาศัย framework ที่มีอยู่แล้วใน International Technology ทำให้นักพัฒนาไม่ต้องเขียนโปรแกรมเพื่อวาดตัวอักษรเอง สามารถใช้งาน Unicode ได้ทันที และสามารถใช้กับหลายๆภาษาได้โดยไม่ต้องแก้โคต

interface

นักพัฒนาควรใช้พลังของ Spotlight ให้เต็มที่โดยการใส่ Metadata ให้กับเอกสาร หรือสร้าง plugin ให้ Spotlight เพื่อให้มันสามารถค้นหาเอกสารของโปรแกรมให้กับผู้ใช้ได้ ซึ่งทาง Apple ได้จัดเตรียมเครื่องมือในการทำให้แล้ว (ใน Vista ไม่รู้ว่ามี feature นี้มาด้วยหรือเปล่า ถ้าทำให้ compatible กับ google desktop แทนละกัน)