Near Field Communication หรือ NFC เป็นการสื่อสารระยะใกล้ด้วยเทคโนโลยีสัญญาญไร้สาย ซึ่งทำให้สามารถแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ได้ สำหรับโทรศัพท์มือถือที่มีเทคโนโลยี NFC ติดมาด้วยได้แก่ Nokia, Samsung Galaxy Nexus และ Samsung Galaxy SIII เป็นต้น

เกริ่นนำมาขนาดนี้ มาลองกันเลยดีกว่าครับ เครื่องมือและอุปกรณ์ที่เราสามารถนำมาลองได้ มีดังนี้

  1. NFC Tag
  2. มือถือที่สามารถใช้ NFC ได้
  3. โปรแกรมอ่าน NFC Tag Info
  4. โปรแกรมเขียน NFC TagWriter

สำหรับผม NFC Tag ที่ใกล้ตัวที่สุดคือเจ้านี่ครับ บัตรกระต่าย

มาลองใช้ NFC Tag Info อ่านกันครับ ได้ผลลัพท์แบบนี้

จากที่ทำการทดสอบพบว่า โปรแกรมหา Data Set Storage ไม่เจอแต่ทราบขนาด Storage คือ 4094 byte ซึ่งแปลกดีครับ ถ้าใครมี NFC Tag ก็หามาลองดูได้สำหรับตัวถัดมาคือ NFC TagWriter ไม่รู้ว่าจะทดสอบให้ดูยังไง ถ้าใครมี NFC Tag ก็เอา Tag มาแนบไว้หลังเครื่อง แล้วเลือกข้อมูลที่ต้องการเขียนลง Tag ได้เลย สำหรับบัตรกระต่ายที่ผมทดลองดู พบว่าโปรแกรมแนะนำให้ Format Storage ซะงั้น T_T


มีคนถามคำถามผมว่า เขียน Mobile App บน Android เริ่มยังไง? ตอบไม่ถูกเลยครับ คำตอบที่ง่ายที่สุดและรวดเร็วที่สุดคือ อ่านจากเว็บไซต์ครับ สำหรับเว็บไซต์ที่ผมจะมาแนะนำสำหรับผู้ที่อยากเริ่มต้นเขียน Android App ให้ดูเว็บนี้ก่อนเลยครับ

Android Developer

เว็บนี้จะรวบรวมข้อมูลที่ทุกคนควรรู้เกี่ยวกับ Android ทั้ง Source Code ของ Android การพัฒนาซอฟต์แวร์ รวมไปถึงเครื่องไม้เครื่องมือต่างๆ ที่ต้องใช้ และที่ขาดไม่ได้คือ Tutorial และ SDK Decument ที่ต้องใช้อ้างอิงครับ

Vogella Android Development Tutorial

เว็บนี้จะรวบรวม Tutorial สอนการเขียน Android App ที่แบ่งหมวดหมู่ได้อย่างชัดเจน เข้าใจได้ง่าย

ทุกๆเรื่อง ที่เกี่ยวกับ android โดย มาสเตอร์ อึ่ง

สำหรับเนื้อหาภาษาไทยคงหนีไม่พ้นเว็บไซต์ของมาสเตอร์อึ่ง ซึ่งมีข้อมูล Tutorial ภาคภาษาไทย อ่านเข้าใจง่ายมีตัวอย่างประกอบ และที่สำคัญมาสเตอร์อึ่งเปิดคอร์สสอน Android อยู่แล้วใครสนใจเรียนสามารถสมัครเรียนได้ครับ

สำหรับหนังสือภาษาไทยที่สามารถซื้อหาได้ตามร้านขายหนังสือได้แก่
* Basic Android App Development เขียนโดย อ.จักรชัย โสอินทร์
* Android Developer’s Cook Book : รวมโค้ด Android App เขียนโดย James Steele, Nelson To แปลโดย ไพบูลย์ สวัสดิ์ปัญญาโชติ

ลองไปซื้อหามาอ่านกันได้ครับ :)

