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

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

App ตัวแรกบน Windows Mobile ด้วย VB.NET (VS 2008)

โดยส่วนตัวแล้วถ้าให้เลือกระหว่าง C# กับ VB.NET ในตอนนี้ ผมคงเลือก VB.NET เพราะตัวเองถนัด และเขียนมาก่อนตอนเรียนอยู่มหาวิทยาลัยตอนปี 2 ตอนนั้นเขียนบนฐาน .NET 1.0 และ 2.0 ด้วย VS 2002 – 2003 และตอนฝึกงานที่เขียนบน VS 2005  ด้วยความถนัด App ตัวแรกจึงเลือก VB.NET นั้นเอง

หลายคนที่รู้จักผมคงไม่งง แต่คนไม่รู้จักผมเท่าไหร่ คงงงว่าไอ้ผมนี่มันพวกชอบภาษาแนวปีกกามากกว่า ทั้ง Perl, PHP และ JAVA แต่มี VB.NET มาโผล่มาตัวนึง ซึ่งจริง ๆ ผมเขียน C, C++, Python กับ Ruby พอได้ แต่ไม่เอามาลงจะดีกว่า เพราะอ่าน code ได้แต่ยังไม่ถึงกับเอามาทำ App จริง ๆ จัง ๆ ได้มากนัก อาจจะเพราะ C/C++ นี่ร้างลามานานจนไม่คิดว่าตัวเองเขียนเป็น App ได้ในเวลาอันสั้น Python ที่ได้จับตอนทำ E-Book และทำรายการพร้อมตัวอย่าง ยังไม่ถึงขั้น Deploy ตัว App ไปขายได้ ส่วน Ruby นี่ผมได้เพราะ Rails Framework จึงไม่คิดว่าตัวเองเก่ง Ruby พอที่จะเขียนได้โดยไม่พี่ง Rails Framework

มารอบนี้สิ่งที่ต้องเตรียมตัวหลายอย่าง อย่างแรก ผมหาข้อมูลก่อนว่าผมจะเขียน App บน Windows Mobile ได้ยังไง เพราะส่วนตัวไม่ได้ติดตามด้าน Windows Mobile เลย แต่นับตั้งแต่ซื้อ HTC Pharos มาได้ 3-4 วัน ผมเลยหาข้อมูลหลาย ๆ อย่างมาประกอบทั้งเรื่องของ Smartphone กับ Pocket PC Phone มันต่างกันยังไงแน่

รุ่น Smartphone คือรุ่นที่ตัวเครื่องมีปุ่มตัวเลขสำหรับโทรศัพท์และควบคุมการใช้งาน แต่ไม่มี Toch Screen ส่วน Pocket PC Phone  นั้นคือเครื่องที่ไม่มีปุ่มตัวเลขสำหรับกดใช้งาน แต่ใช้ Touch Screen แทน หรือบางครั้งถูกเรียกว่า PDA Phone

สิ่งแรกคือ Windows Mobile 6 นั้นได้เปลี่ยนชื่อรุ่นนิดหน่อย เป็น Standard (สำหรับ Smartphone) กับ Professional (สำหรับ PDA Phone) โดย App ในปัจจุบันนั้นได้พัฒนาขึ้นมาบน .NET Compact Framework 2.0 เป็นส่วนใหญ่ และสะดวกมาก ๆ เพราะสามารถสร้าง App บน Visual Studio 2005 Standard และ Visutal Studio 2008 Professional เป็นต้น (รุ่น Visual Studio Expression พัฒนา App บน Windows Mobile ไม่ได้ครับ T_T ) ด้วยเหตุนี้ทำให้การพัฒนา App บน Windows Mobile มีต้นทุนครับ เพราะต้องซื้อลิขสิทธิ์ซอฟต์แวร์สำหรับพัฒนา แต่ก็ยังมีทางเลือกเล็กน้อย ซึ่งใช้พลังงานเยอะกว่าปกติหน่อย แต่ประหยัดตามลิงค์นี้ครับ

Compiling .NET Compact Framework applications without Visual Studio

ลองไปอ่านดูครับ แต่ ….

อีกทางหนึ่งคือใช้ Visual Studio 2008 Professional Trial version ครับ ผมมีแผ่นที่ได้จาก BarCamp Bangkok Winter 2008 มาลง (ดีนะที่ผมเอามาและยังเก็บไว้) ก็เอามาลงแล้วตามด้วย Windows Mobile 6 Professional and Standard Software Development Kits Refresh และ ActiveSync 4.5 ครับ แค่นี้ก็ได้ครบ

เสร็จแล้วก็ลงทั้งหมดลงไล่ตั้งแต่ Visual Studio, SDL และ ActiveSync ครับ

เสร็จแล้วก็สร้าง Project ตามปกติเลย เลือก Device แล้วก็ SmartDevice Project 

ก็ได้หน้าตามแบบโทรศัพท์เลย คราวนี้ผมก็เขียน App อย่าง่าย ๆ แต่งานนี้ไม่เอา Hello World ;P คราวนี้ผมเอา App บวกเลข Integer ธรรมดาเนี่ยแหละ ง่ายดี

2008-08-11_225359

แล้วก็ลาก Object Control ลงไป

2008-08-11_225337

แล้วก็เขียนโค้ดลงไปตาม Syntax ของ VB.NET ที่ผมคุ้นเคย

เสร็จแล้วก็ build และทดสอบด้วย emulator บนเครื่องก่อน โดยรวมทำงาน ok

ขั้นต่อไปก็เอาลองใส่ใน HTC Pharos ของผม แล้วก็ทำงานตามภาพด้านล่างครับ บวกเลขได้ดั่งใจนึก ;P

P1080207

ทั้งหมดนี่ลง App บนเครื่อง ThinkPad R40 ตัวเก่าใช้เวลาทั้งหมดชั่วโมงกว่า -_-‘ แต่เขียน App ตัวนี้ 5 นาทีเสร็จ

โดยรวมเป็นการทดสอบว่า Syntax VB.NET ที่เราคุ้นเคยทำงานได้ไหม และลองดูว่า การเขียน App บน Windows Mobile นี่มันยากหรือเปล่า ลองเล่น ๆ ดู ถ้ามี idea เราคงได้เจอกัน ;P

แล้วเจอกันใหม่ครับ ;)