"Yesterday is gone and Tomorrow may never come so.. Live for Today!!"
ความท้าทายของ Windows Phone
6 Dec 2012 16:06   [14803 views]

ผ่านโค้งแรกไปเรียบร้อยแล้ว หลักจากสตาร์ทไม่ติด เครื่องดับจนขยับมาเข้าตลาดแบบจริงจังไม่ได้สักทีมาสองปี สำหรับ Windows Phone ที่ดิ้นรนออก Windows Phone 7.0, 7.1 และ 7.5 แต่ดันกากมากจนไม่มีใครคิดจะใช้ แม้แต่ผู้ผลิตยังเบือนหน้าหนี เล่นเอาหุ้นโนเกียผู้ผูกชีวิตกับ Windows Phone ร่วงลงต่ำสุดตั้งแต่เข้าตลาดหุ้นมา แต่ตอนนี้พอ Windows Phone 8 ออกมา ถือว่านี่แหละ "ของจริง" ซึ่งหลังจาก Lumia 920 ออกวางขาย ชีวิตโนเกียก็ดีขึ้นตามลำดับ ล่าสุดมีข่าวว่ายอดจองผ่านไปแล้ว 2.5 ล้านเครื่อง และของขาดตลาดที่สหรัฐฯ อีกทั้งยังมีเซ็นสัญญากับจีนจะวางขายกับ China Mobile ทำเอาหุ้นพุ่งถึงเกือบ $4 แล้ว (จากที่เคยตกเหลือ $1.7 - แต่ก่อนวันที่ Elop ประกาศมัน $11 นะ - เอิ่ม)


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


โค้งที่สองที่ชื่อว่า Application

ช่วงนี้มีโอกาสได้ใช้ Windows Phone 8 แบบจริงจัง โดยได้รับการอุปการะจาก HTC ที่ส่ง Windows Phone 8X มาให้ใช้ จึงได้เล่นและทดลองอะไรหลายๆอย่างทั้งด้านการใช้งานและด้านการพัฒนา

สิ่งที่จับต้องได้คือ ระบบปฏิบัติการมันพร้อมแล้ว พร้อมที่จะลุยตลาดแบบจริงๆ ไม่กากกาไร้ค่าเหมือนรุ่นก่อนๆที่ผ่านมา ถึงปัญหาจะมีอยู่เรื่อยๆ แต่ก็โอเค นั่นแปลว่าโค้งแรกมันทำมาได้ดีแล้ว แต่สิ่งที่เป็นความท้าทายของ Windows Phone จากนี้คือโค้งต่อไป "แอพลิเคชั่น" ก็คิดจะเป็น Smartphone แต่ถ้าไม่มีแอพฯดีๆคนก็ไม่ใช้กันหรอก


ในขณะที่โลกกำลังหมุนไปในลักษณะ "คุณมีแอพฯบน iOS หรือ Android หรอ? คุณพอร์ตมาได้ง่ายๆเลยนะด้วยวิธีนี้ๆๆๆ" แต่สำหรับ Windows Phone มันไม่ใช่ครับ Microsoft อินดี้ มีแนวคิดเป็นของตัวเอง เพราะคุณไม่สามารถพอร์ตแอพฯมาลง Windows Phone ง่ายๆด้วยวิธีใดเลย ด้วยเหตุผลหลักๆสองเหตุผล


1) มี UI เป็นของตัวเอง

UI ของ Windows Phone มีความแหวกออกไปจากเจ้าอื่นๆโดยสิ้นเชิง หากให้จัดกลุ่มแล้ว iOS, Android, BB10, Sailfish OS, MeeGo, Symbian ทุกตัวล้วนไปในทางเดียวกันหมด ดังนั้นจึงสามารถใช้ UI ร่วมกันได้หมด แต่สำหรับ Windows Phone ... คุณต้องออกแบบใหม่หมดครับ เป็นระบบปฏิบัติการเพียงตัวเดียวที่แปลกแยกกว่าคนอื่นเค้า โดย UI Guideline ของมันก็ทำออกมาได้งงพอควร กว่าจะเข้าใจได้ทั้งหมดก็กระอักเลือด แถมการตรวจแอพฯขึ้น Store ก็ลำบากถ้าหากออกแบบ UI แหวกออกไปจาก Metro UI โดย Fact ข้อหนึ่งที่หลายๆคนคงไม่รู้คือ แต่ก่อนจะไม่รับแอพฯที่ออกแบบไม่ตรงตาม UI Guideline เลย ส่วนตอนนี้รับแล้ว แค่ถ้าไม่ตรงก็จะไม่มีโอกาสได้ขึ้นหน้าแรกของ Store