Illumination Software Creator เป็นโปรแกรมสำหรับสร้าง prototype application โดยไม่ต้องเขียนโค้ด การทำงานของโปรแกรมใช้การกำหนด properties บล็อกของฟังก์ชั่นต่างๆ ใช้เส้นเชื่อมโยงบล็อกต่างๆ เข้าด้วยกัน ทำให้คุณไม่ต้องเขียนโค้ดเพียงแค่กำหนดค่าให้ถูกต้องเท่านั้น Illumination Software Creator สามารถสร้าง Application สำหรับ Mobile อย่าง Android, iOS, Maemo นอกจากนี้ยังสามารถสร้าง Application อย่าง Python/GTK Desktop และรวมไปถึง Application บนเว็บไซต์อย่าง HTML5 และ Flash ได้อีกด้วย

สำหรับท่านที่สนใจสามารถหาข้อมูลเพิ่มเติมได้ที่เว็บโครงการ Landuke

ค้างเขียนเรื่องนี้มาได้ 2 อาทิตย์ ไม่มีกำลังใจเขียนสักที วันนี้วันดีก็เลยเร่งเขียนเพราะเดี๋ยวจะไม่มีเวลามาเขียน Blog แบบนี้อีก ครั้งนี้จะมาแนะนำเครื่องมือที่ช่วยในการสร้าง Prototype อย่างง่ายๆ เรียกได้ว่าไม่ต้องเขียน HTML กันเลยทีเดียว อ้อ ลืมบอกไปว่าใช้ jQuery Mobile น่ะครับ ถ้าท่านที่ใช้ jQuery Mobile อยู่แล้ว ถ้าไม่เขียน HTML ก็จะหาเครื่องมือแบบ WYSIWYG มาใช้งาน แต่เครื่องมทอที่จะมาแนะนำวันนี้เป็นเครื่องมือ WYSIWYG เช่นกันแต่ทำงานบนเว็บครับ ลาก-วาง กำหนดคณะลักษณะของ widget ต่างๆ ได้เลย เครื่องมือตัวนี้เรียกว่า Codiqa

หากท่านเข้าเว็บ jQuery Mobile ให้เลื่อนลงมากลางๆ หน้าจอ จะพบ Codiqa แบบ mini คือสร้างได้หน้าเดียว preview ได้ เอาเป็นว่ากดๆ เล่นๆ ได้บ้าง ตามที่เขาจะมีมาให้ แต่ถ้าอยากใช้เต็มๆ ให้เข้าไปที่เว็บไซต์ http://codiqa.com สมัครสมาชิกให้เรียบร้อยแล้วเริ่มลงมือทำ App Prototype กันได้เลย สำหรับการ export เพื่อเป็น HTML5 App สำหรับอุปกรณ์ต่างๆ และการบันทึก prpject ต้องจ่ายเงินเพิ่มนะครับ :)

ผมตัดสินใจลงทะเบียนเพื่อเอา Mobile App ขึ้น Android Market เมื่อกลางเดือนกุมภาพันธ์ ซึ่งเวลาเอา App ขึ้น Market เราต้องใช้ Developer Console ครับ ในความคิดของผม Developer Console มันดูรกมาก และมีอะไรหลายอย่างที่เราต้องกรอกข้อมูล ภาพไอคอนโปรแกรม ภาพโฆษณาในหน้า Market ภาพหน้าจอโปรแกรม วิดีโอโปรโมท ฯลฯ ซึ่งดูยุ่งยากในช่วงแรกที่เอา App ขึ้น หลังจากนั้นต้องวางแผนเรื่องพวกนี้ตั้งแต่ออกแบบ App กันเลยทีเดียว แต่สำหรับสถิติในหน้า App แต่ละตัวดูเหมือนไม่ค่อยตั้งใจทำซักเท่าไร แต่ก็พอจะมีข้อมูลให้ได้รู้ว่ามี Device รุ่นไหน ใช้ Android รุ่นอะไร ประเทศอะไร ที่ดาวน์โหลด App ของเราไปบ้าง ซึ่งเป็นข้อมูลที่ดีมากทีเดียว สำหรับสถิติตัวเก่ามันดูแย่มาก (กองรวมกันเป็น Pie Chart ในหน้าเดียว) แต่เมื่อวานนี้ทีม Android Market ปรับปรุงหน้า Developer Console ใหม่ ค่อยดูหน้าตาดีหน่อย

