iPhone VS Android

ตอนนี้กระแส Smart Phone อย่าง Android และ iPhone มาแรงมาก ในฐานะที่ผมใช้และเป็นคนเขียน App ทั้ง iPhone และ Android ผมจึงอยากจะแชร์ประสบการณ์ในการพัฒนา ของสอง Platform นี้ในหลายๆส่วนครับ โดยอันดับแรกผมจะขอพูดถึงในส่วนของการพัฒนาโปรแกรมก่อนเลยละกัน

Platform

พูดถึง Platform ของทั้งสองอย่างมีการแยกสายอย่างชัดเจนครับ คือ Android นั้นเป็น Open Platform ส่วน iPhone เป็น Close Platform การที่มันจะเปิดหรือว่าปิดนั้นก็มีข้อเสียต่างๆกันไป พอจะสรุปได้ว่า

ระบบเปิดของ Android มีข้อดี-ข้อเสียคือ

  • เสรี อยากจะทำอะไรก็ได้ ไม่จำกัด จะแก้ไขอะไรก็ทำได้หมด ทำให้มีอะไรแปลกๆให้ได้ลองกัน
  • มันเปิดเผย source code ให้เห็นกันเลย เราได้เรียนรู้การเขียนโปรแกรมแบบมืออาชีพโดยทางอ้อม
  • มี Hardware หลากหลาย ตั้งแต่ราคาสองสามพัน ไปจนถึงสองสามหมื่นบาท
  • ถูกนำไปใช้กับหลายๆอย่าง ไม่ใช่เพียงแต่โทรศัพท์

ดูเหมือนว่า “เสรี” มันจะดูดีนะครับ แต่มันก็เป็นข้อเสียในตัวมันเอง

  • มันมี Hardware หลากหลายเกินไป มันเป็นเรื่องที่ยากและวุ่นวายสำหรับนักพัฒนา ที่จะเขียนโปรแกรมให้ครอบคลุมรองรับทุกๆ Hardware ยกตัวอย่างเช่น อยากจะเขียนเกมส์ สักหนึ่งเกมส์ แต่ด้วยขนาดของหน้าจอที่หลากหลาย และประสิทธิภาพของเครื่องที่ไม่เหมือนกัน จะเขียนให้มันใช้ได้กับทุกๆเครื่อง ย่อมเป็นไปได้ยาก
  • การ update firmware แต่ละครั้ง ต้องรอให้ผู้ผลิตออก firmware ใหม่ๆ ซึ่งมันใช้เวลานาน บางเจ้าไม่ออกมาเลยก็มี
  • ไม่มีมาตรฐาน ( เหมือนจะมี แต่เอาจริงๆ ก็ไม่มี ) แต่ละเจ้าก็พัฒนาเป็นของตัวเอง

ระบบปิดของ iPhone มีข้อดี-ข้อเสียคือ

  • เราไม่สามารถแก้ไขได้อย่างอิสระ ต้องทำตามที่ทาง Apple มีมาให้
  • Hardware มีไม่กี่รุ่น และราคาสูง

ข้อดีคือ

  • เนื่องจากเครื่องมันมีน้อยรุ่น ดังนั้นโปรแกรมของเราจะใช้งานได้แทบจะทุกๆเครื่อง ยกตัวอย่างกรณีเขียนเกมส์ ก็ไม่ต้องมาคิดแล้วว่า หน้าจอจะมีขนาดเท่าไหร่ เพราะหน้าจอมี แค่ 3 ขนาด
  • Firmware Update เร็วมาก

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

SDK , Tools , Document

Android มีเครื่องมือหลักในพัฒนาชื่อว่า Eclipse ซึ่งเป็น IDE ที่สามารถใช้ได้ทั้ง Mac , Windows , Linux แต่ Google ก็ไม่ได้จำกัดว่าต้องใช้ Eclipse นะครับ เราอยากจะใช้อะไรพัฒนาก็ได้  ส่วน iPhone มีเครื่องมือชื่อ XCode ถึงแม้ว่าทาง Apple จะอนุโลมให้ใช้ tool อื่นๆได้ในอนาคต ( เช่น Flash5 ) แต่ก็ใช้ได้เฉพาะกับ Mac เท่านั้น สำหรับคนที่ไม่มี Mac ก็ปิดประตูเลยครับ

