Posts tagged ‘2 Language Entry’

Cocoa & iPhone Development : Introduction to iPhone Development

ตอนนี้ผมมีหัวเรื่องเกี่ยวกับการเขียน App บน iPhone เพียบเลย เพราะเพิ่งจะเขียนแอพไอโฟนเสร็จไปตัวนึง เป็น Twitter Client ครับ ยังไม่มีอะไรมากเพราะเป็นแค่แอพที่ทดลองเขียนตาม Assignment ของ CS193P iPhone App Dev ของ Stanford ที่เคยโพสไว้ Entry ก่อนนี้

เมื่อก่อน Entry เกี่ยวกับ Cocoa ของผมดูเหมือนจะไม่ค่อยได้รับความสนใจเท่าไหร่ อันนี้ผมก็ไม่แปลกใจ เพราะบ้านเราใช้ .net framework แทบจะเป็นหลักในการพัฒนาแอพ(เพื่อโปรเจคจบหรือขาย) บวกกับบ้านเราคนใช้เครื่องแมคก็ไม่ได้มากมายอะไร แถม Developer บนแมคยิ่งน้อยใหญ่เลย

แต่ตอนนี้ อะไรๆมันเริ่มเปลี่ยนไป หลายๆคนสนใจการพัฒนาแอพด้วย Cocoa Framework ไม่ใช่เพื่อเครื่องแมค แต่เพื่อ “iPhone” นั่นเอง ใน Entry ก่อนหน้านี้ที่ผมเขียนเรื่อง “การสร้างปุ่มแบบ Run-Time บน iPhone” ปรากฎว่ามีผู้สนใจสอบถามเรื่องเกี่ยวกับการพัฒนาแอพบน iPhone เพราะจะทำเป็นโปรเจคจบ ผมก็เลยคิดว่า งั้นผมจะเขียน Entry เกี่ยวกับการพัฒนาแอพบน iPhone เป็นบทๆไปด้วย นอกจากที่เขียนเป็นทิปๆไป คิดว่าน่าจะมีประโยชน์กับผู้สนใจและเอาไว้แลกเปลี่ยนความรู้กันไปอีกทางนึง

เกริ่นมาเนิ่นนานแล้ว เริ่มเลยแล้วกันนะครับ !!

Chapter 0 : Before we’re start | ก่อนจะเริ่ม

ก่อนที่เราจะเริ่มการพัฒนาแอพบน iPhone นั้น ก็ต้องเตรียมตัวกันก่อนครับ เช็คตัวเองกันนะครับว่ามีสิ่่งเหล่านี้หรือยัง

1. Mac Computer : นี่ไม่ได้มาโฆษณานะครับ แต่มันจำเป็นต้องมี สิ่งแรกที่ขาดไม่ได้คือ เครื่องแมค (intel คงไม่มีปัญหา แต่ PPC ผมว่ามันคงจะอืดน่าดู) ต้องแสดงความเสียใจให้กับสาวก Windows นะครับ เพราะ Apple ไม่ได้ออก SDK For Windows มาให้ 

แต่ก็ไม่ได้ผูกขาดซะทีเดียวนะครับ Opensource iPhone’s Library ก็มีอยู่เหมือนกัน ติดแต่ตรงที่ทำงานบน Linux, ไม่มี Simulator, ไม่มี IDE ดีๆ ฯลฯ ซึ่งกว่าจะเสร็จงานก็คงตกยุคไปซะก่อน แต่ถ้าอยากลองก็ไม่ได้ว่ากันนะครับ เข้าไปดูรายละเอียดจากหนังสือ “iPhone Open Application Development: Write Native Objective-C Applications for the iPhone by Jonathan Zdziarski” กันได้

2. ความรู้เรื่องภาษา Objective-C : Objective-C เป็นภาษาหลักในการพัฒนาแอพบน iPhone ครับ เท่าที่รู้ตอนนี้ ยังไม่มีภาษาอื่นๆ ถ้าอยากรู้ว่ายากหรือแตกต่างกับ C หรือ C# มั้ย ถ้าเป็นเมื่อก่อนคงบอกว่าไม่มาก แต่หลังจากปีที่ผ่านมาที่ Apple ปล่อย Objective-C 2.0 ออกมา ก็คงต้องบอกว่า ต่างกันอยู่เหมือนกัน แต่ก็ไม่ได้มากมาย เรื่อง Objective-C จะพูดอีกตอนหลังนะครับ

