Monday, May 21, 2012 : Article > iPhone User : Register | Login
บทความ
Webboard
วีดีโอ
บทความจากเพื่อนๆ Guru
19
เริ่มต้นกับการเขียนโปรแกรมบน iPhone

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

iPhone ทำงานอยู่บน OS ที่มีชื่อว่า iOS ซึ่งปัจจุบันเป็น version 4 และการพัฒนา Application จะต้องใช้ภาษา Objective-C โดยในวันนี้จะกล่าวถึงรูปแบบของ Objective-C อย่างคร่าวๆ เพื่อให้รู้จักกับภาษาที่ใช้บน iPhone ด้วยครับ
แล้วต้องเตรียมอะไรบ้างล่ะ ถึงจะเขียนโปรแกรมบน iPhone ได้
อย่างที่กล่าวมาแล้วครับว่า iPhone นั้นใช้ Objective-C เป็นภาษาหลักในการเขียนโปรแกรม โดย Objective-C นั้นเป็นภาษาที่มีรูปแบบคล้ายกับภาษา C/C++ หรือ Java หรือ C# ถ้าใครเคยเขียนภาษาเหล่านี้มาก่อนก็จะง่ายมากขึ้นที่จะเรียนรู้ Objective-C ส่วนที่ต่างกันก็คงจะเป็นแค่เรื่องของ Syntax แต่โดยหลักๆ แล้วก็จะเหมือนกันในเรื่องของ OOP ไม่ว่าจะเป็น Object, Class, Function, Method, Variable หรือแม้แต่ส่วนอื่นๆบนพื้นฐานของ OOP

แล้วต้องใช้เครื่อง Mac ในการเขียนโปรแกรมหรือป่าว
แน่นอนครับ ถ้าคุณจะเขียนโปรแกรมบน iPhone และ iPhone ก็ยังเป็นผลิตภัณฑ์ของ Apple ก็คงหนีไม่พ้นต้องใช้เครื่อง Mac ในการเขียนโปรแกรมอย่างหลีกเลี่ยงไม่ได้ และเครื่อง Mac ที่ใช้ต้องเป็น OS X Snow Leopard 10.6 ขึ้นไปด้วยครับ ใครมีรุ่นที่ต่ำกว่านี้ก็เสียใจด้วยครับ แต่ทว่า ถ้าใครไม่มีเครื่อง Mac ก็มีคำแนะนำเล็กๆ น้อยๆ ครับโดย เข้า Google แล้วค้นหาด้วยคำว่า Mac OS X86 คุณจะได้พบกับการติดตั้ง Mac OS X บน PC ธรรมด๊าาา ธรรมดานี่คุณมีอยู่นี่แหล่ะครับ

เครื่องมืออันทรงพลังที่จะทำให้คุณสร้างสรรจินตนาการของโปรแกรมบน iPhone ได้
หลังจากที่ได้จัดหา จัดซื้อ หรือขอยืมเครื่อง Mac มาได้แล้ว ก็จะต้องติดตั้งโปรแกรมที่ใช้ในการเขียนโปรแกรมบน iPhone กันก่อนครับ เครื่องมือที่ใช้มีชื่อว่า XCode โดยคุณสามารถไป download ได้จาก http://developer.apple.com คุณจะพบกับ Link เพื่อเข้าไปที่หน้าของ iPhone Dev center จากนั้น Apple จะบังคับให้คุณลงทะเบียน Apple Id ก่อนจึงจะสามารถ Download ​XCode ได้ครับ ในขั้นตอนนี้ฟรีครับ ไม่เสียตังค์ โดยไฟล์จะมีขนาดประมาณ 3GB ฉะนั้นต้องมั่นใจว่าเน็ตเร็วและแรงพอก่อนที่จะ Download นะครับ เมื่อได้ XCode มาแล้วก็ทำการติดตั้งได้เลยครับ

ทำความรู้จักกับ Objective-C กันก่อน
โปรแกรมที่ทำงานบน iPhone ได้นั้นต้องเขียนด้วย Objective-C และ Objective-C นั้นมีรูปแบบภาษาที่คล้ายๆ กับ C/C++ หรือ Java โดยรูปแบบการเขียนโปรแกรมจะใช้หลักการของ OOP ในการเขียนโปรแกรม ตารางด้านล่างนี้จะแสดงให้เห็นถึงส่วนเล็กๆ น้อยๆ ที่แตกต่างกันระหว่าง C/C++ และ Objective-C

 C/C++  Objective-C
 #include “library.h”
#import "library" 
 this  self
 private: @private 
 public @public 
 object = new class(); object = class alloc init
 object.method(a); [object method:a]; 
 void method(int a){} -(void) method:(int) a {}

Classes
ในภาษา objective-C จะมีการแบ่งแยกกันระหว่าง Interface และ Implementation ถ้าใครเคยเขียน C++ มาก่อนจะเคยชินกับวิธีการแบบนี้ โดย C++ นั้นจะแบ่งไฟล์เป็นส่วนของ header โดยไฟล์จะมีนามสกุลเป็น .h และ ส่วนที่เป็น implementation จะมีนามสกุลเป็น .cpp ใน Objective-C ก็เช่นเดียวกันโดย Interface จะเป็นไฟล์ที่มีนามสกุลเป็น .h แต่นามสกุลของไฟล์ที่ทำหน้าที่เป็น Implementation จะมีนามสกุลเป็น .m