จากประสบการณ์ใช้งานของผมเทียบระหว่าง Eclipse กับ XCode ว่าอะไรดีกว่ากัน ผมบอกได้ง่ายๆเลยครับว่า XCode ดีกว่า Eclipse แทบจะทุกๆอย่าง เท่าที่ผมใช้มาตั้งแต่ Visual Studio , XCode , Eclipse ส่วนตัวผมคิดว่า Eclipse เป็น Tools ที่แย่ที่สุดเลย ประเด็นสำคัญคือ มันทำงานช้า

SDK

เมื่อเรามีเครื่องมือแล้ว ต่อไปก็คือ SDK ครับ พูดถึง Android แล้วการโหลด SDK นั้นเปิดกว้างให้กับคนทั่วไปๆ เข้าไปโหลดได้เลย ไม่ต้องสมัครสมาชิกอะไรให้ยุ่งยาก แต่เมื่อโหลดมาแล้ว ก็จะพบว่ายังใช้ไม่ได้เลย ต้อง configure อะไรอีกมากพอสมควร เช่นลง plugin สำหรับ eclipse ที่สำคัญในเวปตอนโหลด ขนาดไฟล์มันบอก 22 Mb แต่เอาจริงๆแล้วมันเป็นแค่ start package หากจะใช้งานจริงก็ต้องโหลด อีกกว่า 1 GB กว่าๆอยู่ดี

ส่วน iPhone SDK ต้องสมัครสมาชิกก่อนถึงจะโหลดได้ เมื่อเข้าไปโหลด SDK อาจจะร้องไห้น้ำตาร่วง เพราะขนาด SDK ใหญ่มากๆ เกือบๆ 3 Gb. เพราะมันรวมเอา tools ทุกอย่างเข้ามาด้วย แต่เมื่อโหลดเสร็จ ก็ไม่ต้องไปปรับแต่งอะไรเพิ่มเติมครับ เปิด xcode มาก็ใช้งานได้เลย

สรุปคือ Android ดีตรงที่ขนาดของไฟล์ SDK นั้นน้อยกว่า iPhone เยอะมากครับ ถ้าหากมีการ update sdk ก็เพิ่มมาแค่ไม่กี่ Mb. ไม่ต้องโหลดใหม่ทั้งก้อน ส่วน iPhone นั้นจะเปลี่ยน version sdk ทีก็คือโหลดใหม่คราวละ 3 GB นั่นเหละครับ แต่ข้อดีคือ ติดตั้งเสร็จใช้งานได้ทันที

Android Interface Design Tool

ในการออกแบบ interface โปรแกรมด้วย Android เราสามารถออกแบบ interface ได้ด้วย eclipse ( จริงๆมันเป็นแค่ xml ) เท่าที่ใช้งานมา บอกได้คำเดียวว่าแย่มาก

จากรูปครับ จะเห็นด้านซ้ายมือว่ามี UI หลายอย่างให้เลือกเล่น แต่มันไม่ง่ายเลยครับ ที่เราจะรู้ได้ว่าเมื่อเราลากมันลงมาใช้งานมันคืออะไร หน้าตาเป็นอย่างไร ยกตัวอย่างเช่น Button จาก tool จะเห็นแค่วงกลม แล้วก็มีตัว B สีเขียวข้างใน พร้อมกับคำว่า Button เราก็อาจจะพอเดาๆได้ว่ามันน่าจะเป็นปุ่ม ให้กด แต่มันเป็นปุ่มแบบไหนละ ? สี่เหลี่ยมมุมแหลม ? วงกลม ? สี่เหลี่ยมจตุรัส ?

นอกจากเรื่องนี้แล้ว ก็ยังมีเรื่องของ การวาง Layout ครับ เนื่องจากว่า Android มีการวาง Layout หลายแบบมาก การจัดวางปุ่ม รูปภาพ หรือส่วนอื่นๆ เป็นไปอย่างลำบาก และสับสน สำหรับผู้ที่เริ่มศึกษา

iPhone Interface Design Tool

การออกแบบหน้าตาของโปรแกรมสำหรับ iPhone นั้นต้องออกแบบด้วย Interface Builder ครับ เมื่อเปิดขึ้นมาหน้าตาก็ประมาณแบบนี้

การใช้ control ต่างๆมีคำอธิบาย และเห็นรูปอย่างชัดเจน อาทิเช่น ปุ่มเหมือนกัน ก็มีรูปประกอบชัดเจน คือสี่เหลี่ยมสีขาวมน เมื่อลากวางลง ก็จะเห็น ปุ่มสีขาวมนเช่นกัน