นี่ถือว่าเป็นความท้าทายของ Windows Phone เป็นอย่างมากเพราะสำหรับการตัดสินใจจะมาทำแอพฯลง Platform ซึ่งยังกินส่วนแบ่งตลาดได้ไม่ถึง 10% แล้วยังต้องออกแบบแอพฯใหม่ทั้งหมด ทุกหน้า ทุก UI ทุก UX ย้ำอีกทีครับว่า "ทั้งหมด" แล้ว Microsoft และ Manufacturer เจ้าต่างๆจะต้องผลักดันนักพัฒนาอย่างเต็มที่ เพื่อให้นักพัฒนามองเห็นว่าประเด็นนี้ไม่ใช่ปัญหา มิฉะนั้นมันจะเป็นกำแพงอันใหญ่ที่ทำให้แอพฯต่างๆไม่มาลงบน Windows Phone เลย

2) มีภาษาเป็นของตัวเอง

ความหวังหนึ่งของการ Port เกมมาลงแบบได้เลยทันทีคือ OpenGL แต่ Windows Phone อินดี้อีกแล้วครับ เพราะมันไม่สนับสนุน OpenGL เว้ยยย อยากจะทำเกมก็เชิญโน่นครับ XNA หรือ DirectX ถ้าจะมีก็มี Tools สำหรับแปลง OpenGL ให้เป็น DirectX อยู่ เช่น AngelProject ซึ่งสามารถลดช่องว่างระหว่าง OpenGL และ DirectX ได้ แต่อย่างไรก็ตามมันไม่ได้เกิดมาเพื่อ Windows Phone แต่มันมีไว้สำหรับ Windows ตัวใหญ่ และส่วนตัวยังไม่เคยใช้ เลยบอกไม่ได้ว่ายังไง แต่อย่างน้อยมันก็เป็นแค่ "ทางช่วย" ไม่ใช่ทางตรง คิดว่าคงต้องใช้ Effort อีกเยอะในการ Port เกมทั้งตัวมาได้

แล้วถ้าไม่พูดถึงเกม แต่พูดถึงแอพฯ โครงสร้างภาษาของ C# อาจจะดูคล้าย Java ก็จริง แต่พอเอาเข้าจริงมัน Share Code กับ Android ไม่ได้เลย ต้องเขียนใหม่ทั้งหมด โชคดีที่ Windows Phone 8 สามารถเขียนโปรแกรมด้วย C++ ได้แล้ว ทำให้สามารถ Port ส่วนของโค้ดที่เขียนด้วย C++ มาลง WP8 ได้โดยง่าย แต่เรื่องของ UI ยังไงก็ต้องทำด้วย XAML หรือ DirectX อยู่ดีนะ แต่แค่นี้ก็ดีขึ้นมากละ


ด้วยสองเหตุผลหลักนี้ Microsoft จะต้องผ่านความท้าทายที่ว่า "จะทำยังไงให้ผู้พัฒนายอมออกแบบแอพฯใหม่ทั้งหมดเพื่อเอามาลงบน Windows Phone"


แอพฯเขียนง่าย สวย แต่ไร้ซึ่งความคิดสร้างสรรค์

หลังจากที่จับ Windows Phone 8 Programming มาสักพัก ต้องบอกว่ามันเขียนง่ายโคดดดดดดด ง่ายกว่า iOS ด้วยซ้ำ นี่ไม่ต้องพูดถึงแอนดรอยด์ที่เขียนแอพฯดีๆยากจัดๆ การจะทำแอพฯให้ Deliver to Market นั้นสั้นกว่า Android เป็นสิบเท่า ปัญหา Fragmentation ก็ไม่ค่อยมี แต่ในความง่ายนั้นก็เพราะ UI มันจำกัดสุดๆ มี UI อยู่แค่ 3-4 แบบเท่านั้นที่อนุญาตให้ใช้บน Windows Phone ผู้ใช้ทุกท่านคงทราบดีแล้วว่ากดไปแอพฯไหนก็หน้าตาเหมือนกันไปหมด


