Photobeamer บน Windows Phone 8 เมพมาก

วิธีคือเอารูปไปแสดงบน Web Browser โดยการติดต่อผ่าน Internet

ขั้นตอนก็ง่ายๆ

  1. เปิด Web Browser บนเครื่องคอมพิวเตอร์ หรือ Tablet อะไรก็ได้ที่ต่อ Internet ได้ เพื่อให้รูปไปแสดงบน Web Browser ที่เราเปิดไว้อยู่
  2. เข้าไปยัง www.photobeamer.com
  3. เปิด App ชื่อ Photobeamer บนมือถือ Windows Phone 8 ขึ้นมา
  4. เลือกรูป
  5. App จะบอกให้เราไป scan QR Code ก็ให้มือถืออ่าน QR Code บน Web Browser
  6. ภาพที่เลือกไว้จะปรากฎบน Web Browser ที่เราเปิดอยู่

ทดสอบบน Nexus 7 (Chrome) และ Notebook (Firefox, Chrome และ IE10) แล้วทำงานได้ดี

 

IMG20121219235501

Review: Nokia Lumia 920

รอบนี้มารีวิวมือถือเรือธงจาก Nokia ซึ่งเป็นรุ่นที่ถูกจับตามองอย่างมากจากผู้ใช้ทั่วไปและผู้ใช้มือเก๋าว่าจะมากู้หน้าให้กับ Nokia และ Microsoft ได้แค่ไหนจากครั้ง Lumia 900/910 ที่ใช้ Windows Phone 7 ตัวเก่าที่ไม่ได้รุ่งอย่างที่คิด Nokia จากการส่งมือถือ Windows Phone 7 ออกมาช้ากว่าที่ควรจะเป็น หรือถ้าพูดง่ายๆ ว่ามาตอนตลาดวายไปแล้ว และเหมือนทาง Microsoft ก็ดูจะไม่ได้สนใจที่จะดูแล Windows Phone 7 ต่ออยู่พักหนึ่ง ก่อนจะออก Windows Phone 7.5 และกำลังจะออก Windows Phone 7.8 เร็วๆ นี้ ซึ่งในตอนนั้นก็ดูจะเป็นช่วงเดียวกับที่ Nokia ออกพอดี ซึ่งผิดกับตอนที่ HTC ออก Windows Phone 7 ที่ดูจะโหมโฆษณาหนักกว่ามาก

มารอบนี้ Windows Phone 8 ทาง Nokia กลับเปิดตัวแรงและขายก่อน HTC เจ้าเก่าหรือผู้เล่นรายใหม่อย่าง Samsung ด้วยยอดขายและยอดจองที่ถือว่าทำได้ดีสำหรับตลาด Windows  Phone 8 ที่ถือว่าใหม่มากในตลาดตอนนี้ โดยครั้งนี้ Microsoft เปิดตัวเพื่อเข้ามาชนกับ Android 4.2 จาก Google และ iOS 6 จาก Apple ที่ออกมาก่อนหน้านี้ไม่นานนักอย่างดุเดือด

ต้องกล่าวในส่วนของ Windows Phone 8 ก่อนว่ามีรหัสพัฒนา (codename) ชื่อ Apollo เป็นมือถือรุ่นที่ใช้ NT kernel ซึ่งเป็น kernel ชนิดเดียวกับ Windows 2000 (NT 5.0), XP (NT 5.1), Vista (NT 6.0) และ 7 (NT 6.1) แต่ปรับปรุงให้เล็กลงมากๆ และได้ใช้ core component ระบบที่แชร์การพัฒนาร่วมกับ Windows 8 โดยเอามาแทนที่ Windows CE kernel ที่อยู่ใน Windows Mobile และ Windows Phone 7.x ที่ขายไปก่อนหน้านี้ โดยถ้าจะให้พูดง่ายๆ คือล้างไพ่ใหม่หมด โดยถ้ามองในภาพรวมแล้วถือว่าเสี่ยงมากในการกลับมาโดยไม่อิงกับระบบเดิมใดๆ เลย (แม้จะมี Apps เก่าๆ ทำงานได้อยู่บ้าง) แต่ถ้าในมุมของการเกิดใหม่และต้องการที่จะกลับมาใน Platform ที่ทรงพลังอย่าง NT kernel คงต้องทำ และยังเป็นวิธีคิดเดียวกับที่ Apple ทำ ก็คือ iOS ใช้ OS X kernel ตั้งแต่แรกเช่นเดียวกัน