Android Emulator

ก่อนที่จะใช้งานได้ ต้องสร้าง ADV ( สร้างแบบจำลองเครื่อง ) กำหนดขนาดหน้าจอ ขนาด memory , SD-Card , กำหนดได้หมดครับว่าอยากได้เครื่องแบบไหน เมื่อกำหนดเสร็จแล้ว เราถึงจะใช้งานได้ แต่ว่า มันช้ามากกกกกกกกกกกกกก ย้ำครับว่าช้ามาก แค่รอให้มันบูตนี่ก็กินเวลาไปเกือบนาที

iPhone Simulator

ต้องยกนิ้วให้เลยครับ iPhone simulator ทำงานได้เร็วมาก กด run/debug ใน xcode รอแค่ไม่กี่วินาที ก็เปิด simulator แล้วก็ใช้งานได้แล้ว ทุกสิ่งทุกอย่างแทบจะดีกว่า android emulator แบบไม่เห็นฝุ่น ถ้าจะขาดก็อย่างเดียวคือ มันจำลอง GPS เหมือน android ไม่ได้

Document

ในส่วนของ document ทั้งของ Android และ iPhone มีให้เยอะมากครับ แต่จากประสบการณ์ที่เขียนมา iPhone ยังทำได้ดีกว่า มีรายละเอียดมากกว่า อธิบายละเอียด แต่ android มีข้อดีอย่างคือ พวกตัวอย่าง source code หาง่ายกว่า iphone เยอะครับ เพราะมัน open source

Market

ในการซื้อขาย Application สำหรับ Android ทำได้ยากกว่า iPhone ครับ และที่สำคัญยังไม่เปิดสำหรับประเทศไทย คนใช้ Android หลายคนบอกผมว่า Appstore ของ Apple นั้นมีโปรแกรม ไฟฉาย เป็นร้อยๆโปรแกรม .. แต่ผมว่าใน Android Market ก็มีโปรแกรมนาฬิกาเป็นร้อยๆโปรแกรมเหมือนกันนั่นเหละครับ 🙂

ถ้าไม่นับเรื่องความสะดวกในการซื้อขาย พูดในเรื่องของ ทำโปรแกรมเสร็จแล้ว จะขายที่ไหนมันจะดีกว่า ระหว่าง Appstore กับ Market ผมฟันธงให้เลยครับว่า Appstore อนาคตสดใสกว่ามาก ถ้าคุณเป็นนักพัฒนาที่อยากจะทำโปรแกรมสักตัวแล้วขาย Appstore คือคำตอบครับ เหตุผลหลายอย่างก็คือ

  • จริงอยู่ว่า iPhone นั้นเมื่อทำการ jailbreak ก็โหลด app เถื่อนมาใช้ก็ได้ แบบนี้คนก็ไม่ซื้อโปรแกรมของเรานะสิ .. มันไม่จริงนะครับ เทียบจำนวนคนซื้อ app และคนโหลด app เถื่อนแล้ว คนซื้อ app ก็ยังมีจำนวนมากกว่าต่างกันราวฟ้ากับเหว
  • Android ก็มีการ root เครื่องเหมือนกับ jailbreak นั่นเหละ .. แต่จากการสำรวจแล้ว ผู้ใช้ Android ไม่ค่อยยอมควักเงินจ่ายค่า app ครับ
  • ระบบจัดการ Application ทางฝั่ง apple ทำได้ง่ายกว่า google มาก แต่ apple ก็มีปัญหาเรื่องการ approve ที่จุกจิก

บทส่งท้าย

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

ไม่ว่าจะเขียน Android หรือเขียน iPhone ผมว่าก็ยังน่าสนใจทั้งสองอย่างนั่นเหละครับ โอกาสยังเปิดอยู่อีกมาก

2 thoughts on “iPhone VS Android”

  1. ขอบคุณสำหรับคำแนะนำดีๆ

    จำเป้นไหมครับว่าถ้าจะเขียน iPhone ต้องมีเครื่อง iPhone และเครื่อง Mac ไหมครับ

    1. ในแรกเริ่มไม่จำเป็นครับ เช่น อยากทดลองเขียนดู แต่ถ้าจะเอาแบบจริงจัง ยังไงก็ต้องใช้ครับ 🙂

Leave a Reply