เมื่อแอพบน Windows 8.1 และ Windows Phone 8.1 กำลังรวมกันด้วย Universal WinRT อาจตัดสินอนาคตของ Microsoft

อนาคตของ Windows ในตลาด tablet และ mobile นั้นดูจะยังลุ่มๆ ดอนๆ อยู่พอสมควร อาจจะเพราะชะล่าใจ จนเข้ามาช้าไป อีกทั้งเข้ามาช้าก็เร่งเครื่องไม่ทันกระแส พัฒนาไล่ตามคู่แข่งแบบหวานเย็น จนเหล่านักพัฒนา และผู้ใช้ที่ติดตามฝั่ง Windows ได้แต่มอง platform อื่นๆ เค้าก้าวหน้าไปอย่างรวดเร็ว

แม้ว่าช่วงปีที่ผ่านมา จะเห็นได้ว่า Microsoft ได้วางแผนว่า Windows ในอนาคตจะต้องให้ประสบการณ์ในการใช้งานตั้งแต่หน้าจอประมาณ 3” จนถึง 30” แล้วมีประสบการณ์เดียวกัน ซึ่ง codename ชื่อ Windows Blue เป็นแผนงานที่วางไว้ในช่วงปีที่แล้วจนถึงปีนี้ แต่ดูเหมือนแผนงานฝั่ง Windows desktop และ tablet ก็ดูจะได้รับการตอบรับที่ดีในระดับหนึ่ง ซึ่งถูกมองว่าเป็นแผนงานอุดข้อเสียและปรับปรุงให้ดีขึ้นมากกว่า ส่วนในด้านของ Windows Phone ก็ช้ากว่าฝั่ง Windows เข้าไปอีก ด้วยการออก Windows Phone 8 GDR 1, GDR 2 และ GDR 3 ที่ดูเหมือนจะเป็นเพียงการไล่ตามในสิ่งที่ผู้เล่นในตลาดมีอยู่ก่อนแล้วมาก่อน 1-2 ปี

แต่จากข่าวในช่วงเดือนที่ผ่านมาของ Windows Phone 8.1 (codename: Blue) นั้น ได้สร้างความตื่นเต้นพอสมควรในด้านความสามารถที่มากมายกว่า Windows Phone 8 GDR 1 จนถึง GDR 3 รวมกันเสียอีก อีกทั้ง ส่วนที่น่าสนใจมากกว่านั้นคือ ได้มีข้อมูลที่รวมการพัฒนาแอพบน Windows 8.1 และ Windows Phone 8.1 เข้าด้วยกัน สร้างความน่าสนใจมากกว่าข่าวลือเรื่อง Microsoft มีความคิดจะนำแอพ Android มาทำงานบน Windows เสียอีก

จากเอกสาร Windows Phone 8.1 SDK ที่หลุดออกมานั้น เปิดเผยว่า Windows Phone 8.1 ช่วยให้นักพัฒนาสามารถสร้างแอพโดยใช้ Universal Windows Runtime (หรือเรียกอีกชื่อว่า Universal WinRT) ได้ โดยเป็นผลดีต่อต้นทุนในการพัฒนาแอพเป็นอย่างมาก ซึ่งชื่อ “WinRT” นั้น คงคุ้นหูกันมาก่อน เพราะมันคือชื่อ runtime ของแอพ Windows Store apps บน Windows RT และ Windows 8 อยู่ก่อนแล้ว นั้นหมายความว่า เราสามารถสร้างแอพที่ทำงานได้ทั้งบน Windows Phone 8.1 และ Windows 8.1 ได้ในการพัฒนาเพียงครั้งเดียว ในชื่อ “Universal Store apps” เพื่อใช้เรียกว่า runtime ใหม่ ให้แยกต่างหากจากของเดิมที่ชื่อ “WinRT”  เป็น “Universal WinRT” แน่นอนว่าสำหรับแอพเดิมที่เคยพัฒนาอยู่ก่อนแล้วบน Windows Phone 8 นั้นสามารถอัพเกรดแอพด้วยการคอมไพล์ไปใช้ Windows Phone Silverlight 8.1 (หรือเรียกอีกชื่อว่า WP Silverlight 8.1) แทนได้เช่นเดิม หรือจะพัฒนาโดยใช้ Universal WinRT ก็ได้โดยเริ่มต้นสร้าง Solution ใน Visual Studio ใหม่อีก Solution หนึ่งจาก Template ที่มีอยู่ใหม่

