"You are not perfect..., that's why you are perfect."
เปิดโลก Nokia X ภาค Developer (เกือบ)ทุกเรื่องที่นักพัฒนาควรรู้
25 Feb 2014 12:42   [13980 views]

เมื่อวานโนเกียเปิดตัว Nokia X อย่างเป็นทางการเป็นที่เรียบร้อยแล้ว แน่นอนว่ามันเป็นแอนดรอยด์อย่างที่คาดการณ์กันไว้ แต่บนเวที Elop ไม่ได้บอกว่ามันเป็นแอนดรอยด์ บอกเพียงว่ามันรันแอพฯแอนดรอยด์ได้ (เพราะ Android เป็น Trademark ไม่ใช่ว่าใครจะไปใช้พูดเปิดตัวได้) แต่ในช่วง Q&A โนเกียก็มีหลุดพูดมาอยู่ว่า "มันทำงานโดยใช้ Android เป็นคอร์หลัก เพียงแต่โนเกียเสริมประสบการณ์ใหม่เข้าไป On Top"

เมื่อวานก็มีซนนิดหน่อยกับเจ้า Nokia X นิดหน่อย ... ความจริงก็ไม่นิดอ่ะ เยอะเลย ก็เลยมาขีดๆเขียนๆแบ่งสิ่งที่เรียนรู้มาเล่าให้ฟังกันหน่อยละกัน

เริ่ม !

เปล่า โนเกียไม่ได้เปลี่ยนไปใช้แอนดรอยด์

ก่อนอื่นก็ต้องเขียนบทวิเคราะห์นิดหน่อย เพื่อให้รู้ว่า Segment ของ Nokia X อยู่ตรงไหน และทำไมโนเกียถึงทำขึ้นมา เป็นข้อมูลที่จำเป็นต่อเหล่านักพัฒนาที่จะต้องใช้ประกอบการตัดสินใจว่าจะไปเล่นตลาดนั้นหรือไม่

หลายคนเห็นว่าโนเกียปล่อยมือถือแอนดรอยด์มา ก็เลยคิดว่าโนเกียคงจะหมดหวังกับ Windows Phone แล้ว และเปลี่ยนมาใช้แอนดรอยด์ แต่ไม่ใช่ ความจริงโนเกียวาง Segment ไว้ค่อนข้างชัดเจนมากว่า Nokia X จะเป็น Product Line ที่มาเติมตรงตลาดระหว่าง Asha และ Windows Phone

ทำไมต้องเติมเต็มหละ?

จากการประกาศบนเวที ทำให้เห็นได้ชัดว่า Asha ขายดีกับรุ่น 1xx และ 2xx ซึ่งเป็นรุ่นราคาถูกเท่านั้น แต่ Asha รุ่นราคาที่สูงมาหน่อยกลับไม่มีพูดถึง นั่นก็พออนุมานได้ว่า ตลาด Asha 3xx, 4xx, 5xx ไปได้ไม่สวย และรุ่นที่กระโดดถัดไปคือ Lumia 520 ที่ขายดีมาก แต่ราคาก็เกินกว่า Asha ไปพอสมควร

โนเกียจึงมองหามือถือทางเลือกที่สามารถเติมเต็ม Segment ที่ตัวเองไปได้ไม่ดีตรงนี้ คือมือถือช่วงราคา 2000 - 5000 บาท และทางเลือกที่ดีที่สุดในขวบปีนี้คือ AOSP (Android Open Source Project)

คำถามถัดไปคือ จะให้มันใช้พวก gapps ด้วยได้มั้ย?

จากจุดประสงค์ของโนเกียที่จะทำมือถือของตัวเอง ให้บริการของตัวเอง ไม่ได้ตั้งใจจะไปชนกับ Android Phone เจ้าต่างๆ ก็ทำให้โนเกียได้คำตอบว่า "ไม่เอา gapps มาด้วย" แต่ "แทนที่ด้วย Microsoft Service เข้าไปแทน"

และจากการประกาศตรงนี้ก็ทำให้ได้รู้ว่าโนเกียไม่ได้ทำโปรเจค Nokia X เล่นๆ แต่เปิดเป็น Product Line ใหม่อย่างเป็นทางการเลย แต่จะได้รับความยินยอมจาก Microsoft หรือไม่ อันนี้ก็ไม่รู้แฮะ ดูไม่ออก

สรุปแล้ว โนเกียไม่ได้สลับไปใช้ Android แต่อย่างใด แค่ต้องการเติมเต็มช่องว่างตลาดที่ตัวเองอ่อนอยู่ด้วยมือถือ Android Fork นามว่า Nokia X Platform ส่วนตลาดบนก็ยังเป็น Windows Phone ต่อไป และตลาดล่างก็เป็น Asha ต่อไป

มีคำถามช่วง Q&A ที่น่าสนใจอย่างนึงคือ "ทำไมไม่กดราคา Windows Phone ลงแทน" ทางโนเกียก็ตอบกลับว่า "เราเชื่อว่าเรากดราคา Nokia X ลงได้ต่ำกว่า"

Nokia X Platform รันแอพฯแอนดรอยด์ได้ แต่ไม่ทั้งหมด

