จิ๊กซอว์ของ 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)

รีวิวเล็กๆ กับ Nokia Lumia 920

จาก “Windows Phone 8 users report random reboots and battery issues”

http://www.theverge.com/2012/11/18/3660974/htc-8x-lumia-920-reboot-freezing-battery-issues

ก็เลยนิดนึง ขอรีวิวเล็กๆ สักหน่อยนึง

22405da2317411e2bf6922000a9f1404_7 
เตรียมพบกับ soshifanclub for Windows Phone 8 เร็วๆ นี้

ในฐานะที่ใช้ Nokia Lumia 920 จริงจังแทนเครื่องเก่า Oppo Find 3 มาได้เกือบๆ 4 วันแล้ว (WP8 vs Android 4.0 ICS)

ต้องตอบว่า เรื่อง Reboot ของ Nokia Lumia 920 ยังไม่เจอ ใช้งานมาหลายวันยังไม่โดนสักครั้ง ถ้าเป็น Oppo Find 3 (Android 4.0 ICS) ต้องเจอย่างน้อยวันละครั้ง ><"

ส่วน Battery Life จากที่ใช้มา ก็ต้องแบ่งออกเป็น 2 ส่วน

1. ถ้าเปิดเล่นหนักๆ Lumia 920 ก็ประหยัดกว่า Oppo Find 3 ประมาณ 1-2 ชั่วโมงนะ แต่ต้องอย่าลืมว่าไอ้ตัวนี้จอมันใหญ่กว่า Oppo Find 3 ด้วย (แต่แบตมันก็จุเยอะกว่านี่หว่า ><")

2. ถ้าเปิด Lumia แบบ Standby วางไว้เฉยๆ อันนี้เห็นผลชัดเจนเลยว่า Lumia 920 มันกินแบตน้อยกว่า Oppo Find 3 แบบเทียบไม่ได้เลย Lumia 920 วางไว้เฉยๆ เปิด standby ไว้ แบตลดชั่วโมงละเกือบ ~1% แต่ถ้าเป็น Oppo Find 3 โน้นเลย 8-10% ><" (เปิด autosync/push ทุกๆ อย่างเหมือนกันแล้วนะ)

สำหรับเรื่องความร้อนของตัวเครื่อง Lumia 920 นั้นยอมรับว่าถ้าเปิด 3G ต่อไว้จะร้อนทีเดียว ถ้าเทียบกับ Oppo Find 3 แล้วก็น่าจะร้อนกว่าพอสมควร แต่ถ้าเปิด 2G และต่อ WiFi ก็ไม่ร้อนเท่าไหร่ อุ่นๆ

ระบบแผนที่นั้นดีมาก Nokia Maps และ Nokia Drive+ BETA ทำงานได้ดีมาก ชอบที่ Nokia Maps โหลด Offline Maps ได้แบบระบุประเทศได้เลย ไม่ต้องมาใช้ internet โหลด แต่ถ้าจะ direction เหมือนจะต้องค้นจาก internet เพื่อ update ข้อมูลบางส่วนมั้ง (ตรงนี้ยังไม่ชัวช์ ยังเล่นไม่หมด) แต่ Nokia Drive+ BETA เป็น Maps แบบ turn by turn ที่ให้มาดีมากๆ มีเสียงภาษาไทยด้วย

แถมเรื่องถ่ายรูปนั้นต้องบอกว่าสมดุลสีขาว (WB) ของ Lumia 920 นั้นเพี้ยนจริง ต้องออก FW/SW มาแก้ ไม่งั้นต้องมาตั้ง WB Manual เอา (ได้ฟิล DSLR มาก) แต่ระบบ IS ของกล้องนั้นเมพของจริง ใช้งานได้จริง ถ่ายรูปเห็นกว่าเบลอแน่ๆ คือมันสั่นนิดๆ แต่เปิดพรีวิวดู คมชัดไม่สั่นเบลอเลย เยี่ยมมากตรงนี้