นี่คงเป็นข้อดีและข้อเสียที่เห็นได้เด่นชัด ข้อดีคือเขียนง่าย Deliver ง่าย แป๊บๆปั้มเสร็จแล้ว สวยด้วยนะ แต่ข้อเสียคือ ทำกี่แอพฯหน้าตาก็เหมือนกัน จะพยายามแตกต่างยังไงก็ทำไม่ได้ เลยกังวลว่าแอพฯดีๆที่มี Creativity น่าจะไม่ปรากฎให้เห็นบน Windows Phone บ่อยนัก แต่มันอาจจะดีก็ได้ Microsoft อาจจะคิดไว้แล้ว ...


ถึงเวลาแล้วสำหรับนักพัฒนา

คำถามยอดฮิตที่พิราบบินคาบมาส่งข้าพเจ้าเรื่อยๆคือ "ทำแอพฯบน Windows Phone ดีมั้ย?" กรณีนี้เราไม่พูดถึงเรื่องทำเล่นนะครับ เราพูดถึงทำจริงเพื่อหาเงินเท่านั้น เพราะทำเล่นก็ทำไปเถอะ ไม่มีปัญหาอยู่แล้ว ส่วนถ้าจะทำจริงจังเราขอให้คำตอบว่า


"มันถึงเวลาแล้วสำหรับนักพัฒนาที่จะต้องเริ่มทำแอพฯบน Windows Phone

แต่ขอให้มองมันเป็น Platform รอง ไม่ใช่ Platform หลัก

ถ้าจะทำแอพฯ ให้ทำบน iOS หรือ Android ก่อน

แล้วค่อยเอามาลง Windows Phone"


อย่างไรก็ตาม ถ้าคุณคิดจะทำแอพฯแค่บน Windows Phone ก็ไม่ผิด ลุย Windows Phone เป็น Platform แรกเลยก็ได้ เพราะข้อดีคือตลาด Windows Phone ยังเป็น Blue Ocean อยู่ มีพื้นที่ให้เข้าไปโด่งดังได้ทันที ถ้ามาแนวนี้ผมก็สนับสนุนความคิดครับ เพราะ Windows Phone ตอนนี้มันมาแล้วจริงๆ แต่แอพฯดีๆยังไม่มี ถ้าทำแล้วเอาขึ้นไปตอนนี้ คุณก็ดังได้ด้วยพลัง Community ทั่วโลก

ก่อนหน้านี้วางแผนจะปล่อย MOLOME for Windows Phone ภายใน Q4 2012 แต่สุดท้ายก็ทำไม่ได้เพราะ Microsoft เปิดตัว Windows Phone 8 ช้าเกินไป ทำให้เราศึกษาและวางแผนไม่ทัน และมือถือ Windows Phone ก็ไม่ขายในไทยสักที เอามาทดสอบก็ไม่ได้ ขอยืมก็ไม่มี - - เลยเลื่อนไปเป็นปีหน้าแทน น่าเศร้าเนอะ ... อาจจะสงสัยว่าจะศึกษาและวางแผนอะไรนักหนา? ไปอ่านหัวข้อต่อไปครับ


ลุย Windows Phone 8 ช่าง Windows Phone 7.x ไปเลย

เล่น Windows Phone มาตั้งแต่ 7.0 สรุปได้ดังนี้

"7.0 คือ Alpha

7.1 คือ Alpha B

7.5 คือ Beta

7.8 คือตัวป้องกัน Drama (และมาหลัง 8.0)

แล้วพอ 8.0 มา นี่สิถึงจะเป็น Windows Phone เวอร์ชั่นแรกจริงๆ"


คำถามในใจก่อนหน้านี้คือ "เราจะทำบน 7.5 หรือจะทำบน 8.0 ดีนะ" พอได้เล่น 8.0 จริงๆ อ่านทั้งเรื่องปัญหาและข้อดีข้อเสีย จึงสรุปได้ว่า

"ลุย Windows Phone 8 ไปเลยครับ ส่วน 7.x ช่างมัน"

มีหลากหลายสาเหตุเลยหละว่าทำไม หลักๆคือ


1) 7.x กับ 8 มันคนละโครงสร้างกันเลย