แต่ทั้งนี้ ด้วยข้อจำกัดของทั้ง Universal WinRT และ WP Silverlight 8.1 นั้นมีหลายส่วนในเบื้องต้น ซึ่งข้อจำกัดใน Universal WinRT นั้นยังมีอยู่มากตามเอกสารที่หลุดออกมา และคิดว่าน่าจะเข้าใกล้การพัฒนาจนไร้ข้อจำกัดในการผสานกันระหว่าง Windows 8และ Windows Phone ในอนาคต

ส่วนต่อมาที่น่าสนใจในเอกสารคือ Share โดยถ้าว่ากันตามจริง ใช้หลักการเดียวกับบน Windows 8 ที่ใช้การส่ง command ไปยังแอพปลายทาง (target app) และเมื่อแชร์จบแล้วจึงย้อนกลับมาที่แอพเดิม (source app) ทำให้ต่อการ การแชร์ระหว่างแอพจะทำได้สะดวกขึ้น และไล่ตามความสามารถของคู่แข่งได้สูสีมากขึ้น

สำหรับข้อมูลส่วนอื่นๆ ที่น่าสนใจตามเอกสาร SDK ที่หลุดมา จะเป็นส่วนของการเตรียมตัวและพัฒนาแอพให้สามารถทำงานบน Windows Phone 8.1 ได้อย่างราบรื่นและสมบูรณ์ รวมไปถึงทำความเข้าใจแนวคิดใหม่ของ Universal WinRT ที่กำลังจะเป็นส่วนสำคัญในการพัฒนาแอพในอนาคตด้วย

จากการวิเคราะห์นั้น คิดว่าการพัฒนาแอพที่สามารถทำงานได้กับอุปกรณ์ทั้ง desktop, tablet และ phone ในตัวเดียว อาจจะสร้างความยุ่งยากอยู่พอสมควร ในการแสดงผลให้แตกต่างกันในแต่ละอุปกรณ์ แต่ถ้ามองในมุมบริหารจัดการ และการจูงใจนักพัฒนาแอพบน desktop และ tablet มาพัฒนาบน phone และในทางกลับกัน นักพัฒนาบน phone ก็ขยับมาลงใน desktop และ tablet นั้นดูน่าสนใจมากขึ้น เพราะในขณะนี้ รูปแบบการพัฒนานั้นดูจะแตกต่างกันอย่างเห็นได้ชัด และการพัฒนาแอพบน Windows Store apps นั้นก็ง่ายกว่าบน Windows Phone apps อย่างมาก ซึ่งจุดนี้เองที่น่าสนใจว่าผู้เล่นจากฝั่งไหนจะลงมาเล่นมากกว่ากัน ต้องลองติดตามต่อไป ถ้าเอกสารที่หลุดมานั้นเป็นเอกสารจริง

หมายเหตุ เอกสารต่างๆ ที่หลุดออกมานี้ แนะนำให้ลองหาดูกัน ผมคงไม่สามารถโพสเอกสาร หรือแจกจ่ายเอกสารเหล่านี้ได้ด้วยข้อจำกัดทางกฎหมายในตัวเอกสารเอง (ถ้าเป็นเอกสารของ Microsoft จริง)

Thai Taxi Meter Calculator for Windows Phone 8 พร้อมใหดาวน์โหลดแล้วที่ Windows Phone Store

จากที่บ่นๆ ใน Thai Taxi Meter Calculator for Windows Phone 8 

เป็น App ที่ไม่มีอะไรมากคำนวณเล่นๆ มันเกิดจากว่า ผมขึ้น Taxi แล้วมีเงินเหลือในกระเป๋า 200 บาทแล้วต้องเดินทางค่อนข้างไกล แล้วลืมว่ามีเงินอยู่แค่นี้ เลยต้องเข้าเว็บคำนวณเงิน โชคดีที่พอดี ระหว่างทาง นั่งคำนวณเงินค่า Taxi ผ่านเว็บเอาให้ลุ้นเล่นที่ประมาณ 180 กว่าบาท พอถึงที่หมายก็ประมาณเกือบๆ 190 บาท (เกือบไป) ผมเลยนั่งทำ App ตัวนี้เมื่อเย็นวาน เอาไว้ใช้เอง โดยใช้เวลาหาสูตรใน Wiki แล้วเอามาเขียนดูอีกสัก 30 นาที ก็ได้ App เล็กๆ ตัวหนึ่งขึ้นมา

