December 13, 2014

ทบทวนพื้นฐาน Auto Layout

ก่อนหน้านี้ที่ Auto Layout ถูกแนะนำใหม่ๆ เพื่อน iOS developer หลายคนพยายามหลีกเลี่ยงมัน (รวมถึงตัวผมเองด้วย) อาจเพราะมันเข้าใจได้ยากหรือเปล่าไม่รู้ แต่ที่รู้ๆ ก็คือต้องเริ่มต้นศึกษาทำความเข้าใจมันใหม่ แทนที่ระบบ layout เดิมของ iOS SDK รุ่นก่อนๆ

Intro

บันทึกนี้จะแสดงวิธีการใช้งาน Auto Layout แบบ Programmically ซึ่งก็แปลว่าเราจะไม่ใช้ xib หรือ storyborad กับ auto layout เลย

เราจะใช้ Visual Format Language (VFL) ในการกำหนด constraint หรือข้อกำหนดเกี่ยวกับพฤติกรรม รวมถึงการระบุตำแหน่ง และขนาดของ view โดย syntax ที่ใช้นั้นไม่ซับซ้อนเลย เช่น หากเราต้องการกำหนดความกว้างของ element ให้มีขนาด 100 เราก็สามารถเขียนได้ดังนี้



หรือถ้าเราต้องการกำหนดความสูง ก็ทำแบบนี้



ตัวอักษรตัวแรกเอาไว้บอกว่าเราจะกำหนดขนาดให้กับ deimesion ไหน ตัว H ก็คือ horizontal ส่วนตัว V ก็คือ Vertical

และเวลาเรากำหนด constraint เหล่านี้ผ่าน VFL เราสามารถกำหนดผ่าน method addConstraint: และ removeConstraint: ของ UIView ได้

December 12, 2014

iOS App สำหรับช่วยเที่ยวสิงคโปร์

มองหาแอปสำหรับพกติดตัวเพื่อใช้เที่ยวสิงคโปร์ด้วยตัวเองมาหลายแอปเอาไว้ใช้ใน iPad สุดท้ายก็พบ 2 แอปนี้

Singapore Travel Guide and Offline City Map

เอาไว้วางแผนการเดินทาง และใช้นำทาง
โหลดฟรีได้ใน Apple AppStore สาเหตุที่ตัดสินใจเลือกก็คือ

  1. ไม่ต้องต่ออินเทอร์เน็ตก็ใช้งานได้
  2. ปักหมุดจุดที่จะไปได้ เอาไว้วางแผนว่าจะไปที่ไหนบ้าง
  3. ดูภาพรวมได้ว่า แต่ละจุดที่เราต้องการไปเที่ยว อยู่บริเวณไหนในสิงคโปร์บ้าง จะได้วางแผนการเดินทางได้ง่าย
  4. บอกระยะห่างระหว่างจุดปัจจุบันที่เราอยู่กับปลายทาง ว่าอยู่ไกลจากเราเท่าไหร่
  5. ใช้ได้ทั้งบน iPhone และ iPad
  6. บอกตำแหน่งปัจจุบันของเรา และบอกทิศได้ว่าเรากำลังหันหน้าไปทางไหน
  7. ฟรี
ดูแอปอื่นๆ ของ developer รายเดียวกัน ที่นี่ ทั้งหมดเป็นแอปแนวเดียวกัน ต่างกันแค่คนละประเทศ

Singapore MRT & LRT

เอาไว้ดูว่าจากสถานีรถไฟฟ้าหนึ่ง ไปอีกสถานีหนึ่งต้องนั่งรถไฟฟ้าไปยังไง ต่อรถที่สถานีไหน
โหลดฟรีได้ใน Apple AppStore สาเหตุที่ตัดสินใจเลือกก็คือ
  1. ไม่ต้องต่ออินเทอร์เน็ตก็ใช้งานได้
  2. ค้นหาเส้นทางได้ง่ายๆ แค่เลือกต้นทาง และสถานีปลายทาง แอปก็จะแสดงเส้นทางที่เราต้องไปพร้อมกับบอกว่าเปลี่ยนสถานีได้ตรงไหน
  3. บอกได้ว่าสถานีไหนใกล้เราที่สุด
  4. ฟรี