DSC_3702

Read more

จิ๊กซอว์ของ Microsoft ที่เริ่มจะต่อกันติด!

จาก Xbox Surface: Microsoft’s 7-inch gaming tablet

ตอนแรกก็งงๆ ว่าทำไม Windows Phone มี Ratio ที่ 15:9 หรือ 800×480 และ 1280×768 ส่วน 1280×720 มันโผล่มาจากไหน 16:9 มันเอามาทำอะไร แถมก็มีหลายบริษัทมือถือบ้าจี้ทำซะด้วย เพิ่งอ่านข่าวเจอ (เก่าไปหน่อย เพราะตอนแรกไม่สนใจ) ว่ามี Xbox Surface ที่ใช้ความละเอียด HD 720p (1280×720) ด้วย!!

อืมมม ทำให้เข้าใจได้เลยว่าทำไมมันถึงมี 1280×720 ใน Windows Phone 8 SDK คงเพราะ Microsoft จะเอามาทำ Xbox Surface (HD 720p) นี่เอง!!! คิดมานานแล้วซินะ #เหนือชั้น

เพิ่งลองเปิดใน Windows Phone 8 SDK มันมี XNA Game Studio 4.0 อยู่ในนั้นทั้ง C# และ VB.NET แถมมันยังมี C++ Project สำหรับสร้าง Direct3D Library ฯลฯ ด้วยนะ

เพราะงั้นทำเกมส์ลง Windows Phone 8 เอามาลง Xbox Surface ได้เลย แถม Kernel ของ Windows Phone บางส่วนมีอยู่ใน Windows 8 และ Windows RT ด้วย คือทำ core ของเกมดีๆ port ไปได้หมดเลย (ในทางโครงสร้าง software มันทำได้ มันอยู่ที่จะทำไหม)

Microsoft เริ่มน่ากลัวขึ้นเรื่อยๆ แถมมีมีข่าว Xbox ตัวใหม่กำลังจะออกต่อจาก Xbox Surface ที่เป็นตัวต่อจาก Xbox 360 ถือว่าอยู่ในช่วงขาขึ้นด้วย หลังจากที่ Kinect ที่มารวมพลัง

ปล. ใครนั่งอ่านมองภาพตามคงเริ่มต่อติดนะว่า Microsoft กลับมารอบนี้น่ากลัวมาก ประเด็นคือจะ integrate ecosystem ทั้งหมดให้เนียนได้ยังไงเนี่ยแหละ เพราะ Microsoft มีปัญหาเรื่องนี้มากๆ ในระยะหลังๆ

เรื่องเล่าของ 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 ที่ทำขึ้นเพื่อเป็นครูสอนตัวเองไปในตัวด้วย ฮาๆๆ

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

เรื่องเล่าของ Windows Phone 8 ภาคคนพัฒนาแอพ

นั่งอ่านเรื่อง Windows Phone 8 ในเชิงการพัฒนาแอพบนนี้ โดยศึกษามา 3-4 วัน เพราะสมัครเป็น Windows Phone ISV เมื่อวันเสาร์ที่ผ่านมา

ผมขอสรุปคราวๆ ตามนี้