เมื่อช่วงเช้าที่ผ่านมาก็ได้อีเมลแจ้งว่าทุกอย่างผ่านไปด้วยดี ภายใน 24 ชั่วโมงจะสามารถให้ดาวน์โหลดได้

image

หรือเข้าไปดาวน์โหลดได้แล้วที่ Thai Taxi Meter Calculator on Windows Phone Store ก็ได้

2012-12-31_134722

แผนต่อไปที่จะทำคงเป็นเรื่อง Map การบันทึกค่าใช้จ่ายในแต่ละครั้ง รวมไปถึงบันทึกพวกหมายเลขทะเบียนรถ sync เข้า SkyDrive แต่นั้นคงหลังจากที่ SoShi Fanclub for Windows Phone 8 นั้นขึ้น Windows Phone Store แล้วนั้นเองครับ

Thai Taxi Meter Calculator for Windows Phone 8

เป็น App ที่ไม่มีอะไรมากคำนวณเล่นๆ มันเกิดจากว่า ผมขึ้น Taxi แล้วมีเงินเหลือในกระเป๋า 200 บาทแล้วต้องเดินทางค่อนข้างไกล แล้วลืมว่ามีเงินอยู่แค่นี้ เลยต้องเข้าเว็บคำนวณเงิน โชคดีที่พอดี ระหว่างทาง นั่งคำนวณเงินค่า Taxi ผ่านเว็บเอาให้ลุ้นเล่นที่ประมาณ 180 กว่าบาท พอถึงที่หมายก็ประมาณเกือบๆ 190 บาท (เกือบไป) ผมเลยนั่งทำ App ตัวนี้เมื่อเย็นวาน เอาไว้ใช้เอง โดยใช้เวลาหาสูตรใน Wiki แล้วเอามาเขียนดูอีกสัก 30 นาที ก็ได้ App เล็กๆ ตัวหนึ่งขึ้นมา

กำลัง Publish คืนนี้ (25/12/2555) ทำ ss และ icon ใช้เวลานานกว่า App อีก ><”

2012-12-25_005227

Thai Taxi Meter Calculator ส่งเข้า Windows Phone Store แล้วรอ review ไม่เกิน 5 วัน ><”

ปล. icon ห่วยแตกมาก ขออภัย T_T

2012-12-25_012346

เรื่องเล่าของ SoShi Fanclub for Windows Phone 8 จากงาน Windows Phone AppFest

จากงาน Nokia Windows Phone AppFest powered by AIS The StartUp ที่จัดที่ Microsoft Thailand มีการให้ลองนำเสนอ Apps สักตัวนึง แน่นอนว่าเพิ่งเริ่มพัฒนา ประมาณ 1 อาทิตย์ (เอาจริงๆ ก็ไม่ถึงนะ ใช้เวลาทำจริงจัง 2 วัน)

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

Apps ตัวนั้นก็คือ SoShi Fanclub for Windows Phone 8 อย่างที่บอก ทำสนองตัวเอง เพราะงั้นมันจึงมีอะไรที่เน้น Feature ที่ใหม่ๆ ที่มีใน Windows Phone 8 เพราะอยากลองและนำไปต่อยอดในงานที่จริงจังในอนาคตจริงๆ (Apps หนูทดลองว่างั้น)

แต่แน่นอนว่า ถึงจะมองให้คิดแบบนั้น แต่ก็ลงทุนแบบลูกบ้ากับค่าลง Developer Account ไปไม่น้อย (เท่ากับ iOS Developer Account) ก็คิดว่าต้องได้อะไรกลับมาบ้าง ซึ่งคงไม่เหมือนตอน iOS Developer Account ก็เฟลมารอบ เพราะไม่มีเครื่อง Mac ใช้สักที เนื่องจากไม่มีเวลาจะลงไปศึกษาจริงจัง แต่รอบนี้ของใกล้ตัวกว่าอย่างบน Windows มันเลยง่ายกว่า

image

ตัว SoShi Fanclub for Windows Phone 8 พัฒนาบน Microsoft Visual Studio Express 2012 for Windows Phone ใน Proejct ตั้งต้น Templates ในส่วนของภาษา Visual Basic (.NET) รูปแบบเริ่มต้น Windows Phone HTML5 App