October 31, 2014

Interactive Notification ใน iOS 8

iOS8 มาพร้อมกับฟีเจอร์หลายๆ อย่างที่น่าสนใจ หนึ่งในนั้นก็คือ Notification Actions

ฟีเจอร์นี้ทำให้ผู้ใช้งานสามารถ interact กับ remote หรือ local push notification ได้โดยไม่จำเป็นต้องเปิดแอป ซึ่งแต่เดิมเวลามี notifcation เข้ามาแล้วจะทำอะไร เราจะทำได้แค่อ่านอย่างเดียว

ตัวอย่างง่ายๆ ของการนำไปประยุกต์ใช้ก็เช่น แอปประเภท todo list ที่จะแจ้งเตือนเราว่าถึงเวลาทำ task นี้แล้วนะ พร้อมกับแสดงปุ่มบน notification เลยว่า "ทำแล้ว", "ยังไม่ทำ", "ยกเลิก"

แผนการณ์

ขั้นตอนวิธีการ implement interactive notification มี 4 ขั้นตอนหลัก ดังนี้

  1. กำหนด action button ที่จะใช้แสดงใน notification alert
  2. กำหนด category ให้กับ action button เอาไว้ให้แอปตัดสินใจได้ว่า ถ้ามี notifcation ที่ถูกกำหนด category แบบนี้มา จะใช้ปุ่มชุดไหนมาแสดง
  3. เก็บ category ลงไปใน notification setting ของแอป
  4. เขียนโค้ดส่วนที่จะมา handle กับ action button ที่ผู้ใช้เลือก
วิธีการทดลอง สามารถทำได้โดยการ post notification ที่กำหนด category id ให้ตรงกับ category ที่เราเตรียมไว้ใน notifcation setting

June 19, 2014

แอปสำหรับเที่ยวฮ่องกง

มีโอกาสไปเที่ยวฮ่องกงอีกครั้ง แต่ครั้งนี้ก่อนไปเที่ยวฮ่องกงผมได้หาแอปสำหรับเอามาใช้เป็นไกด์นำเที่ยวด้วย โดยคุณสมบัติที่ต้องการจากแอป หลักๆ มีดังนี้

  1. ดูแผนที่ฮ่องกงแบบออฟไลน์ได้
  2. ปักหมุดสถานที่ท่องเที่ยวที่เราจะไปเที่ยวในแผนที่ได้
  3. บอกตำแหน่งปัจจุบันของเรา พร้อมกับทิศทางที่เรากำลังหันหน้าไปในแผนที่ได้
  4. ค้นหาสถานที่เที่ยวในฮ่องกงแบบออฟไลน์ และปักหมุดสถานที่นั้นๆ ลงไปในแผนที่ได้เลย
  5. แผนที่เป็นภาษาอังกฤษ
  6. ใช้ใน iPad ได้ (ถ้าใช้ใน iPhone กลัวว่าแบตจะไม่พอใช้ครบวัน)
หลังจากที่ผมค้นหาแอปใน App Store ไปหลายตัว ก็เจอ

April 11, 2014

หนังสือของหมอผิง อ่านแล้ว Young


หนังสือชื่ออ่านแล้ว Young ใช้คำโปรยที่หน้าปกว่า "หนังสือสามัญประจำบ้านที่จะทำหมอว่างงานกันค่อนประเทศ" เป็นคู่มือการใช้งานร่างกายอย่างถูกวิธี (อารมณ์คล้ายๆ กับคู่มือการใช้แอร์ ตู้เย็น) โดยผู้เขียนมีความเชื่อว่า
หมอที่ดี ควรขยันแจกจ่ายความรู้ มากกว่าแจกจ่ายยา

ผมมองว่าเป็นทัศนะคติที่ดี และเป็นการป้องกันที่ต้นเหตุ ก็คือการให้ความรู้ให้คนทั่วไปสามารถนำไปใช้ดูแลตัวเองได้โดยการบอกวิธีใช้ร่างกาย และทำกิจกรรมต่างๆ ในชีวิตอย่างถูกวิธี รวมถึงวิธีทนุถนอมร่างกายอย่างถูกต้องอีกด้วย

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

