Android Developer Challenge - โอกาสทองของเด็กไทย

by mk
13 November 2007 - 18:46

บทความนี้เป็นสรุปรวบยอดของ 3 เหตุการณ์เกี่ยวกับ Android ในรอบสัปดาห์นี้

  • เริ่มจากกูเกิลประกาศรูปลักษณ์ที่แท้จริงของ GPhone ว่าเป็นแพลตฟอร์มเปิดชื่อ Android ไปเมื่ออาทิตย์ก่อน
  • จากนั้นเปิดให้ดาวน์โหลด Android SDK เมื่อวาน - ข่าวเก่า
  • และสุดท้ายอัดเงิน 10 ล้านเหรียญล่อใจ ให้คนสร้างโปรแกรมบน Android กันเยอะๆ

ผมจะทยอยเล่ารายละเอียดของ Android และปิดท้ายว่าทำไมเราควรส่งโปรแกรมเข้าแข่ง Android Developer Challenge

รู้จักกับ Android

Android คือแพลตฟอร์มใหม่สำหรับโทรศัพท์มือถือและอุปกรณ์พกพา ซึ่งประกอบด้วยระบบปฏิบัติการ ไลบรารี เฟรมเวิร์ค และซอฟต์แวร์อื่นๆ ที่จำเป็นในการพัฒนา มันเทียบเท่ากับ Windows Moble, Palm OS, Symbian, OpenMoko และ Maemo ของโนเกีย โดยจับตลาดมือถือรุ่นใหม่ๆ ความสามารถสูงๆ (ซึ่งเกิดจากการกระตุ้นตลาดของ iPhone) โดยกลุ่มมือถือเหล่านี้จะทยอยวางตลาดในปีหน้า

ถึงจะเป็นแพลตฟอร์มใหม่ซิงๆ แต่ Android ก็ใช้องค์ประกอบที่เป็นโอเพนซอร์สหลายอย่าง เช่น Linux Kernel, SSL, OpenGL, FreeType, SQLite, WebKit และเขียนไลบรารี+เฟรมเวิร์คของตัวเองเพิ่มเติม ซึ่งทั้งหมดจะโอเพนซอร์ส (ใช้ Apache License) ลองดูภาพประกอบ

ภาษาที่ใช้พัฒนาเป็นจาวา แต่เอามาเฉพาะภาษา (Java programming language) ไม่ได้ใช้แพลตฟอร์มของซันเลย โดย Android มีรันไทม์ของตัวเองชื่อว่า Dalvik ซึ่งแทนที่เราจะคอมไพล์เป็นไบต์โค้ด ก็ใช้ฟอร์แมต Dalvik Executable (.dex) แทน การสร้าง GUI ใช้เป็นไฟล์ XML (สไตล์เดียวกับ XAML หรือ XUL)

ไลบรารีที่มีให้เรียกก็เป็นของ Android ทั้งหมด (import android.*) ไม่เกี่ยวกับ J2ME เลย อารมณ์ว่ายืม syntax ของจาวามาใช้เฉยๆ (ตัวอย่างโค้ด) แต่อย่างอื่นกูเกิลทำเองเกือบหมด

เครื่องมือพัฒนา Android ก็ไม่ใช่อื่นไกล มีปลั๊กอินสำหรับ Eclipse ตามสมัยนิยม (ชื่อ Android Development Tools - ADT) ใช้ Apache Ant สำหรับ build สำหรับส่วนของ SDK นั้นก็ให้เครื่องมือมาครบ ทั้งตัวดีบั๊กสารพัดชนิด และ emulator ของ GPhone สำหรับรันแอพพลิเคชันทดสอบ (เพราะตอนนี้ยังไม่มีเครื่องจริงๆ ให้ลองอยู่ดี)

สำหรับรายละเอียดทางเทคนิคของ Android แนะนำให้ดูวิดีโอ 3 ตอนบน YouTube ซึ่งพูดโดยวิศวกรของ Android เอง

  • Part 1 - Architecture Overview เหมือนแผนภาพด้านบน
  • Part 2 - Application Lifecycle อันนี้เป็นคอนเซปต์ของการเรียกใช้และสลับแอพพลิเคชัน
  • Part 3 - API แนะนำ API ที่มีให้ใช้ คอนเซปต์ของ View นี่เข้าท่าเลย

สำหรับ SDK และรายละเอียดอื่นๆ ดูได้จากเว็บโครงการของ Android มีเนื้อหาละเอียด พวก Tutorial และ Reference ก็ขึ้นหมดแล้ว

ทำไม Android ถึงน่าสนใจ