กล่าวคือใช้การพัฒนาผสมระหว่าง VB.NET, XAML และ HTML5

แน่นอนว่า HTML5 นั้นมันต้องพ่วง CSS และ JavaScript มาด้วย โดย JavaScript ที่ใช้ใน Project นั้นใช้ jQuery, Metro JS และ jMetro เป็นหลัก (พวกนี้ตัดสินใจใส่เอง ไม่มีใน Project Templates)

สำหรับส่วนอื่นๆ ก็มี API Services ที่เกี่ยงข้องในขั้นต้นจากที่เริ่ม Project นี้มา 6-7 วันก็มี

  1. SoShi Fanclub private Feed อันนี้ไปขอจากทางเว็บมา แน่นอนว่าไม่ได้ยิง request ไปตลอด คงทำ cache กลางไว้อีกรอบบน Azure แน่นอน
  2. Image Proxy for embed image hosting เป็นส่วนของการแก้ปัญหาเว็บฝากไฟล์รูปหลายๆ ที่ที่ต้องส่ง referer ไปด้วยถ้ามีการดึงรูป ซึ่งด้วยความที่ IE10 มันโดยตั้ง Do No Track มาเป็น default บน Windows Phone 8 เพราะฉะนั้น มันจึงไม่ส่ง referer ออกไปให้ เลยต้องมีการทำ Proxy ตรงกลางเพื่อทำตัวเสมือนอีกชั้นนึงแล้วไปดึงรูปมาให้อีกทอดนึง
  3. Push Notification สำหรับรายงานข่าวใหม่ อันนี้ใช้ Mobile Services ของ Azure ที่มีบริการอยู่ (ที่นี่รองรับทั้ง Windows 8 Apps, Windows Phone 8 Apps และ iOS Apps) ตรงนี้ทำเพิ่มเข้ามาลองวิชาด้วย น่าสนใจดีมากๆ

สำหรับ Photo Gallery ตรงนี้กำลังคิดอยู่เพราะมีใน SoShi Fanclub for iOS แต่ใน Android มันไม่มีแฮะ เลยงงๆ ว่าจะไม่ดึงที่ไหน

สำหรับโครงสร้างของ Apps นั้นก็ตามข้างล่างเลย

เราใช้ WebBrowser Control เป็นส่วนของ View ของระบบเพื่อ render HTML5 ในฝั่งการแสดงผลอีกชั้น ตัว HTML5 จะทำงานแทนในส่วนที่ต้องดึงข้อมูลมาแสดงผลแยกต่างจาก และในส่วนของ Service Class จะไปยุ่งพวกหลังบ้าง พวก push หรือการเก็บข้อมูลอะไรแนวๆ นั้น

การติดต่อระหว่าง HTML5 กับ Service Class ทำผ่าน InvokeScript และ ScriptNotify

InvokeScript  คือ VB.NET สั่งให้ JavaScript ในฝั่ง WebBrowser Control ทำงาน

ScriptNotify คือ WebBrowser Control ส่งข้อมูลเข้ามาที่ฝั่ง VB.NET

เมื่อมันสื่อสารกันได้แล้ว ก็ง่ายแหละที่จะส่งไป-กลับข้อมูลจากเว็บเข้าระบบภายเครื่อง

image

สำหรับการออกตัว Apps จะพยายามออกให้ได้ 2 version หลักภายใน 3 เดือนนี้

เดือนแรกคงรีบออกตัวแรกก่อนเลยคือ 1st Release Features ประมาณก่อนปีใหม่ 2013

จะมีคุณสมบัติหลักๆ ก็คือ

  • News Feed
  • Photo Gallery
  • Embed Image support (By pass Do No Track)
  • Embed YouTube support to Mobile Youtube
  • Support Share (Twitter or Facebook)
  • Live Tile, Toast, Push Notification for News Feed and Photo Gallery

สำหรับ 2nd Release Features ประมาณช่วงก่อนเดือนมีนาคม 2013

  • Quick status on Lock Screen
  • Shuffle Background on Lock Screen
  • Save Calendar to Windows Phone
  • Save Photo to SkyDrive
  • Read/Unread support
  • Read it later support

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

สรุป ทำเอามันส์