Windows Phone 8 (codename ชื่อ Apollo) เป็นรุ่นที่ใช้ Windows NT kernel ซึ่งเป็ย Kernel ชนิดเดียวกับ Windows 2000 (NT 5.0), XP (NT 5.1), Vista (NT 6.0) และ 7 (NT 6.1) แต่ปรับปรุงให้เล็กลงมากๆ และได้ใช้ core components ระบบที่แชร์การพัฒนาร่วมกับ Windows 8 โดยเอามาแทนที่ Windows CE Kernel ที่อยู่ใน Windows Mobile และ Windows Phone 7, 7.5 และ 7.8 ที่มีอยู่ตอนนี้ พูดง่ายๆ คือล้างไพ่ใหม่หมด จริงๆ ก็เสี่ยงมากนะ แต่คงต้องทำ ซึ่งเป็นวิธีคิดเดียวกับที่ Apple ทำ ก็คือ iOS ใช้ OS X Kernel ตั้งแต่แรก

จากการที่ใช้ NT Kernel ทำให้มันรองรับ multi-core CPUs มากถึง 64 cores ตั้งแต่เริ่มต้น (โหดสัส!!!)

ในตอนนนี้ยินยันว่ารองรับจอภาพ 3 ขนาดเท่านั้น คือ WVGA 800×480 15:9,WXGA 1280×768 15:9 และ HD 720p 1280×720 16:9 ทำให้การออกแบบ Apps จำกัดเพียงเท่านั้น ถ้าใหญ่กว่านี้จะถูกผนักให้ไปพัฒนาบน Windows RT หรือ Windows 8 Apps แทน โดย Windows 8 Apps รองรับการแสดงผล 2560×1440 pixel บนจอภาพ 27"!!!

โดยจากที่ไล่ดู conponents/api ส่วนใหญ่สามารถ port ตัว Windows 8 apps มา Windows Phone 8 ด้วย code behind ในบางส่วน (ออกแบบดีๆ ทำได้เลย) แต่เสียดาย Windows Phone 8 ไม่มี WinJS เลยลำบากหน่อย ถ้าใช้ผ่าน WebClient บน VB.NET แทน คือจะเขียนแบบ HTML5, CSS3 และ JavaScript แบบ Windows 8 Apps ล้วนๆ มันทำไม่ได้ต้องใช้ C++, C# หรือ VB.NET เขียน หรือถ้าใช้ติดต่อเว็บเยอะๆ ทำ Web View ก็ใช้ WebBrowser Control มาใส่ ถ้าจะติดต่ออะไรยากๆ เขียน JavaScript ผ่าน WinJS ไม่ได้ ต้องผ่าน WebBrowser.ScriptNotify Event และ WebBrowser.InvokeScript Method เพื่อส่งข้อมูลระหว่าง WebBrowser Control กับ VB.NET ที่เป็น Base Apps เพื่อให้มันไปทำงานต่อกับ H/W หรือ Call Network บางส่วนแทน ><" (กว่าจะหาวิธีได้)

ตัว Windows Phone 8 มี Internet Explorer 10 ที่เร็วมาก ไม่คิดว่ามันจะเร็วได้ขนาดนี้ มันความรู้สึกเดียวกับบน Windows 8 เลย คือกดปุ๊บมาปั้บ แบบร้องเฮ้ย! เปิด IE10 เร็วกว่า Chrome เป็นไปได้!

ระบบ Background multitasking อันนี้ประหยัดแบตด้วยเท่าที่เล่นมา ข้อเสียรู้สึกมันจะไม่ realtime ต้องรันเป็น schedule/polling เอา ถ้าอยาก realtime ต้องใช้ push services แทน (ต้องต่อ internet ร่วมด้วย) อันนี้จากที่นั่งไล่ระบบมานะ ผมยังไม่ได้ดูเยอะ เพราะยังไม่ได้เล่นอะไรขนาดนั้น

[เพิ่มเติม] ผมพัฒนา Project บน Project ที่ใช้ภาษา VB.NET + HTML5 ในการพัฒนา Apps เป็นหลัก แต่จะใช้ C++ หรือ C# พัฒนาร่วมกับ HTML5 ก็ทำได้ (แต่ต้องเลือกอย่างใดอย่างหนึ่งเวลาสร้าง Project)