ผมคิดว่าผมยังไม่เคยเจอบทความไหนที่เขียนเกี่ยวกับเรื่องนี้แบบจริงจังนะ ก็เลยขอนำมารวมไว้ที่นี่เลย
เป็นอันทราบกันว่าใน Snow Leopard มีการปรับปรุงหลายๆ อย่างกับ Dock และวิธีการจัดหน้าจอที่เป็นระเบียบมากขึ้น (แต่ผมกลับชอบแบบเดิมแฮะ มันดูหลอนๆ ดี) และการนำ Dock มาใช้กับการจัดเรียงหน้าต่าง
คราวนี้เรามาลองทบทวนกันว่าเราสามารถเรียกใช้งานการจัดเรียงหน้่าต่างได้อย่างไรบ้าง
- กดปุ่มบนคีย์บอร์ด: อันนี้ก็แล้วแต่ว่าตั้งให้ใช้ปุ่มไหน โดยปกติก็จะใช้ปุ่ม F9, F10, F11 หรือคีย์บอร์ดรุ่นใหม่ก็จะเป็นไอคอน Exposé บริเวณปุ่ม F3 (ใช้ร่วมกับปุ่ม Control และ Command)
- เตะมุมจอ: ใน Mac OS X เราสามารถตั้งให้บริเวณมุมหน้าจอเราเลื่อนเมาส์ผ่านสามารถเพิ่มคำสั่งลงไปได้ ซึ่งคำสั่งที่เพิ่มลงไปก็คือหน้าที่ของ Exposé นั่นเอง (ปกติผมไม่ตั้งนะ เพราะมักจะต่อเครื่องกับจอภายนอก)
- กดไอคอนโปรแกรมที่ต้องการค้างบน Dock: เพียงเรากดรูปไอคอนโปรแกรมที่เราเปิดทำงานอยู่บน Mac OS X Snow Leopard หน้าต่างทุกหน้าต่างของโปรแกรมนั้น (ใน Space นั้น) ก็จะถูกเรียงเป็น Grid ให้เลือก
แต่ยังมีอีกวิธีหนึ่งที่สามารถเรียกใช้งานการจัดเรียงหน้าต่างได้ ซึ่งผมเพิ่งค้นพบใน Snow Leopard นั่นคือเรียกผ่านการ Switch Applications โดยให้กดปุ่ม Command+Tab หรือจะลาก Trackpad ด้วยสี่นิ้วก็ได้ แล้วใช้ปุ่มคีย์บอร์ดเลื่อนซ้ายขวาไปยัง Application ที่สนใจหรือจะลากตัวชี้ไปยังไอคอนของ Application ที่ต้องการก็ได้ แล้วจึงกดปุ่ม ขึ้นหรือลง ก็จะแสดงเฉพาะหน้าต่างทุกหน้าต่างของโปรแกรมนั้น (ใน Space นั้น) ก็จะถูกเรียงเป็น Grid ให้เลือก เช่นกัน
ส่วนจะเลือกวิธีไหนก็แล้วแต่สะดวกครับ ถนัดใช้ตัวชี้หรือถนัดใช้แป้นพิมพ์ มีวิธีให้เลือกใช้อย่างเท่าเทียมกัน
หมายเหตุ: ขอไม่ใช้คำว่า Exposé เพราะเข้าใจว่า Exposé มันรวมถึงความสามารถอื่นๆ มากกว่านี้อีกตามที่ระบุไว้ในส่วนช่วยเหลือของ Apple เอง
อยากได้ตั้งแต่วันประกาศตัวละครับ กับเมาส์ใหม่ของ Apple ที่ตั้งชื่อว่า Magic Mouse (ไม่ใช่ Mighty ที่มีปัญหาเรื่องชื่อ อีกต่อไปแล้ว) พอดีตอนนั้น Mighty Mouse ตัวที่ใช้อยู่ ซึ่งตัวเก่ามาก มีปัญหา scroll-down มากมาย (ตัวใหม่ที่ยังดีๆ อยู่ หายไปกับเครื่องที่โดนทุบรถขโมยไป) แทบจะงัดทิ้งหรือไม่ก็ขว้างทิ้งอยู่ทุกวัน ก็เลยบอกพนักงาน iStudio ที่สนิทมากคนหนึ่ง คือ คุณแอน จาก SPV ให้เอามาให้ "ทันทีที่ออก" ซึ่งเมื่อคืนตอนสองทุ่ม คุณแอนก็เอามาให้ ไม่คิดค่าขนส่ง ขอบคุณมากนะครับ
รีวิวนี้ จะไม่มีการโชว์รูป unpacking นะครับ อันนั้นคงหาอ่าน หาดูได้เยอะแล้ว ผมคิดว่าคงจะเหมาะกว่า ถ้าผม ในฐานะหนึ่งใน dualGeek จะเล่าความรู้สึก โดยเน้นด้าน interaction design ว่าเป็นอย่างไร ว่าแล้ว ไปอ่านกันเลยดีกว่าครับ
ว่าจะเขียน review ตั้งแต่สอนเสร็จล่ะครับ ว่าเป็นยังไงมั่ง ก็ขอสรุปแยกเป็นเรื่องๆ ละกันนะครับ
คนที่มาอบรม
เรื่องคนที่มาอบรมนี่ บอกตามตรงว่าเป็นปัญหากับผมและทีมงานค่อนข้างมาก เพราะว่า background หลากหลายเหลือเกิน ส่วนมากอาจจะมีประสบการณ์เขียน Java มาก่อนบ้าง แต่นอกนั้นถึงจะมีประสบการณ์เขียนโปรแกรมมาก่อน ก็เป็นพวก Web developer สาย PHP ซึ่งจะไม่ค่อยมีประสบการณ์ด้านการออกแบบ OOP เท่าไหร่นัก
ทำให้ผมค่อนข้างจะมั่นใจว่า การปูพื้นฐาน Object-Oriented ใหม่หมด โดยเฉพาะอย่างยิ่ง patterns ที่ Cocoa Framework ใช้งาน ไม่ว่าจะเป็น Property, Getter/Setter, Model-View-Controller, Target/Action, Outlet เป็นสิ่งที่ถูกต้องที่สุด เพราะว่าถึงจะเคยเขียน Java มาก่อน ก็ไม่ได้แปลว่าเราจะเข้าใจเรื่องพวกนี้ตรงกัน หรือว่าไปในทางที่เป็นประโยชน์ต่อการเขียนโปรแกรมใน Cocoa Framework
Objective-C
ผมเห็นว่า Objective-C มีปัญหากับหลายคนน้อยกว่าที่ผมคิด โดยเฉพาะอย่างยิ่งพวกที่เป็นภาษา Java มาก่อน เพราะว่ามันคล้ายกันมากๆ โดยเฉพาะอย่างยิ่งเมื่อมันมี Garbage Collector (ซึ่งใน Objective-C 2.0 มี แต่ยังไม่มีใน iPhone OS)
วันที่ 9-11 ตุลาคม 2552 นี้ Software Park ภูเก็ต จะมีการจัดงานอบรม iPhone Developer Camp โดยคนที่สอนคือ ผมเอง เลยขอเอา outline มาลงไว้ที่นะครับ ว่าจะมีอะไรบ้าง
วันที่ 9
- เช้า
- Warm-Up
- Introduction to the course
- Hello Cocoa (Mac Application)
- Hello iPhone (iPhone Application)
- Xcode tools & environment
- Warm-Up
- บ่าย
- "Just Enough" fundamentals and foundations
- Object-Oriented Programming in Objective-C
- Cocoa Basic and Cocoa Design Patterns
- Anatomy of iPhone Applications
- Day 1 Assignment: Window-based Application
- "Just Enough" fundamentals and foundations
วันที่ 10
- เช้า
- Day 2 Warm-Up: More on Objective-C
- Features and Glossary
- Memory Management (ไม่มี Garbage Collector บน iPhone!)
- iPhone Application Basic Framework: Overall architecture and UIKit
- Day 2 Warm-Up: More on Objective-C
- บ่าย
- Day 2 Assignment: Navigation-based Application and More on UIKit
วันที่ 11
- เช้า
- More in UIKit and iPhone View
- More Frameworks = More Fun & Functions!
- บ่าย
- Day 3 Assignment: Tab-bar Application and Utility Application
- Wrap-up: What to learn more?
3 วัน เป็นไปไม่ได้ล่ะครับ ที่จะครอบคลุม iPhone Development ทั้งหมด จริงๆ มีทั้งเทอมก็ยังไม่พอเลยครับ ก็เลยวางไว้คร่าวๆ ได้แค่นี้แหละ แต่ว่าจะทำได้จริงแค่ไหน ก็ขึ้นกับหลายปัจจัยนะครับ โดยเฉพาะผู้เข้าเรียน ว่าจะทันแค่ไหน บางอย่าง ถ้าไม่เคยเขียนโปรแกรมบน Mac มาเลย อาจจะลำบากนิดหน่อย
แต่ว่าเมื่อ 3 ปีก่อน ผมเคยสอน Cocoa Bootcamp มา 2 รุ่น คือ Basic และ Advanced ซึ่งก็สอนได้ตามที่คิดไว้อ่ะนะครับ แต่ว่าท้ายๆ อาจจะเร็วไปบ้าง ครั้งนี้ก็คงจะคล้ายๆ กัน คือ ผมคงไม่สามารถ cover หลายอย่างที่หลายคนคงอยากเห็น เช่น Core Data, Core Animation, OpenGL ES หรือว่าอย่างอื่นได้หมดแน่ๆ แต่คิดว่าคงจะเป็นพื้นฐานที่มากพอ
อีกอย่าง Course นี้จะเน้นไปที่พื้นฐานของการพัฒนาโปรแกรมบน iPhone พอสมควรนะครับ ตั้งแต่ Objective-C, Cocoa, Cocoa Design Pattern อะไรพวกนี้ มากกว่าที่จะทำ Application อย่างเดียว ผมเชื่อว่าพื้นฐานเหล่านี้จะช่วยให้การพัฒนาต่อยอดด้านการเขียนโปรแกรมบน iPhone ทำได้จริงครับ
Apple ประกาศตอนเปิดตัว Mac OS X Snow Leopard ไว้ว่าระบบปฏิบัติการตัวนี้จะเป็นระบบปฏิบัติการแบบ 64 บิตแท้ตัวแรกของ Apple แต่ก็มีคำถามมากมายว่าหากโปรแกรมที่เรารันเป็น 64 บิต โปรแกรมจะรันเร็วขึ้นหรือไม่ แล้วทำไม Apple ถึงไม่ยอมเปิดใช้ Kernel แบบ 64 บิตบนเครื่อง Mac ที่ไม่ใช่ Server ผมคิดว่าบทความสั้นๆนี้จะช่วยไขปัญหาและข้อสงสัยต่างๆเกี่ยวกับระบบ 64 บิตบน Mac OS X Snow Leopard ได้ไม่มากก็น้อยครับ
เตรียมพบกับงานเปิดตัวสุดยิ่งใหญ่ของร้าน iStudio by Copperwired ภายใต้ชื่อว่า Experience The Difference, "More to Play@Digital Gateway" เปิดบริการแห่งแรกก่อนใคร ที่ชั้น 1 ใน Digital Gateway ติดรถไฟฟ้าสยาม กลางสยามสแควร์ ในวันที่ 30 กรกฎาคม 2552 นี้ เวลา 18.00 น.
Cross post จากเว็บตัวเอง
สมัยก่อน ตอนที่มีการ hack ให้ iPod touch ทำอะไรได้พอๆ กับที่ iPhone ทำได้ เรารับทราบว่าเราต้องเข้าไปแก้
com.apple.springboard.plist รวมถึงอาจจะต้องเข้าไปแก้ส่วนของ capabilities ใน CoreServices ของ SpringBoard
เรามาดูกันว่ามีคีย์ไหนน่าสนใจบ้าง
accessibilityคือฟีเจอร์ Accessibility ที่มีอยู่ 5 อย่างคือ การซูมหน้าจอ, การทำให้มี Voice Over, การสลับหน้าจอขาวดำ, เสียงแบบโมโน, และอ่านข้อความอัตโนมัติgas-gauge-batteryคือฟีเจอร์แสดงเปอร์เซ็นต์แบตเตอรี่ที่เหลืออยู่ ซึ่งถ้าใส่เพิ่มเข้าไปใน Settings > General > Usage จะมีแถบให้เลื่อนเปิดปิดปรากฏขึ้นมาด้วย ถ้าไม่ใส่ไป ทำยังไงๆ (แก้ springboard) ก็ไม่มีทางแสดงผลขึ้นมา (ดูมันกั้ก!)mmsคือฟีเจอร์ MMS อันนี้ฝากคุณ kanggg ทดลองแก้ให้แต่เขาบอกว่าใช้ไม่ได้ ก็เลยไม่ขอออกความเห็นแล้วกัน ใครอยากลองแก้ก็ลองแก้ดูครับvideo-cameraคือฟีเจอร์กล้องวีดีโอ เท่าที่ลองแก้ดูใน Camera มันก็มีส่วนของการบันทึกวีดีโอเพิ่มเข้ามา แต่กลับใช้การไม่ได้nike-ipodคือฟีเจอร์การใช้อุปกรณ์ Nike กับ iPhone 3GS ซึ่งถ้าแก้ตรงส่วนนี้ถ้าอยากให้ใช้งานได้ต้องไปเอา Nike.app และ Framework ที่เกี่ยวข้องจาก iPod touch 2G มาติดตั้งเพิ่มถึงจะใช้งานได้ (ไม่ได้ทดลองเอง)
เอาเท่าที่นึกออกก็ประมาณนี้ ขอให้สนุกกับการแก้ไขตามสิทธิ์อันถึงมีพึงได้ของท่านครับ
ปล. ในเครื่อง 3G กับเครื่องรุ่นแรกมีส่วนที่ต่างคือ mms กับ telephony (ไม่ได้เขียนอธิบายในนี้)
อัพเดต
หลังจากที่มีผู้ปล่อยคีย์ของ Firmware รุ่น 3GS ออกมาแล้ว ทำให้พบความสามารถเพิ่มเติมดังนี้
auto-focus-cameraคือฟีเจอร์กล้องจิ้มหาโฟกัส (น่าลองไหม?)voice-controlคือฟีเจอร์สั่งงานผ่านเสียง (ต้องไปหา Framework ที่เกี่ยวข้องมาติดตั้งเพิ่มแน่ๆ)
เห็นหลายเว็บลงข่าวนี้ไปแล้ว คิดว่าน่าจะเอามาสรุปลงที่นี่บ้าง หน่วยเงินที่จะกล่าวถึงใน entry นี้เป็น US Dollar (เพื่อความเข้าใจที่ตรงกัน)
สิ่งที่เปลี่ยนไปในเครื่องที่ประกาศในงานนี้ คือ
เคยไหมที่คุณเปิดโปรแกรมหลายหน้าต่างยุ่งเหยิงเต็มไปหมด จะจัดการกับหน้าต่างเยอะแยะเช่นนั้นอย่างไรดี?
ใน Tiger เรามี Exposé เรามีตัวเลือกอื่นๆ ในการจัดระเบียบหน้าต่างอันแสนวุ่นวายนี้ เช่น Virtual Desktop ซึ่งเป็นสิ่งที่คล้ายๆ กับการ Multiple Desktop ในลินุกซ์หลายๆ ยี่ห้อ
ใน Leopard เรามี Spaces ซึ่งมาเติมเต็มการทำงานของ Multiple Desktop ด้วยหน้าตาที่ดูเข้าใจง่าย (ผมคิดว่ามันเข้าใจง่ายนะ เพราะผมลากหน้าต่างโปรแกรมข้ามไปมาได้) ซึ่งต่างจากระบบอื่นที่ไม่มีหน้าจอเอื้ออำนวยความสะดวกขนาดนั้น (เห็นหมุนๆ ของลินุกซ์บางยี่ห้อ แต่ไม่รู้ว่ามันจะทำอะไรได้นอกจากหมุนไปหมุนมา)
แต่ปัญหาของ Spaces มันก็มี คือมันขาดสิ่งที่ระบบอื่นเขามีกัน นั่นคือการสั่งเปลี่ยนที่อยู่ของหน้าต่างโดยไม่ต้องใช้หน้าจอของ Spaces ปัจจุบัน เวลาเราจะย้ายหน้าต่างข้าม Spaces เราต้องกด F8 แล้วก็ลากหน้าต่างข้ามไป ซึ่งในระบบอื่นๆ เราสามารถกดที่แถบหน้าต่างคลิ้กขวาแล้วสั่งย้ายแต่ตรงนั้นเลย (เร็วกว่าด้วย)
จริงๆ จะบอกว่า Spaces ทำแบบนี้ไม่ได้เลยก็ไม่ถูก เพราะเราสามารถสั่งให้หน้าต่างโปรแกรมต่างๆ ไปปรากฏที่ Spaces ใดๆ ผ่านทาง System Preferences ได้ แต่ก็ค่อนข้างยุ่งยาก (นับดูว่าเสียไปกี่คลิ้ก)
แล้วยังมีปัญหาอีกอย่างหนึ่งคือ แล้วถ้าอยากให้หน้าต่างบางโปรแกรมแสดงบนแค่ไม่กี่ Spaces จะทำอย่างไร? ปัจจุบันสิ่งที่เป็นอยู่ในตอนนี้มีแค่ 2 ตัวเลือกคือ อยู่หนึ่ง Space หรืออยู่ทุกๆ Spaces ซึ่งระบบอื่นๆ สามารถจัดการได้ยืดหยุ่นกว่านี้
หวังว่าปัญหานี้จะได้รับการแก้ไขในเร็วๆ นี้
Recent comments
9 weeks 1 day ago
9 weeks 4 days ago
10 weeks 2 hours ago
12 weeks 19 hours ago
12 weeks 19 hours ago
16 weeks 1 day ago
16 weeks 2 days ago
16 weeks 2 days ago
16 weeks 2 days ago
17 weeks 1 day ago