แน่นอนว่าเมื่อโนเกียตัดสินใจไม่เอา gapps มาด้วย พวก Google APIs ทั้งหลายก็เลยไม่ได้ติดมาด้วยเช่นกัน เนื่องจากมันไม่ได้อยู่ใน AOSP

ทำให้แอพฯจำนวนหนึ่งไม่สามารถรันบน Nokia X ได้ เพราะไปเรียกใช้ API เหล่านี้นั่นเอง แอพฯจะ Crash ทันทีที่ไปเรียกโดน API เหล่านี้

ข่าวดีคือจากสถิติ 75% ของแอพฯที่อยู่บน Google Play Store สามารถนำมาใช้บน Nokia X ได้อย่างไม่มีปัญหา เพราะไม่มีการเรียกใช้ Google APIs ใดๆ

ข่าวร้ายคือมีถึง 25% ที่ต้องแก้โค้ด ...

ดังนั้นอย่าชะล่าใจว่าแอพฯเราต้องรันบน Nokia X ได้แน่ๆ ซึ่งโนเกียก็เข้าใจนักพัฒนาดีมาก จึงจัดเตรียมอะไรหลายๆอย่างมาจนทำให้เราประทับใจมากเลยทีเดียว

Analyser เครื่องมือวิเคราะห์ว่าแอพฯคุณจะรันบน Nokia X ได้หรือไม่

เบื้องต้นเลย นักพัฒนาทุกคนต้องมีไฟล์ apk อยู่ในมืออยู่แล้ว โนเกียก็เลยจัด Analyser มาให้ช่วยวิเคราะห์ว่าแอพฯจะสามารถใช้งานได้เลยมั้ยและมีอะไรที่คุณต้องแก้ไขบ้าง

โดยระบบจะวิเคราะห์ให้ (ดูแล้วน่าจะจาก Manifest) ว่าแอพฯคุณมีการเรียกใช้อะไรที่ Nokia X ไม่ Support หรือไม่

งานนี้ก็เลยทำให้รู้ว่า Nokia X ไม่สามารถเรียกใช้ GCM และ In-App Billing ได้ (ก็เพราะมันเป็นบริการของกูเกิ้ลนั่นเอง) น้ำตาซึมเล็กๆ

แต่โนเกียทำการบ้านมาดีสราดดดดด เพราะโนเกียจัดเตรียมทางแก้ไว้ให้เรียบร้อย (นานๆจะได้ความรู้สึกนี้สักที ทุกปัญหามีทางแก้)

โนเกียเตรียมพร้อมมาดีมาก มี Replacement ของ API สุดจำเป็นที่ขาดไปอย่างพร้อมสรรพ

API ที่แอพฯแอนดรอยด์มีการเรียกใช้เยอะมากจนเรียกว่าเป็น API ที่จำเป็นเลย มีอยู่ 3 อย่างด้วยกัน ได้แก่

- GCM (Push Notification)

- In-App Billing

- Google Maps

และ Amazing มากที่โนเกียเตรียม API Replacement ไว้เรียบร้อยตั้งแต่วันแรกที่เปิดตัวอย่างนี้ !

ไม่ใช่แค่เตรียม API มา แต่ทำมาอย่างสวยงามมากเสียด้วย ทุกคำสั่ง ทุก Interface ถูกเรียกใช้เหมือนเดิมทุกประการ แค่ต้องเปลี่ยน namespace ให้กับคำสั่งและ Permission ก็สามารถเรียกใช้ได้แล้ว ยกตัวอย่างเช่น Push Notification แค่ยัด Library ของ Nokia X เข้าไปในโปรเจคแล้วเปลี่ยนคำสั่งต่างๆให้ตรงกับ Guideline ตามนี้

ความจริงยังมีอีก พวกคำสั่งต่างๆที่เกี่ยวข้องกับ GCM บนแอพฯ ก็ต้องเปลี่ยนให้เป็นของโนเกียให้หมด แต่ดูแล้วก็ไม่ได้ยากอะไร น่าจะใช้เวลาไม่เกิน 1 ชั่วโมงพร้อมเทสต์ ทุกอย่างก็น่าจะเสร็จ

ส่วนตอนยิงก็ยิงไปที่ https://nnapi.ovi.com/nnapi/2.0/send แทนที่จะยิงไปที่ GCM ... แค่นั้นทุกอย่างก็เสร็จแล้วจ้าาาา เจ๋งป่ะหละ !

ถ้าเขียนโค้ดดี เช็คพวก Dependency อย่างถูกต้อง ก็สามารถ Maintain Source ให้เป็น Source เดียว แล้วตอนคอมไพล์ก็ใช้ apk ตัวเดียวกันได้เลย เสียแรงเพิ่มอีกเพียงนิดเดียว แต่ก็ไปลง Nokia Store ได้ละ