การที่จะสร้าง class ขึ้นมาจะต้องมีการประกาศในส่วนของ Interface โดยใข้คำ @interface นำหน้าชื่อ class ที่ต้องการ และทำการบันทึกไฟล์โดยมีนามสกุลเป็น .h เช่น myClass.h ดังตัวอย่าง

@interface myClass : NSObject {
 int member1;
NSString *member2;
}
-(void) myMethod:(int) myParameter;
@end

ในตัวอย่างจะเป็นการสร้าง class ที่มีชื่อว่า myClass โดยมีการสืบทอดคุณสมบัติิมาจาก class ที่มีชื่อว่า NSObject จากนั้นจะมีการกำหนด member ของ class มา 2 ตัวคือ member1 และ member2 และมี Method ที่ีมีชื่อ myMethod โดยจะมีการรับ parameter คือ myParameter

Implementation
หลังจากที่ได้มีการสร้าง class เรียบร้อยแล้ว ก็จะต้องทำการ Implement class ที่สร้างขึ้น โดยไฟล์ที่ทำหน้าที่เป็น implementation จะบันทึกโดยใช้นามสกุล .m เช่น myClass.m ดังตัวอย่าง

#import “myClass”
@implementation myClass
-(void) myMethod:(int) myParameter
{
//your code here.
}
@end

เราจะสร้าง object จาก class ที่สร้างขึ้นได้อย่างไร
แน่นอนว่าหลังจากที่ได้ทำการสร้าง class แล้ว ก็ต้องมีการสร้าง Object จาก class ที่เราสร้างขึ้น โดยถ้าเป็น C++ จะมีรูปแบบการสร้าง Object ดังตัวอย่าง

myClass object = new myClass();

แต่ใน Objective-C จะมีรูปแบบการสร้าง Object แบบนี้ครับ

myClass *object = myClass alloc init;

เมื่อสร้าง Object ได้แล้ว เราจะติดต่อกับ Method และ Member ของ object ที่สร้างขึ้นมาได้อย่างไร
การอ้างอิง หรือการเรียกใช่้ member ของ object จะมีรูปแบบเช่นเดียวกับ C++ เช่นถ้าต้องการอ้างถึง member ชืื่อ member1 และกำหนดค่าให้ member1 มีค่าเป็น 1 จะใช้รูปแบบดังนี้

object.member1 = 1;

สำหรับ method นั้นจะแตกต่างจาก C++ โดยรุปแบบการเรียกใช้ Method ของ C++ มีรูปแบบดังนี้

object.myMethod(value);

แต่ถ้าเป็น Objective-C จะมีรูปแบบดังนี้

[object myMethod:value];

เช่นเดียวกัน ถ้าต้องการเข่้าถึง method ต่างๆของ object แบบ chain ถ้าเป็น C++ จะใช้รูปแบบดังนี้

object.someMethod().someOtherMethod();

แต่ใน Objective-C จะมีรูปแบบดังนี้ครับ

object someMethod someOtherMethod;

หวังว่าคงจะไม่สับสนกันจะครับ ถ้าไม่สับสนก็ไปกันต่อเลยครับ

สิ่งหนึ่งทีี่ทุกคนต้องระวังเป็นพิเศษคือเรื่องการใช้ Memory ที่มีอยู่จำกัดบน iPhone
iPhone นั้นมี memory มาให้ใช้ไม่ค่อยมากนัก และถ้าโปรแกรมของเรามีการใช้ Memory ที่มากเกินไป iOS จะทำการปิดโปรแกรมของเราทันที ดังนั้นถ้ามีการสร้าง object ขึ้นมาก็จะต้องมีการทำลาย object นั้นๆ เพื่อทำการคืน memory ที่ไม่ได้ใช้งานให้กับระบบเพื่อใช้งานในส่วนอื่นๆ ไม่เช่นนั้น object ที่สร้างขึ้นมาจะทำการจอง memory ไว้โดยไม่ได้ใช้งาน และเมื่อเราทำการสร้าง object ขึ้นมาเรื่อยๆ memory ของ iPhone ก็จะไม่มีเหลือให้ใช้ในที่สุด และนั่นคือฝันร้ายที่สุดของการใช้โปรแกรมที่ไม่มีใครอยากเจอ

วีธีการทำลาย object จะใช้คำสั่งคือ release ดังตัวอย่าง

myClass object = myClass alloc init;



[object release];

วันนี้พอแค่นี้ก่อนนะครับ ส่วนคราวหน้าจะมาทำโปรแกรมแรกที่เป็นธรรมเนียมของการเขียนโปรแกรมกันนั่นคือ hello world และทำการทดสอบโดยการ run ผ่าน iPhone Simulator พร้อมทั้งสอนการใช้งานเครื่อง iPhone อย่างง่ายๆ ผ่าน Simulator กันครับ

  • o -------------------------------------------------------- o

Post Rating

Comments

There are currently no comments, be the first to post one.

Post Comment

Only registered users may post comments.
Home | Article | Webboard | Video | Blog | Showcase | News
Copyright 2010 by devguru.mobi