ตอบง่ายๆ เลยว่า "กูเกิล" ครับ

ปัจจุบันนี้ด้วยอิทธิพลทั้งด้านเทคโนโลยีและการเงินของกูเกิลนั้นน่ากลัวมากอยู่แล้ว กูเกิลตัดสินใจใช้ยุทธศาสตร์การสร้างสภาวะแวดล้อม (ecosystem) ของ Gphone ขึ้นมาแทนการสร้างอุปกรณ์ Gphone ของตัวเอง ยกหน้าที่การพัฒนาฮาร์ดแวร์ให้กับพันธมิตร และหน้าที่ในการพัฒนาแอพพลิเคชันให้กับนักพัฒนาภายนอก โดยเปิด API ของตัวระบบอย่างเต็มที่ ตามโมเดลโอเพนซอร์ส

พันธมิตร 34 รายของกูเกิลรวมตัวกันชื่อ Open Handset Alliance เรามาดูกันว่ากูเกิลชวนใครมาได้บ้าง

อย่างแรกสุดคือผู้ผลิตตัวเครื่องมือถือ

  • HTC - ผู้ผลิตเครื่องให้ O2 และเจ้าของแบรนด์ Dopod
  • LG - พวกนี้คงไม่ต้องอธิบาย
  • Motorola
  • Samsung

จะเห็นว่ากูเกิลได้ผู้ผลิตมือถือรายใหญ่มา 3 ราย คือ Motorola (อันดับ 2) Samsung (อันดับ 3) และ LG (อันดับ 5) ขาดแต่ Nokia กับ Sony Ericsson เท่านั้น ทั้งสามรายนี้มีส่วนแบ่งตลาดปัจจุบันรวมกัน 34.8% ของตลาดโลก (ตัวเลข Q207 จาก Gartner) ก็พอสู้กับ Nokia ซึ่งมีส่วนแบ่งตลาดอยู่ 36.9%

(Nokia เป็นผู้สนับสนุนหลักของแพลตฟอร์ม Symbian แต่ก็แอบไปทำ Maemo เป็นทางเลือกไว้แล้ว ปัจจุบัน Maemo ถูกใช้ใน Internet Tablet อย่างพวก N770, N800 ซึ่งคาดว่าจะเป็นฐานสำคัญของมือถือ Nokia ในอนาคต)

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

อันดับถัดมาคือผู้ผลิตชิ้นส่วนฮาร์ดแวร์

  • Audience - ผลิตชิปเสียง
  • Broadcom - ชิปเน็ตเวิร์คที่เราใช้กันทุกวันนี้
  • Intel - ไม่ต้องอธิบาย
  • Marvell - ชิปเซ็ตสารพัดชนิด
  • Nvidia - ไม่ต้องอธิบาย แต่เสริมนิดว่าเดี๋ยวนี้มือถือมีการ์ด 3D กันแล้วนะ
  • Qualcomm - ชิปเน็ตเวิร์คสารพัดชนิด
  • SiRF - ทำ GPS
  • Synaptics - clickwheel ใน iPod ไง (รวมถึง ZEN ด้วย)
  • Texas Instrument - เจ้าพ่อใหญ่ ไม่ต้องอธิบายอีกเหมือนกัน

ตามรายชื่อนี้มีพี่เบิ้มมากันหมด ดังนั้นรับประกันได้ว่า Android จะไม่มีปัญหาขาดแคลนไดรเวอร์อุปกรณ์แน่นอน

ฮาร์ดแวร์พร้อมแล้ว เรามาดูว่ามีผู้ให้บริการเครือข่ายหรือโอเปอเรเตอร์เจ้าไหนมาร่วมแจมบ้าง (ข้อมูลตัวเลขจาก Wikipedia)

  • China Mobile - ผู้ให้บริการมือถือที่มีลูกค้ามากที่สุดในโลก แค่จีนประเทศเดียวซัดไปแล้ว 350 ล้านเลขหมาย
  • KDDI - เบอร์สองของญี่ปุ่น
  • NTT DoCoMo - เบอร์หนึ่งของญี่ปุ่น
  • Sprint Nextel - เบอร์สามของสหรัฐ
  • T-Mobile - เบอร์หนึ่งของเยอรมนีและหลายประเทศในยุโรป รวมถึงเป็นเบอร์สี่ของสหรัฐ ถ้ารวมทั้งโลกอยู่อันดับหก
  • Telecom Italia - เบอร์หนึ่งของอิตาลี
  • Telefónica - เบอร์สามของโลก มาจากสเปน ปัจจุบันซื้อ O2 ไปครอบครองเรียบร้อยแล้ว

