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

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

เรื่องเล่าของ 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)

ไม่รู้จะอธิบายยังไง? “สิ่งที่ควรจะมีในใบเสนอราคาตอนรับทำเว็บ”

จากทวีตที่ได้ทวีตไป

ผมอยากทำเว็บแนว Facebook แต่ผมมีงบ 50,000 บาท คุณพอช่วยผมได้ไหม" #อยากเอาหัวโขกข้างฝาตาย ><"

คือถ้าคุณต้องการทำเว็บแนว Social Network หรือจริงๆ ก็อะไรที่มีคนเข้าเยอะๆ หลักหมื่นหรือแสนคนต่อวันขึ้นไป มันไม่ใช่แค่คุณมีเว็บที่เขียนด้วยภาษาโปรแกรมมิ่งอย่างเดียวแล้วจบนะ มันมีเรื่องของการออกแบบหน้าตาของเว็บ (ซึ่งหลังๆ มืออาชีพในสายงานนี้มักจะคิดราคาแยกต่างหากกันอยู่แล้ว) และระบบ Server/Infra ที่มารองรับการใช้งานตัวเว็บซึ่งอยู่เบื้องหลังอยู่อีก
โดยต้องบอกก่อนเลยว่า ยิ่งคนเข้าเว็บที่คุณสร้างขึ้นมาเยอะเท่าไหร่ คุณก็ต้องจ่ายออกไปเป็นค่าระบบที่เอามารองรับการเข้าเว็บมากขึ้นไปด้วย นี่ยังไม่รวมค่า b/w ที่คุณต้องจ่ายให้ IDC ด้วยนะ เพราะถ้าคุณฝากตัวระบบไว้ในประเทศไทย link ระหว่างประเทศของคุณจะมีค่ามากๆ โดยราคาหลัก 1 Mbps อยู่ที่หลักหมื่นบาทหรือหลายหมื่นต่อเดือน (Link ของ IDC ต่อ inter connection)
นี่ยังไม่รวมสิ่งที่ผมมักผมเจอบ่อยๆ กับคนที่อยากได้เว็บไซต์เป็นของตัวเอง แต่ไม่ทราบว่าต้องมีการจดชื่อเว็บ (Domain Name) และพื้นที่สำหรับฝากไฟล์เว็บที่จัดทำขึ้น (Web Hosting) ซึ่งมีค่าใช้ย้ายแบบเช่าใช้งานเป็นรายปี (หรือรายเดือน) ซึ่งเป็นราคาที่แยกต่างหากจากค่าเขียนระบบและงานออกแบบหน้าเว็บอีกด้วยนะ

ซึ่งทั้งหมดรวมกันแล้วจะมีการใช้เงินลงไปในเนื้องานอยู่พอสมควร ผมว่าคนที่เคยรับทำคงตีราคาคราวๆ ได้ว่าเท่าไหร่

จากที่บอกไป คงพอทราบภาพใหญ่ๆ แล้วว่าปรกติทำเว็บ 1 เว็บเนี่ยเรามีปัจจัยอะไรบ้าง (มันเยอะนะ แต่อันนี้ผมเอาแค่หลักๆ พอ)