3. ความรู้เรื่อง Object-Oriented Programming : จะว่าไปก็ไม่ใช่จำเป็นแค่เฉพาะกับการ Programming แค่บน  iPhone หรอกนะครับ แต่จำเป็นกับการ Programming ในปัจจุบันเลยทีเดียว ถ้ายังไม่แม่นไม่แข็งก็ต้องฝึกกันไปนะครับ เขียนบ่อยๆต่อไปก็จะเก่งขึ้นเรื่อยๆเอง โดยเฉพาะหัดเขียนบน Cocoa หรือ Cocoa Touch Framework อันนี้ช่วยให้เรียนรู้มากครับ เพราะบังคับให้เราเขียนแบบ OOP ทั้งหมด

4. ความรู้เรื่อง MVC Design Pattern : อันนี้ก็สำคัญครับ ปัจจุบัน MVC เป็น Design Pattern ที่ได้รับความแพร่หลายมากในการพัฒนา Application เพราะสามารถแก้ไข จัดการ หรือขยายสเกลของงานได้ง่าย ซ่ึงปัจจุบัน Application ทั้งหลายก็ออกแบบด้วย Design Pattern นีเป็นส่วนมากนะครับ

หลักๆเลยก็จะมีส่ีอย่างนี้นะครับ ที่จะต้องมีเพื่อการพัฒนา iPhone Application สำหรับหัวข้อที่ 2-4 สามารถหาศึกษาได้ทั่วไปนะครับ หรือถ้าอยากอ่านจากหนังสือ ก็แนะนำ Cocoa(R) Programming for Mac(R) OS X (3rd Edition) by Aaron Hillegass ครับ เล่มนี้ถือว่าเป็นไบเบิลของ Cocoa Programming เลยก็ว่าได้ หรือถ้าบนเวบก็เข้าไปที่ Developer Connection ของ Apple ได้ครับ 

ในบททนี้ก็จบไว้เท่านี้ก่อนแล้วกันนะครับ สำรวจตัวเองกันพร้อมแล้ว ก็เจอกันบทถัดไปครับ ;)


Now, I have a many topic about iPhone application programming. Because I’m just finished written the first iPhone application. It’s twitter’s client application. It not have a many features because I try to do from Stanford’s course, CS193P : iPhone app dev. And I ever says about this course in entry before. 

 

From the past, Entry about Cocoa programming look like not have a person who interested in. But I’m not surprise, Because .net framework is more popular  for application development (for grad’s project or commerce). And a mac user group in Thailand is not much and don’t say about mac developer, It’s really small. 

But now. Many things is change. Many developer interesting an application development on Cocoa Framework. Not for Mac but for iPhone. From before this entry, I write about “How to create a button on Run-Time on iPhone” and have a comment from person who interest in iPhone development (He’ll do for grad’s project). So, I think I should write an Entry about “iPhone Development” as chapter over and above  only “Programming Tip”. I hope it useful for who interest and for exchange knowledge.

Says for a long time. Lets start!!

Chapter 0 : Before we’re start 

Before we start to iPhone Application Development. Check yourself. Do you have these thing ?

1. Mac Computer : I’m not an apple’s reseller but it essential. A first thing which you must had is Mac Computer (Intel is no prob but PPC I’m not sure, It’ll very slow). Say sorry to Windows users because Apple not release iPhone SDK for Windows.

But not fully monopolize. It’s have opensource iPhone Library too. But It’s work on Linux, Not have simulator, Not have a good IDE and etc. I think it’ll waste of time. But if you interest, Can look on this book  “iPhone Open Application Development: Write Native Objective-C Applications for the iPhone by Jonathan Zdziarski” 

2. Knowledge about Objective-C : Objective-C is a main programming-language for iPhone Application Development. For other, I’m not sure. Obj-C will not same as C# after Apple release Obj-C 2.0. About Obj-C I’ll say later.

3. Knowledge about Object-Oriented Programming : Not only for iPhone App Dev but for current programming. If you not understand, you must try. Hard practice is better for you especially  practice on Cocoa or Cocoa Touch Framework. It’s help you more understand about OOP because it force you to done everything as object.