รายใหญ่ที่ขาดไปก็มีแค่ Vodafone, Orange, AT&T เท่านั้น ที่น่าสังเกตคือโอเปอเรเตอร์จากญี่ปุ่นมาถึงสองราย แถมเป็นสองรายใหญ่ และรูปแบบการผลิตเครื่องมือถือในญี่ปุ่นคือโอเปอเรเตอร์เป็นคนกำหนดสเปกเครื่อง

นอกจากสามหมวดหลักแล้วก็ยังมีบริษัทซอฟต์แวร์อื่นๆ ที่พอคุ้นหน่อยก็เช่น eBay และ Wind River ตรงนี้คงไม่ต้องลงรายละเอียดนะครับ

บริษัทพวกนี้คงไม่ผลักดัน Android สุดตัวชนิดร่วมเป็นร่วมตายกับกูเกิล หลายค่ายอย่าง Motorola ก็มีแพลตฟอร์มลินุกซ์เป็นของตัวเองเอาไว้กันเหนียว แต่ด้วยชื่อชั้นของบริษัทที่ยกมา ก็น่าจะพอเป็นปัจจัยหนุนให้เรามั่นใจว่า Android จะประสบความสำเร็จได้บ้าง ที่เหลือก็ขึ้นกับฝีมือของกูเกิลแล้ว

นอกจากพันธมิตรระดับใหญ่แล้ว อีกสาเหตุหนึ่งที่ผมคิดว่า Android ได้เปรียบก็คือการเป็นแพลตฟอร์มรุ่นใหม่ที่มารอรับการเปลี่ยนยุคอีกครั้งของมือถือ (หลัง iPhone) ซึ่งมือถือรุ่นใหม่ๆ จะมีลักษณะเป็น personal internet device มากขึ้น หน้าจอใหญ่ขึ้น มีระบบอินพุตดีขึ้น ความจุมากขึ้น ฯลฯ ตรงนี้จะเหนือกว่าแพลตฟอร์มเก่าๆ อย่าง Symbian, Palm OS และ Windows Mobile (ที่พอฟัดเหวี่ยงได้ก็คือ OS X ของ iPhone ซึ่งเราก็พยากรณ์ได้ว่าแอปเปิลจะยังใช้ระบบทำเองคนเดียวต่อไปอีกนาน)

ถ้าใครอ่านมาถึงตรงนี้แล้วอยากเห็นหน้าตาของ Android ก็ดูได้จากวิดีโอ ซึ่ง Sergey Brin ลงทุนมาเป็นพรีเซนเตอร์เอง

Android Developer Challenge

อย่างไรก็ตาม Android เป็นแพลตฟอร์มใหม่ทั้งตัว ยังไม่มีใครเคยได้ใช้ Android เลย และมีโปรแกรมที่สร้างบน Android น้อยมาก ซึ่งตรงนี้เป็นจุดชี้เป็นชี้ตายว่าแพลตฟอร์มนั้นจะประสบความสำเร็จแค่ไหน

กูเกิลไม่สามารถใช้วิธีสร้างโทรศัพท์ที่คนต้องการเยอะๆ แบบ iPhone ได้ แต่สิ่งที่กูเกิลทำได้ก็คือเอาเงินทุ่มครับ และรอบนี้จำนวนเงินที่ทุ่มออกมาคือ 10 ล้านเหรียญ

และที่ผมเขียนมาตั้งยาวนี้ เพื่อจูงใจว่าเรามาเขียนโปรแกรมชิง 10 ล้านเหรียญกันเถอะ!!!

กูเกิลเปิดตัวการแข่งขัน Android Developer Challenge พร้อมกับการออก SDK โดยแบ่งเป็น 2 ระยะ คือ Android Developer Challenge I กับ II ในช่วงแรกที่ยังไม่มีเครื่องโทรศัพท์จริงๆ ออกมา เราจะสนใจกันแต่ Android Developer Challenge I ก่อน ส่วน II จะตามมาในครึ่งหลังของปี 2008

กติกาง่ายๆ เขียนโปรแกรมอะไรก็ได้บน Android เข้าส่งประกวด หมดเขตวันที่ 3 มีนาคม 2008 สำหรับทีมที่ดีที่สุด 50 ทีม รับไปก่อนเลย 25,000 ดอลลาร์ (เกือบ 8 แสนบาท)