แล้วเวลาผมเสนองานต่างๆ ผมคิดโครงสร้างและแบ่งส่วนงานในการเสนอราคาเป็น checklist ดังต่อไปนี้

  1. Data ETL.
    เป็นค่าใช้จ่ายในการกรอกข้อมูลใหม่ หรือการแปลงข้อมูลเข้าระบบจากระบบหนึ่งมาที่ระบบที่พัฒนาใหม่ และรวมถึงการจัดระเบียบข้อมูลที่ลูกค้าส่งมาแล้วใส่ลงในระบบ อันนี้บางครั้งเราก็ไม่แน่ใจว่ามีข้อมูลตั้งต้นเยอะแค่ไหน บางครั้งเจอข้อมูลจำนวนมากๆ จนต้องจ้างคนมาช่วยใส่ข้อมูลให้ก็มี เพราะฉะนั้นต้องคิดถึงตรงส่วนนี้ไว้
  2. Translate UI
    กรณีที่ระบบมีหลายภาษา ก็ต้องมีการแปลหรือจ้างคนมาแปล และในหน้า UI ก็ต้องมาไล่แก้ไขภาษากันทุกๆ String ซึ่งใช้เวลาอยู่พอสมควร
  3. Theme and CSS Layout Design
    งานออกแบบหน้าเว็บและการตัดหน้ากราฟฟิกต่างๆ ของเว็บ โดยอาจจะมีราคา Font ที่ใช้ในการทำ Theme และราคาของรูปภาพต่างๆ ที่นำมาใช้ในตัวเว็บใส่เสนอมาด้วย ซึ่งบางภาพอาจจำเป็นต้องซื้อจาก Stock Photo ต่างๆ ซึ่งทั้งราคาของ Font และ Stock Photo นั้นจะถูกหรือแพงขึ้นอยู่กับการนำไปใช้ในสื่อใดบ้าง และในส่วนรูปภาพก็ราคาตามขนาดของรูปภาพและระยะเวลาในการนำไปใช้ (ในกรณีที่ไม่ได้ซื้อขาดมาเลย)
  4. General Implement
    การ Implement ระบบ ถ้ามีการ Custom ก็เพิ่มเป็น 3.1 – 3.n ไป แต้ถ้าแยกจนเป็นระบบใหม่ ก็เป็นข้อใหญ่ 4. – N. ไปซึ่งการแก้ไขงานในส่วนนี้ก็ต้องคิดเป็นราย issue ไป รวมไปถึงการปรับเพิ่ม-ลดระยะเวลาของงานนั้น ต้องตามความเหมาะสมในการแก้ไขงาน โดยการแก้ไขงานแต่ละครั้งต้องมีขอบเขตชัดเจนและมีจำนวนครั้งจำกัดหรือกำหนดระยะเวลาในการรอการ feedback เพื่อปิด issue ไม่งั้นเจอลูกค้าลากยาวจนลืม และเป็นการกำหนดกรอบเวลาให้ลูกค้าด้วยว่าต้องใส่ใจในการส่ง feedback กลับมา
  5. Domain Name
    ชื่อเว็บ ถ้ามีอยู่แล้วก็ไม่ได้คิดเงินเพิ่ม อะไร นอกจากลูกค้าจะมีเรื่องการย้าย หรือเรื่อง support อื่นๆ ถ้าไม่ได้เยอะก็แถมๆ ไป แต่ถ้าต้องดำเนินเรื่อง หรือย้ายมาให้เราดูแลก็คิดเงินไปตามเนื้อผ้า
  6. Web Hosting
    หรืออาจจะเป็น Dedicated server, Colocation server or Cloud server อันนี้ปรกติตอนแรกก็ต้องดู scale เล็กกันก่อน แล้วค่อยไปเล่น scale ใหญ่ ขึ้นอยู่กับวัตถุประสงค์ของงาน
  7. Training & Document
    ค่าทำเอกสารคู่มือ และอบรบการใช้งานต่างๆ ตรงนี้ต้องคิด เพราะมีค่าเดินทางและค่าสอนด้วย จำไว้เสมอค่าทำระบบไม่รวมค่าทำเอกสารครับ ไม่งั้นคุณต้องใช้เวลาทำเอกสารพอๆ กับทำระบบกันเลยทีเดียว (ยิ่งมีการแก้ไขระบบก็ต้องกลับมาแก้เอกสารด้วย)
  8. Maintenance
    ค่าดูแลและแก้ไขข้อผิดพลาดของระบบ ปรกติผมจะเน้นเรื่อง bug และ security เป็นหลัก ตรงนี้คิดเป็นรายปี ซึ่งไม่เกี่ยวกับ new feature ที่มันมาเพิ่มในข้อ 3. ด้านบน ตรงนี้ลูกค้าต้องจ่ายไม่อย่างนั้นก็ต้อง support ตัวเองไปหลังจากที่ระบบขึ้นไปแล้ว โดยปรกติผม Maintenance ให้แบบยังไม่คิดค่าใช้จ่ายในระยะเวลาหนึ่งเท่านั้น โดยเป็นช่วงหลังจากส่งมอบงานแล้วขั้นต่ำ 1 เดือน สูงสุด 3 เดือน

อันนี้คือคราวๆ ที่ผมคิดไว้นะ ซึ่งจะเห็นว่าจะมีครบตั้งแต่ input, process, output และ maintenance ส่วนตัวแล้วคิดว่าครอบคลุมในสิ่งที่ลูกค้าส่วนใหญ่ที่รับๆ มา และบางอย่างเป็นสิ่งลูกค้านึกไม่ถึง ซึ่งต้องบอกก่อนเลยว่า บางอย่างไม่คิดเนี่ยขาดทุนแน่ๆ ครับ

หลายคนคงถามว่า ถ้าคิดรวมไปในราคาส่วนใดส่วนหนึ่งได้ไหม ก็ตอบว่าได้ครับ แต่ถ้าแยกแยะออกมาจะทำให้เห็นภาพชัดเจนว่าลูกค้ามีค่าใช้จ่ายส่วนใดบ้างจริงๆ จะลดการตอบคำถามลงไปได้เยอะ เราจะอธิบายได้ชัดเจนมากๆ ว่าแต่ละส่วนเราทำอะไร และถ้าเค้าต้องการตัดออกจะลดค่าใช้จ่ายไปเท่าไหร่