ส่วน In-App Payment ก็ไปในทางเดียวกัน ลอก Interface กันมาเด๊ะๆ แค่บางข้อมูลอาจจะหายไป และสิ่งที่อาจจะดูวุ่นวายขึ้นมาหน่อยคือ ต้องไปไล่ Add In-App Payment Item เข้าไปในหลังบ้าน Nokia Store ต้องมา Maintain เพิ่มอีกที่ น่าปวดหัวเบาๆ (ตอนนี้เพิ่ม In-App ที ต้องเพิ่ม 4 Stores -0-) แต่ก็น่าจะคุ้มแหละ เพราะเชื่อว่า Nokia X ต้องขายดีมากแน่ๆ เป็นการลงทุนที่คุ้มค่า โนเกียอุตส่าห์เตรียมมาดีขนาดนี้แล้ว

Remote Device Access (RDA) ทดสอบแอพฯบน Nokia X เครื่องจริงแบบ Remote

หลังจากทดสอบกับ Analyser แล้ว ก็ยังไม่แน่ใจ 100% ว่าจะรันบนเครื่องจริงได้ใช่มั้ยล่า (เป็นเรื่องปกติของชีวิต)

ดังนั้นเรามาทดสอบบนเครื่องจริงกัน ! ... ไม่ ไม่ ไม่ต้องซื้อ โนเกียเตรียมเครื่องมืออันแสนมีประสิทธิภาพอย่าง Remote Device Access (RDA) ไว้เพื่อการนี้เรียบร้อยแล้ว

Remote Device Access คือบริการที่โนเกียเปิดให้เราสามารถ Remote ไปเทสต์เครื่องจริงได้แบบออนไลน์ คืออัพไฟล์ APK ขึ้นไปเทสต์บนเครื่องจริงได้เลย และงานนี้โนเกียจริงจังกับ Nokia X มาก เพราะถมเครื่องไว้จำนวนมหาศาล เยอะกว่ารุ่นอื่นๆราว 10 เท่าเลยทีเดียว

วิธีเข้าใช้ก็ไม่ยุ่งยาก เชื่อว่าทุกคนสามารถเข้าไปจิ้มเรียนรู้เองได้ ก็ไปจิ้มกันได้ที่ http://developer.nokia.com/resources/remote-device-access จ๊ะ หลักๆคือต้อง Reserve เครื่อง ขอใช้งาน มีช่วงเวลาให้เลือก ถ้าเครื่องว่างเราก็เข้าไปใช้ได้ทันที ถ้าจะหมดเวลาแล้วงานยังไม่เสร็จ ก็ Expand ช่วงเวลาได้ อารมณ์เหมือนเล่นเนตคาเฟ่นั่นแหละ เอิ๊กๆ

งานนี้ก็เลยลองทดสอบ MOLOME บน Nokia X ดูกับเค้าด้วย

ก็พบว่าสามารถเปิดแอพฯขึ้นได้ แต่พอถึงช่วงที่เรียกคำสั่ง GCM ปุ๊บ ก็ Crash ทันทีเลย เลยต้องมานั่งแก้อีกนิดอีกหน่อย สองวันคงจะเอาขึ้น Store ได้

การ Submit แอพฯขึ้น Nokia Store

ทันทีที่เปิดตัว Nokia X เสร็จ Nokia Store ก็เปิดให้อัพโหลด Nokia X Application ขึ้นทันที

สำหรับค่าสมัคร Nokia Store Publisher Account ก็เบาๆ แค่ 1 ยูโรตลอดชีพเท่านั้นเอง หากมีบัตรเครดิตก็รูดจ่ายแล้วเริ่ม Publish แอพฯได้ทันที https://publish.nokia.com/login

ขั้นตอนการ Submit แอพฯขึ้น Nokia Store นี่เหมือนตอนเอาแอพฯ Symbian ขึ้นไม่มีผิด (ความรู้สึกเดิมๆกลับมา)

แรกเริ่มก็ให้กำหนดพวก Meta Data อันได้แก่ ชื่อแอพฯ, Description, tag, หมวด, ไอคอน, Screenshots ฯลฯ

เมื่อกำหนดเสร็จก็เข้าไปอัพโหลดแอพฯได้ทันที รวมถึงถ้ามีพวก In-App Payment Item หรือมีการเรียกใช้ HERE Map ก็สามารถทำที่ตรงนี้ได้หมด ค่อนข้างตรงไปตรงมา ไม่มีอะไรซับซ้อน

หลังจากอัพโหลดแอพฯขึ้นไป ก็รออนุมัติจากทีมตรวจสอบคุณภาพแอพฯ จากประสบการณ์ที่พานพบ น่าจะใช้เวลา 5-7 วันครับ เดี๋ยวลองจริงแล้วมาแชร์อีกทีนึง อาจจะเร็วกว่านั้นแล้วก็ได้

เรียบร้อยครับ มาดูกันว่า Nokia X อนาคตจะเป็นยังไง กับอีกหนึ่ง Android Fork ที่ทำมาอย่างจริงจัง

ส่วนผม ... ซื้อ !

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

Mar 11, 2014, 20:12
6445 views
บันทึกการ Port แอพฯ MOLOME ลง Nokia X จนถึงขึ้น Nokia Store
Jun 26, 2014, 15:20
12764 views
ทำความรู้จัก ART ผู้มาแทน Dalvik บน Android "L"
0 Comment(s)
Loading