7.x เหมือนการลองผิดลองถูก แล้วปรากฎว่ามันคือการลองผิด ... หากได้เขียนโปรแกรมจะรู้ว่า Syntax อาจจะเหมือนกัน แต่พวก namespace มันต่างกันหมดสิ้น เพราะ 7.x เป็น Silverlight ส่วน 8 โยน Silverlight ทิ้งเป็นที่เรียบร้อย หรือแม้กระทั่งเกม ก็โยน XNA ทิ้ง ไปซบอก DirectX ลองอ่านแล้ว ไม่อยากให้มองว่า 7 กับ 8 เป็น OS ตัวเดียวกันเลย มองภายนอกอาจจะเหมือนกัน ผู้ใช้อาจจะไม่รู้สึกอะไร แต่สำหรับนักพัฒนาควรจะเข้าใจว่าไส้ในไม่เหมือนกันเลย ถามว่า Windows Phone 8 เหมือนกับอะไร? จริงๆมันเหมือนกับ Windows 8 มากกว่า Windows Phone 7 ครับ ตามนั้น


2) การสนับสนุน 7.x จะส่งผลเสียระยะยาวต่อแอพฯด้วยสาเหตุเรื่องข้อจำกัด

จริงอยู่ที่ถ้าเขียนโปรแกรมด้วย 7.x จะสามารถเอาไปรันบน 8 ได้ แต่ผลที่ได้คือแอพฯจะไม่เต็มจอ ซึ่งผลเสียนี้ถือว่าเล็กน้อยมากเมื่อเทียบกับการที่เราจะต้องพลาด API ที่ "จำเป็นต้องใช้บนแอพฯดีๆ" ที่มีอยู่บน Windows Phone 8 เท่านั้น คุณจะเสียโอกาสจากข้อจำกัดตรงนี้ซึ่งต้องบอกว่าไม่คุ้มเลย


3) In-App Purchase ใช้ได้บน Windows Phone 8 เท่านั้น

นี่คือหนึ่งใน API ที่จำเป็นต้องใช้ในการหารายได้ การขายแอพฯบน Windows Phone อาจจะไปได้ดีในช่วงแรกที่ตลาดยัง Blue Ocean อยู่ หากแต่มันจะเป็นการหารายได้แบบ Short Term มากๆ เมื่อเวลาผ่านไปแอพฯคุณก็จะหารายได้ไม่ได้อีก ในโลกปัจจุบันทุกคนหันไปหา In-App Purchase เยอะขึ้น เพราะว่ามันกินยาว ได้รายได้เรื่อยๆและทำให้ผู้ใช้ผูกพันธ์กับแอพได้อีกด้วย เช่น LINE ที่คุณซื้อสติกเกอร์ไว้แล้ว จะย้ายไปใช้แอพฯอื่นก็เสียดายเงินที่ซื้อสติกเกอร์ไปใช่มั้ยหละ


4) ทั้ง Microsoft และ Manufacturer ต้องการดัน Windows Phone 8 ไม่ใช่ 7.x

แค่หัวข้อก็อธิบายทุกอย่างครบแล้วครับ


อย่างไรก็ตามมันมี Trade Off เพราะคุณจะเสียคนกลุ่ม Pioneer ที่ตั้งถิ่นฐานอยู่บน Windows Phone 7.5 (ที่มีอยู่ไม่เยอะแต่มีความเข้มข้นระดับสาวก) แต่ผมแนะนำให้ยอมเสียไปเถอะ


"หากคุณต้องการผูกติดกับปัจจุบัน ทำบน 7.x ไป

แต่ถ้าคุณต้องการวางแอพฯคุณเพื่ออนาคต(อันใกล้และอีกยาวไกล)

ลุย 8 ไปเลยครับ"


จบบทความในวันนี้ รอลุ้นว่า Windows Phone จะเป็นยังไงต่อไป แต่ส่วนตัวค่อนข้างมั่นใจว่ายอดขายจะสูงขึ้นเรื่อยๆ และคงไม่ตายแล้วแน่นอน ที่ลำบากคือกว่าจะมีแอพฯดีๆมันต้องใช้เวลามากน้อยแค่ไหน ขึ้นอยู่กับ Microsoft และผู้ผลิตมือถือที่จะดันแล้วครับ ซึ่งคิดว่าคนที่ดันแรงสุดน่าจะเป็น Nokia เพราะผูกชีวิตไว้กับ OS นี้เรียบร้อย


พบกับใหม่กับ Blog หน้า เกี่ยวกับ BB10 (ที่กำลังรวบรวมข้อมูลอยู่อย่างยากลำบาก) รอติดตามชมครับ บ้ายบาย แว้บบบ

บทความที่เกี่ยวข้อง

Nov 26, 2011, 18:36
7494 views
[AWS] ย้าย EC2 ข้าม Region
Mar 25, 2013, 14:10
22036 views
บันทึก เมื่อเนยต้องเขียน BB10 Cascade
0 Comment(s)
Loading