สถิติมีข้อมูลที่ละเอียดพอที่จะสามารถปรับปรุง App ได้ให้เหมาะสมกับลูกค้าของคุณได้เลยครับ

ผมมักจะเขียน HTML5 App แล้วทดสอบบน Tablet ซึ่งมีขนาดหน้าจอใหญ่โต 1280x720px ซึ่งมีพื้นที่เหลือเฟือในการแสดงผล แต่ถ้าหน้าจอเล็กๆ อย่าง 320px, 480px, 640px ล่ะจะทำอย่างไร? ซึ่งแน่นอนว่าการแสดงผล อย่างเช่น ภาพ ขนาดตัวอักษร ฯลฯ จะไม่เหมาะสม ตัวอย่างเช่น

จากภาพจะเห็นว่าเราอ่านการ์ตูน I am Petdo! ได้แค่ครึ่งเดียว ทีนี้ทำยังไงดี วิธีง่ายๆ คือการใช้ความสามารถของ CSS3 ครับ ใน CSS3 จะมีคำสั่งพิเศษชื่อว่า media ซึ่งคำสั่งนี้ใช้เพื่อกำหนดความเหมาะสมของ CSS ในแต่เหตุการณ์ เช่น หน้าจอมีขนาดเล็กบ้าง ใหญ่บ้าง เป็นต้น ทีนี้เราก็มากำหนด CSS ให้ I am Petdo! กันใหม่ เพิ่มคำสั่ง media เข้าไปดังนี้

@media screen and (min-width: 320px) {
img.imagefield {
width:280px;
height:auto;
}
}

@media screen and (min-width: 480px) {
img.imagefield {
width:400px;
height:auto;
}
}

@media screen and (min-width: 800px) {
img.imagefield {
width:563px;
height:auto;
}
}

จากโค้ดข้างต้น หากหน้าจอมีขนาดเล็ก 320px ให้ ภาพที่ใช้ class imagefield มีขนาดความกว้าง 280px ตามลำดับ เท่านี้คุณก็จะได้หน้าจอการแสดงผลที่ดูดีขึ้น ดังนี้

ลองเอาไปประยุกต์ใช้กันดูได้ครับ อ้อและอีกอย่างนึง อย่าลืมกด Like ให้ ThaiOpenSource นะครับ

นักพัฒนา Mobile Web หลายท่านมักจะมีเครื่องไม้เครื่องมืออย่าง Emulator, มือถือ, tablet หลากหลายขนาดเพื่อใช้ทดสอบว่า Mobile Web หรือ HTML5 App ที่พัฒนาขึ้นมานั้นแสดงผลในหน้าจอขนาดต่างๆ เป็นอย่างไร จะต้องแก้ไขหรือปรับปรุงในส่วนใดบ้างเพื่อให้การแสดงผลถูกต้องและลงตัวมากที่สุด ครั้งนี้จะมาแนะนำ Emulator บน Browser เพื่อที่จะช่วยทดสอบ HTML5 App ได้ง่ายมากขึ้น เครื่องมือนี้ชื่อ Ripple แห่งค่ายฮิปโปจิ๋ว (tinyhippos)

ripple จะเปลี่ยน Browser ของคุณให้กลายเป็น Mobile/Tablet Emulator พร้อมฟังก์ชั่นที่เชื่อมต่อกับ JavaScript Framwork ต่างๆ ไม่ว่าจะเป็น PhoneGap, WebWork, WebWork TabletOS, Mobile Web เป็นต้น คุณสามารถทดสอบ App ที่ใช้การเชื่อมต่อ Internet, GPS, Accelerometer ได้ง่ายๆ