จากนั้นทีมที่เข้ารอบก็เอาเงินไปพัฒนาต่อจนถึงเดือนพฤษภาคมแล้วมาตัดสินกันอีกครั้ง เงินรางวัลรอบนี้คือ 275,000 และ 100,000 ดอลลาร์ตามลำดับ (รางวัลละ 10 ทีม) คิดเป็นเงินไทยก็ 8 ล้านกับ 3 ล้าน

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

ทีนี้กลับมายังจุดเริ่มต้น ว่าทำไมเราควรเข้าแข่งขัน Android Developer Challenge

  • 25,000 ดอลลาร์ อันนี้ชัดเจน
  • คัดเอา 50 ทีม ไม่น้อยจนสู้ไม่ไหว อันนี้มีลุ้น
  • Android เป็นแพลตฟอร์มใหม่อายุ 2 วัน (ขณะที่เขียน) ไม่มีใครรู้จักหรือคุ้นเคยกับ Android มาก่อน นั่นแปลว่าทุกคนเริ่มจากศูนย์ ไม่มีใครได้เปรียบเสียเปรียบกัน
  • แต่ในขณะเดียวกัน เครื่องมือที่ใช้กลับเป็นเครื่องมือมาตรฐาน เช่น จาวา, Eclipse, Ant แปลว่าเราไม่ต้องเรียนรู้ใหม่ทั้งหมด และมหาวิทยาลัยหลายแห่งในประเทศไทยก็ใช้เครื่องมือเหล่านี้อยู่แล้ว เราเรียนรู้แค่ API เท่านั้นพอ
  • ถึงครั้งนี้จะไม่เข้ารอบ แต่ก็ได้ประสบการณ์ไปแข่ง Android Developer Challenge II ได้ (รอบนี้เงินออกไปครึ่งเดียว 5 ล้านเหรียญ)
  • และถึงจะไม่ได้รางวัลอะไรเลย แต่เราก็มีประสบการณ์ไปเขียน Android Application ขายได้ หรือใครฝันจะไปทำงานซิลิคอน วัลเลย์ ก็ต้องเตรียมเพิ่มทักษะที่ตลาดในอนาคตต้องการกันหน่อย
  • สำหรับนิสิตนักศึกษา ผมก็ขอใช้เหตุผลเก่าๆ แต่ยังดูดีว่า นี่คือโอกาสทองในการฝึกตัวเองกับโจทย์ในโลกความเป็นจริง ดีไม่ดีก็อาจจะได้เงินติดมือกลับมา อย่าเพิ่งคิดว่าตัวเองไม่สามารถนะครับ Imagine Cup เด็กไทยก็ชนะเลิศมาแล้ว (ข่าวเก่า)

กลยุทธ์สำหรับการแข่งขัน

  • แรกสุดไปโหลด SDK มาอย่างด่วนครับ มีทั้งบนวินโดวส์ แมค ลินุกซ์​ ให้เลือกตามชอบ
  • อ่าน Tutorial ประกอบ
  • จากนั้นก็ลุยเลยไม่ต้องลีลา
  • เกณฑ์การตัดสินของกูเกิลเขียนบอกไว้บนเว็บดังนี้ สังเกตตัวหนา และตีโจทย์จากกรรมการดีๆ

Applications will be evaluated on how well they use Android's capabilities to deliver a better mobile experience for users.

  • การแข่งขันแบบนี้ ปัจจัยสำคัญไม่ใช่เรื่องเทคนิค แต่เป็นไอเดียและการนำเสนอ ดังนั้นลืมแอพพลิเคชันที่ใครๆ ก็คิดได้อย่าง Facebook Integrator ไปได้เลย (ซ้ำแน่นอน) คิดหาอะไรที่ทำงานเฉพาะทาง แต่มีประโยชน์ดีกว่า
  • ขยันไปอ่านความเคลื่อนไหวคู่แข่งจาก Android Group เสียหน่อย
  • รับ feed จาก Android Blog ด้วย
  • มีปัญหาก็ปรึกษา ขอคำชี้แนะ คำติชมกันได้ ผมเชื่อว่าถ้ามีคนตั้งใจส่งจริงๆ ผู้อ่าน Blognone จำนวนมากก็ยินดีช่วยเต็มที่ให้คนไทยไปถึงฝัน มาใช้งาน Forum ที่นี่ได้เลย

เรื่องข่าวคราวความเคลื่อนไหวก็ไม่ต้องเป็นห่วง Blognone จะทยอยนำมาเสนอเรื่อยๆ เมื่อมีข่าวใหญ่ควรรู้ หรือถ้าใครอยากจัดติว Android ก็มาประชาสัมพันธ์ได้เช่นกัน

Blognone Jobs Premium