Introduction to Cocoa

ห่างหายไปนานกว่า เพราว่าผมย้ายโฮสมาเป็นเช่าเองทำเอง และยิ่งช่วงนี้ผมไม่ค่อยว่างจะเขียน Blog สักเท่าไหร่ ผมกลัวว่า blog จะร้างซะก่อน รับปากหลายทีแล้วว่าจะเริ่มเข้าสู่ cocoa ให้ได้ และวันนี้จะขอเกริ่นในภาพรวมของ Cocoa กันก่อนว่ามันคืออะไรและเราจะได้ใช้อะไรบ้าง

What is Cocoa ?

การเขียนโปรแกรมบน Mac นั้นมี Framework เพื่อให้นักพัฒนาได้ใช้ใช้อยู่ด้วยกัน 2 Framework ใหญ่ๆคือ Carbon และ Cocoa เหตุผลที่ต้องมีถึง 2 Framework นั้นก็เพราะว่า

Carbon นั้นเป็น Framework สำหรับภาษา C/C++
Cocoa เป็น Framework สำหรับภาษา Objective-C

ถ้าหากจะมองเป็นลักษณะภาพโดยรวมว่า Cocoa อยู่ในส่วนไหนของการเขียนโปรแกรมแล้วก็จะได้แบบนี้

โดยปกติแล้วไม่ว่าจะเขียนด้วย cocoa หรือ carbon อย่างใดอย่างหนึ่งก็ตาม class ทั้งสอง Framework จะมีความคล้ายคลึงกันเป็นอย่างมาก อาทิเช่น NSView ( Cocoa ) ก็จะมี class ที่คล้ายๆกันคือ HIView ( Carbon )

แล้วอะไรทำงานเร็วกว่า ?

จากรูปข้างบน ไม่ว่าจะเป็น Carbon หรือ Cocoa เองต่างก็ทำงานในระดับเดียวกัน เพราะสุดท้ายแล้วหลังการ compile เราก็จะได้ Binary ออกมาคล้ายกัน ( แต่ผมคิดว่า ถ้ามองในแง่ของการเขียนโปรแกรมแล้ว ผมว่าเขียน cocoa จะง่ายกว่า carbon เยอะ )

Cocoa Framework

cocoa นั้นประกอบได้ด้วย Framework ย่อยลงไปอีกต่างๆมากมาย โดยแบ่งออกเป็น หลักๆ ได้ 3 ส่วนคือ

  1. Foundation Framework
  2. Application Framework
  3. Other Framework ( CoreData , Sync Services , etc )

ในส่วนของ Foundation Framework นั้นก็ได้แบ่งออกเป็น Class ต่างๆเยอะมากมาย และผมก็ได้ลองพาเขียน objective-c เกี่ยวกับ Foundation Framework มาบ้างแล้ว อาทิเช่น NSString , NSArray เป็นต้น. Class ที่เกี่ยวข้องกับ Foundation Framework นั้นส่วนมากจะเป็น class พิ้นฐาน ไม่ว่าจะเป็น class ที่เกี่ยวกับ string, number ,string , file เป็นต้น

และสำหรับ Appliction Framework เองก็ประกอบด้วย Class มากมายเหมือนกัน ได้แก่ Class ที่เกี่ยวข้องกับ interface ทั้งหลาย เช่นเป็นต้นว่า  NSView , NSMenu ,NSToolbar

แต่ไม่ว่าจะเป็น Class อะไรก็ตาม โดยส่วนมากแล้ว Class เหล่านี้จะมี root class เป็น NSObject

Tools

การเขียนโปรแกรมใน Mac นั้นจะมี tools แถมมาให้มากมาย สำหรับ tools ที่จำเป็นกับการเขียน cocoa มีอยู่ด้วยกัน 2 อย่างคือ Xcode กับ Interface Builder

  • XCode
    เป็น IDE ที่เอาไว้เขียนโปรแกรมบน Mac และฟรี โดยจะแถมมากับ Mac อยู่แล้วโดยปกติจะไม่ได้ลงมาให้ เราต้องลงเอง ซึ่งก็ลงได้จาก แผ่น DVD/CD ที่แถมมากับเครื่องนั่นเหละครับ หรือว่าจะไป Download เองที่เวปของ apple ก็ได้ สำหรับคนที่ยังใช้ xcode ไม่เป็น แนะนำให้ไป อ่าน XCode Tutorial หรือว่าจะดูในแบบ XCode Tutorial VDO ก็ได้
  • Interface Builder
    เป็น Tool สำหรับเอาไว้ออกแบบหน้าตาของโปรแกรมว่าจะให้มันมี หน้าตาเป็นแบบไหน และ interface builder นี่เองจะเป็นตัวช่วยให้เราเขียน cocoa ได้ง่ายขึ้นแบบสุดๆ

ไว้เดี๋ยวครั้งหน้าเดี๋ยวมี Cocoa Tutorial มาแน่นอน

4 thoughts on “Introduction to Cocoa”

  1. -(IBAction) addStudent:(id) sender;
    {
    NSString *text = m_textField.text;
    if ([text isEqualToString:@””])
    {
    [m_studentList addObject:[NSMutableString stringWithString:text]];
    [m_table reloadData];
    }
    }

    -(IBAction) delStudent:(id) sender;
    {
    NSIndexPath *indexPath = [m_table indexPathForSelectedRow];
    if ([indexPath isEqual:nil])
    {
    int row = [indexPath row];
    [m_studentList removeObjectAtIndex:row];
    [m_table reloadData];
    }
    }

    ช่วยหนูหน่อย หนูผิดรึป่าว

  2. หลังจากที่หา tutorial ดีๆ มานาน ก็เจอเข้าแล้ว ฮ่าๆๆ ขอบคุณครับ

Leave a Reply