สำหรับท่านที่สนใจก็ลองทดสอบดูได้ที่ http://ripple.tinyhippos.com ครับ

ผมพอจะเข้าใจได้เลยว่าการเขียน HTML5 Application เป็นแนวทางอีกแนวทางหนึ่งในการเขียน Application บน Mobile ซึ่งต้องขอบคุณ Apple เพราะกระแสความก้าวล้ำทางด้านเทคโนโลยีของ Webkit ทำให้เกิดแรงผลักดันมาตรฐานที่ควรจะมีให้เกิดขึ้นอย่างรวดเร็ว ทั้ง JavaScript Engine, Local Storage, Local Database และอื่นๆ และอุปกรณ์อย่าง iPhone, iPad ก็รองรับ Mobile (Web) Application ได้อย่างลงตัว โดยการสร้าง Wedget ลงในอุปกรณ์ให้สามารถเรียกใช้ได้เหมือนกับ Application ตัวหนึ่งในเครื่อง จากการพัฒนาดังกล่าวจึงเกิดบริการใหม่ เพื่อช่วยให้นักพัฒนาซอฟต์แวร์และเจ้าของบริการสามารถสร้าง HTML5 App ได้อย่างง่ายๆ เรียกว่า อยากได้อะไร คลิ๊กเอาได้เลย ในครั้งนี้จะมาแนะนำ บริการ SaaS เพื่อช่วยสร้าง HTML5 App กัน 2 ตัวดังนี้

Widget Box

ตัวอย่างการใช้งาน Widget Box Mobile App สร้าง App การ์ตูน IamPetdo จาก RSS Feed

กำหนด Feed URL

กด Save เราก็ได้ HTML5 App มา 1 ตัวใน 3 ขั้นตอน

HTML5 App ที่สร้างขึ้นมาจะอยู่กับ Widget Box หากต้องการติดตั้งลงในอุปกรณ์ต่างๆ เช่น iPhone. iPad, มือถือ Android หรือ Tablet Android ต้องสมัครสมาชิกซึ่งมีค่าใช้จ่ายอยู่นิดหน่อย สำหรับท่านที่สนใจก็ลองไปใช้งานกันดูได้ที่ http://www.widgetbox.com

Tiggzi

Tiggzi (บริการเดิมชื่อ Tiggr) เป็นบริการสำหรับสร้าง Mobile Web และ Mobile App ที่น่าสนใจอีกตัวหนึ่ง ซึ่งตัวระบบให้คุณสามารถวาง Widget เพื่อกำหนดรูปแบบและหน้าตาของ Mobile App ของคุณได้ อีกทั้งยังสนับสนุนการเขียนโค้ดเพื่อควบคุม Widget เหล่านั้นได้อีกด้วย จะคล้ายกับการเขียนโปรแกรมจากเครื่องมือบนระบบปฏิบัติการทั่วไป แต่ตากกันตรงที่เราเขียนและพัฒนาบนเว็บแทน สำหรับ App ที่ได้สามารถใช้งานได้กับ iPhone, Android ได้เลย สำหรับท่านที่สนใจก็ลองทดสอบได้ที่ http://tiggzi.com ครับ

หลังจากที่ได้แนะนำแนวทางการเขียน HTML5 App และใช้เครื่องมือหลายตัวไปบ้างแล้ว ครั้งนี้ผมจะมาแนะนำเครื่องมือท่อน้ำสุดมหัศจรรย์ ชื่อเป็นทางการเรียกว่า Yahoo! Pipes เครื่องมือนี้ช่วยให้คุณตัดต่อ เชื่อมโยงข้อมูล ผสมข้อมูลต่างๆ ที่มาจากหลากหลายเว็บได้ และที่สำคัญสามารถส่งออกผลลัพท์ได้หลากหลายรูปแบบไม่ว่าจะเป็น RSS, JSON, KML และรูปแบบอื่นๆ