ส่วนสิ่งที่ไม่ชอบในหนังสือเล่มนี้ก็คือใช้คำศัพท์ภาษาอังกฤษ หรือเขียนคำด้วยภาษาอังกฤษเยอะมากไปในหลายๆ จุดที่จริงๆ แล้วไม่จำเป็นต้องเขียนเป็นภาษาอังกฤษก็ได้ ทำให้คุณป้า หรือคนที่อ่านภาษาอังกฤษไม่ออก ไม่สามารถใช้งานหนังสือเล่มนี้ได้เต็มที่เท่าไหร่นัก


Diablo III - Reaper of Souls


เล่นเกม Diablo III ตั้งแต่วันแรกๆ ที่ออกมา และหยุดเล่มเกมนี้ไปแล้วประมาณครึ่งปีที่ผ่านมาจน Blizzard ออกภาคต่อมาอีก 1 ภาคชื่อ Reaper of Souls

ยังไม่ได้ตัดสินใจเล่นภาคต่อนี้ทันที รอดูก่อนว่าเพื่อนๆ ที่เคยเล่นด้วยเมื่อภาคที่แล้ว จะกลับมาเล่นกันต่ออีกไหมในภาคนี้ พบว่าส่วนใหญ่แล้วเพื่อนที่เคยเล่นด้วยกันก็กลับมาเล่นใหม่ ทำให้ต้องลงมือซื้อภาคนี้มาในราคาประมาณ 1,200 บาทจนได้

ส่วนตัวแล้วไม่ได้เป็นแฟนพันธ์แท้เกมนี้เท่าไหร่นัก ก็เล่นไปเรื่อยๆ ตามประสาคนชอบเล่นเกมแนวนี้ และพบว่าภาคใหม่มีสิ่งที่น่าสนใจหลักๆ ดังนี้ (บางอันอาจมีมาก่อนภาคใหม่ แต่ผมไม่รู้เพราะหยุดเล่นไปประมาณครึ่งปีแล้ว)

  1. Act V - เนื้อเรื่องต่อที่เพิ่มเข้ามา
  2. การดรอปของที่ออกมาได้มีคุณภาพมากขึ้นกว่าภาคก่อน
  3. Crusader - ตัวละครใหม่ ที่หลายๆ คนที่กลับมาเล่นใหม่ ลองเล่นตัวนี้กัน ส่วนผมเองไม่เล่นอาชีพนี้ เพราะไม่มีเวลามากขนาดนั้น เล่นอาชีพเดิมต่อไปเรื่อยๆ สนุกดีอยู่แล้ว
  4. Adventure Mode - ตะลุยเก็บให้ครบ 5 ด่านในแต่ละ Act พอจบแล้ววจะได้ของรางวัล เป็น exp และกล่องที่ให้เอามาเปิดลุ้นกันเอาเอง
  5. Blood Shade - เวลาเราตีมอนเตอร์ตายจะได้รางวัลมาเป็นเจ้านี่ เราสามารถเอาสิ่งนี้ไปแลกเป็น ไอเท็มสีทอง และสีส้มได้ แต่ต้องลุ้นเอาเองว่าจะได้เป็นอะไร ส่วนใหญ่ที่ลองเอาไปแลกดูพบว่าได้แต่ของแย่กว่าของที่ใส่อยู่ทั้งนั้น
  6. Curse Chest - กล่องสมบัติแห่งคำสาป เมื่อเราเปิดมันจะมีมอนเตอร์จำนวนมากมารุมทำร้ายเรา แต่ละตัวที่ออกมาไม่ใช่จะเอาชนะได้ง่ายๆ ซะด้วย ถ้าชนะแล้วเราถึงจะดูของที่อยู่ในกล่องได้
  7. Artisan - เป็น NPC ในเมืองคอยช่วยเปลี่ยนความสามารถของ Item สวมใส่ให้เรา
หลายๆ ทีที่เข้าไปเล่นเกมนี้จะแอบเข้าไปดูว่ามีคนเล่นพร้อมๆ กับเราประมาณกี่คน พบว่ามีประมาณ 6,000 - 9,000 คนที่เล่นในเวลาเดียวกัน (เฉพาะ Server America ที่เข้าไปดู)