4. Knowledge about MVC Design Pattern : It’s essential too. Now MVC is a popular design pattern for application because it easy to manage and enlarge a work scale in later version. Now all of application design on MVC Design Pattern.

For a main is these 4 things which you must have before application development for iPhone for 2-3 choice you can read from general in internet. Or if you want to read from book, I recommend Cocoa(R) Programming for Mac(R) OS X (3rd Edition) by Aaron Hillegass. This book is like as a Bible for Cocoa Programming. Or read from developer Connection of Apple.

มกราคม 22, 2009 at 7:19 pm 4 ของความคิดเห็น

Cocoa & iPhone Development : Add UIButton in Runtime

แบบภาษาไทย

สำหรับผู้ที่ศึกษาการเขียนโปรแกรมด้วย Cocoa Framework หรือ Cocoa Touch Framework และ Objective-C ส่วนมากจะคุ้นเคยกับการสร้างปุ่มโดยการวางลงไปในหน้า View ของเราที่อยู่ในหน้า Interface Builder แล้วก็สร้าง Action ขึ้นมาในคลาสแล้วก็ลากเชื่อม Action กับปุ่มที่เราสร้างขึ้นใช่มั้ยครับ

อันนั้นเป็นวิธีการสร้างปุ่มแบบ Static ใน Compile-Time ซึ่งไม่มีอะไรยุ่งยากซับซ้อน เพราะตัว XCode และ IB สามารถทำงานร่วมกันได้เป็นอย่างดีอยู่แล้ว ข้อดีของมันคือง่ายไม่ซับซ้อน แต่บางครั้งเราอาจต้องการปุ่มที่มีความยืดหยุ่นมากกว่า  เช่น ปุ่มที่สามารถเลือกได้ว่าในขณะนั้นมันควรเลือกใช้ Method ไหนกันแน่ภายใต้เงื่อนไขนั้นๆ ดังนั้น ใน Entry นี้จะกล่าวถึงการสร้างปุ่มที่จะถูกสร้างและแสดงผลในช่วง Runtime

อันนี้จะเป็นตัวอย่างการสร้างปุ่มใน UIKit ของ Cocoa Touch Framework นะครับ

เริ่มต้นการสร้างปุ่มก่อนเป็นอย่างแรก

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

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

button.frame = CGRectMake( พิกัด X, พิกัด Y, ความกว้าง, ความสูง)

เราได้ปุ่มมาแล้ว ต่อไปเป็นการกำหนดว่าปุ่มนั้นจะเรียก Method อะไรเมื่อถูกกด กำหนดแบบนี้ครับ

[button addTarget:self action:@selector(Method ที่ต้องการจะให้ทำ) forControlEvents:(UIControlEvent)แอคชั่นบนปุ่ม];

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

[self.view addSubview:button];

เท่านี้เราก็ได้ปุ่มที่ถูกสร้างขึ้นในช่วง Runtime เรียบร้อยแล้วครับ ไม่ยากเลย

Happy Coding นะครับ.

In english version.

For the people who study about programming on “Cocoa Framework” or “Cocoa Touch Framework” and Objective-C will known how to create a button on a view of Interface Builder’s page. You’ll drag a button from Library and drag the line, connect between button and method in class which you created.

That solution is a way to create a static button in Compile-Time. It easy and not complex because XCode and IB can work good together. But sometime we’ll want a more flexible button such as button which can select a method under condition in each time. So, I’ll saying in this entry about a how to create a button in runtime.

This example is for UIKit on Cocoa Touch Framework/

At first. We must create a button.

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundRect];

now We got a button . We can customize many property about button such as size, position, title orimage and etc. You can read from reference document. Now, I’ll show you how to set frame(size and position) of button. Do like this.

button.frame = CGRectMake( XPosition, YPosition , Width, Height);

When we finished customize button. Next, We’re assigning which method that our button do when got an action from user. We do like this.

[button addTarget:self action:@selector(Method) forControlEvents:(UIControlEvent)Action];

Finally. We show our button on the view by this method.

[self.view addSubview:button];

Just only, We got a button which created on runtime . Very easy.

Happy Coding

มกราคม 15, 2009 at 8:18 am 1 ความเห็น


del.icio.us For iPhone dev

Post Calendar

ตุลาคม 2019
พฤ อา
« ธ.ค.    
 123456
78910111213
14151617181920
21222324252627
28293031