การใช้งาน Pipes ง่ายมากเพียงเลือกเครื่องมือให้เหมาะสมแลัวลากเส้นเชื่อมโยงข้อมูลตั้งค่าตามต้องการจากนั้น Pipes ก็จะทำงานให้คุณพร้อมผลลัพท์ที่น่ามหัศจรรย์ จากตัวอย่างผมต้องการเชื่อมโยงข้อมูลจาก 3 เว็บไซต์เข้าด้วยกัน และใช้ keyword คำว่า Ubuntu ในการ filter ข้อมูลพร้อม เรียงลำดับเหตุการณ์ และหยิบเอาเฉพาะ 10 รายการล่าสุดมาใช้ เขียน Flow ได้ดังภาพ

เมื่อเชื่อมโยงข้อมูลต่างๆ เข้าด้วยกันได้เรียบร้อยแล้ว คุณจะได้หน้า Publish ของคุณขึ้นมาพร้อมลิงค์เพื่อ export ข้อมูลต่างๆ ที่สามารถใช้งานต่อได้ เช่น เพิ่ม Widget ลงใน Google, เพิ่ม Widget ลงใน Yahoo!, Export ข้อมูลเป็น RSS, JSON หรือแม้กระทั่งซอร์สโค้ดภาษา PHP :)

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

ผมคลั่งการ์ตูนออนไลน์เรื่องหนึ่งมาก ถ้าคุณมีพฤติกรรมที่ออกจะดูแย่ๆ จนคนรอบข้างรับไม่ได้ คุณจะถูกขนานนามว่าเป็น “Petdo!” ใช่ครับ การ์ตูน I am Petdo! เป็นการ์ตูนสร้างสรรค์มากในยุคนี้ หากใครไม่ได้อ่านเชยมากๆ ครับ ในครั้งนี้ผมจะมายกตัวอย่างการเขียน HTML5 + jQuery + jQuery Mobile + YQL กัน เว็บไซต์การ์ตูน I am Petdo! มีช่องทางให้คุณอ่านการ์ตูนผ่านทาง RSS Feed ได้ ซึ่งคุณสามารถใช้ RSS reader ตัวไหนก็ได้ในการอ่านการ์ตูนเรื่องนี้ โดยไม่ต้องเข้าเว็บและเราก็สามารถเขียน HTML5 App ในการ Feed เนื้อหาจาก RSS ได้เช่นกัน เครื่องมือที่จะมาแนะนำเพิ่มเติมวันนี้คือ YQL

YQL หรือ Yahoo! Query Language เป็นเครื่องมือคล้ายกับคำสั่ง SQL ใช้ในการ query, filter, join ข้อมูลข้ามเว็บเซอร์วิส คุณสามารถใช้ YQL ในการสร้างชุดข้อมูลที่คุณต้องการได้ง่ายเลยทีเดียว

จากภาพจะเห็นได้ว่าเราสามารถใช้คำสั่ง SQL เพื่อ filter ข้อมูลจาก RSS Feed ได้ YQL มีคุณสมบัติอีกอย่างคือสามารถ แสดงผลลัพท์ในรูปแบบ XML หรือ JSON ได้ ในที่นี้เราจะใช้ผมลัพท์จาก JSON ส่งต่อให้ jQuery ประมวลผล คุณสามารถใช้ Query URL เอาไปใช้งานได้เลย ตัวอย่างเช่น

http://query.yahooapis.com/v1/public/yql?q=select%20title%20from%20rss%20where%20url%3D%22http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories%22&format=json&diagnostics=true&callback=cbfunc

ผลลัพทที่ได้จะเป็นข้อมูลในรูปแบบ JSON เมื่อได้ข้อมูลมาแล้วก็เขียน jQuery ผ่านทาง jsfiddle เช่นเคย ปรับแต่ง CSS ตามใจชอบ

ตอนนี้เราก็ได้ jQuery ในส่วนที่จำนำไปใช้งานกันแล้ว จับใส่ jQuery Mobile อีกนิดหน่อยเราก็จะได้ HTML5 App สำหรับ Mobile กันแล้ว