iPhone: วิธีการใช้งาน Xcode สำหรับการพัฒนาแอพพลิเคชั่นบนไอโฟน (2)


iPhone: วิธีการใช้งาน Xcode สำหรับการพัฒนาแอพพลิเคชั่นบนไอโฟน ตอนที่ 2 ระบบไฟล์ต่างๆ ในโปรเจคที่ควรรู้จัก

เมื่อเข้าสู่หน้าแรกของโปรเจค ส่วนทางด้านซ้ายมือจะเป็นส่วนที่แสดงไฟล์ต่างๆ ที่อยู่ในโปรเจคของเรา โดยไฟล์ต่างๆ เหล่านี้จะถูกจัดให้อยู่เป็นกลุ่มๆ อย่างเป็นระเบียบ ได้แก่

  • กลุ่มของซอสโค้ด จะประกอบด้วยไฟล์ คลาสของ Objective-C ไฟล์ header (.h) ไฟล์ implement (.m) และไฟล์ Interface Builder (.xib)
  • กลุ่มของ Support Files จะประกอบด้วยไฟล์ .plist .strings .pch และ main.m
  • กลุ่มของ Frameworks จะประกอบด้วยเฟรมเวิร์คหลักที่จำเป็นต้องใช้ในการเขียนแอพพลิเคชั่นแบบ User Interface
  • กลุ่มของ Products จะประกอบด้วยไฟล์ .app ซึ่งสามารถมีได้มากกว่า 1 ไฟล์ต่อ 1 โปรเจคซึ่งเป็นไฟล์เดียวกับ Target ไฟล์

โดยในแต่ละไฟล์นั้นมีหน้าที่และประโยชน์อย่างไรต่อการพัฒนาแอพพลิเคชั่นของเราบ้าง มาเริ่มศึกษากันเลย


 1) ไฟล์โปรเจค (ไอคอนรูป Xcodeสีฟ้า) เป็นไฟล์ที่เอาไว้จัดการในส่วนต่างๆ ของ Project และ Targets เช่น การกำหนดชื่อที่ใช้แทนตัวแอพพลิเคชั่น เวอร์ชั่น รูป Icon และ Splash Screen การจัดการในส่วนของ Certificate File ในการ Debug หรือ Release การจัดการเกี่ยวกับการนำเข้า Frameworks ใหม่ เป็นต้น เราลองมาศึกษาในแต่ละส่วนกันดูดีกว่านะครับ เริ่มจากส่วนของ Project ตามรูปด้านล่าง

1.1) Project เมื่อกดเลือกชื่อโปรเจค เราจะเห็นรายละเอียดของโปรเจค (Info) เช่น เราจะให้แอพพลิเคชั่นของเรานั้นรองรับ iOSเวอร์ชั่นไหน (iOS Deployment Target) การตั้งค่าในส่วนของการ Debugแอพพลิเคชั่นตอนทดลองหรือการ Releaseแอพพลิเคชั่นเข้าสู่เครื่อง การกำหนดภาษา เป็นต้น และอีกแท็ปหนึ่งคือ การตั้งค่าการรันแอพพลิเคชั่น (Build Setting) ในส่วนนี้หลักๆ เราจะตั้งค่าในส่วน Code Signing เวลาที่จะทดสอบบนเครื่องจริงหรือการนำไฟล์เข้า app store โดยปกติแล้วการตั้งค่าของ Project Build Setting จะเหมือนกับ Targets Build Setting ซึ่งจะกล่าวถึงเป็นส่วนต่อไป

1.2) Target เป็นส่วนของแอพพลิเคชั่นที่จะถูกนำไปใช้เป็นแอพพลิเคชั่นของเรา ซึ่งในหนึ่ง Project นั้นมีได้มากกว่าหนึ่ง Target แท็ปการตั้งค่าของ Target จะมีทั้งหมด 5 แท็ป (ตามรูปด่านล่าง) ได้แก่ Summary, Info, Build Setting, Build Phase และ Build Rule ส่วนที่เราจะได้เข้าไปเปลี่ยนแปลงค่าต่างๆ บ่อยครั้งที่สุดคือ Summary, Build Setting และ Build Phase

Summary เป็นการแสดงรายละเอียดของแอพพลิเคชั่นที่จะถูกนำออก เช่น ชื่อแอพพลิเคชั่น, iOS ที่รองรับ, เวอร์ชั่นของแอพพลิเคชั่น, การรองรับ iPhone/iPad, การใส่ภาพไอคอนและภาพ Splash Screen, การกำหนดการแสดงผลของหน้าจอแบบแนวตั้งและแนวนอน

Build Setting เป็นส่วนการตั้งค่าของการรันแอพพลิเคชั่นของเราออกไปใช้ในเครื่อง iPhone/iPad โดยส่วนที่จะได้เปลี่ยนกันอยู่บ่อยคือ ส่วนของ Code Signing (ตามภาพด้านล่าง) เราต้องใส่ Certificate Sign ด้วยเวลาที่จะนำแอพพลิชั่นที่เราเขียนเข้าเครื่อง iPhone/iPad หรือ เข้า app store โดยการใส่ Certificate มี 2 อย่างคือ Debug การใช้ในการทดสอบแอพพลิเคชั่นระหว่างการพัฒนา และ Release จะใช้เมื่อเราจะนำแอพพลิเคชั่นออกให้เครื่องอื่นๆ ใช้ (เครื่อง iPhone/iPad ที่ไม่ใช่เครื่องที่ใช้พัฒนา) โดยการทำไฟล์ Certificate Sign สามารถอ่านเพิ่มเติมได้ที่ http://developer.apple.com

Build Phases ส่วนที่ใช้ส่วนใหญ่ของ Build Phases จะเป็นการเพิ่ม Frameworks โดยการเลือกที่ Link Binary With Libraries แล้วกดเครื่องหมาย + เพื่อเพิ่ม Frameworks ใหม่ที่เราต้องในโปรเจคของเราเพิ่มเติมได้ที่นี้ ตามรูปด้านล่าง

2) ไฟล์ซอสโค้ด จะประกอบด้วยไฟล์ คลาสของ Objective-C ไฟล์ header (.h) เป็นไฟล์ที่ใช้ประกาศตัวแปรและฟังก์ชั่นต่างๆ ของคลาสนั้น ไฟล์ implement (.m) จะเป็นไฟล์ของการเขียนโค้ดโปรแกรมในส่วนของโค้ดที่เราได้ประกาศไว้ใน .h และไฟล์ Interface Builder (.xib) จะเป็นไฟล์ของการสร้าง User Interface โดยใช้โปรแกรม Interface Builder ซึ่งรวมอยู่ในโปรแกรม Xcode4 ดังรูปด้านล่าง

จะเห็นว่าคลาสไฟล์ Objective-C จะมีมาให้ 2 ชุดคือ Delegate ได้แก่ไฟล์ AppDelegate.h, AppDelegate.m และ ViewController ได้แก่ ViewControl.h, ViewControl.m, ViewControl.xib ไฟล์ดังกล่าวจะนำหน้าด้วยชื่อโปรเจคที่เราตั้งไว้ และMainWindow.xib รายละเอียดดังต่อไปนี้

AppDelegate.h และ AppDelegate.m เป็นไฟล์ที่ควบคุมวัฏจักรของแอพพลิเคชั่น เช่นการเริ่มรันแอพพลิเคชั่น หยุดการทำงานเมื่อเกิดการขัดขวางการทำงานเช่น มีสายโทรเข้า หรือการกดปุ่ม Home การกลับสู่แอพพลิเคชั่น การปิดแอพพลิเคชั่น การรันในโหมด Background ให้โปรแกรมยังทำงานอยู่ถึงแม้ผู้ใช้ปิดโปรแกรมไป (สำหรับ iOS 4 ขึ้นไป) เป็นต้น

ViewControl.h และ ViewControl.m เป็นไฟล์ซอสโค้ดของ User Interface หน้าแรกของแอพพลิเคชั่น

ViewControl.xib เป็นไฟล์การตกแต่ง User Interface ซึ่งจะสัมพันธ์กับไฟล์ ViewControl.h และ ViewControl.mในการพัฒนาแอพพลิเคชั่น

MainWindow.xib เป็นไฟล์ วินโดว์หลักของแอพพลิเคชั่นโดยที่จะโหลดไฟล์ ViewControl.xib ขึ้นมาแสดงดังรูปด้านล่าง

3) Supporting Files เป็นไฟล์อื่นๆ ที่ไม่ใช่ไฟล์คลาสของ Objective-C ซึ่งไฟล์เริ่มต้นเมื่อเราสร้างโปรเจคใหม่จะมีดังนี้

Info.plist ไฟล์ในการตั้งค่าที่เกี่ยวข้องกับแอพพลิเคชั่น เช่น ชื่อแอพพลิเคชั่น เวอร์ชั่น หรือ nib ไฟล์เริ่มต้น อีกทั้งเรายังสามารถเพิ่มรายการใน Info.plist ได้ด้วยการคลิกขวา add row เลือกรายการที่ต้องการ เช่นการเพิ่มให้แอพพลิเคชั่นสามารถใช้ Wifi ได้โดยเลือก Application uses wifi เป็นต้น

InfoPlist.strings การกำหนดการตั้งค่าตัวแปรและค่าของตัวแปรในแต่ละภาษาที่ใช้ในแอพพลิเคชั่น

Prefix.pch คือไฟล์ Precompiled Header เป็นไฟล์ที่รวมรายการชื่อของเฟรมเวิร์คเริ่มต้นที่โปรเจคเรานำมาใช้ ไฟล์นี้เป็นจะสร้างขึ้นมาให้เมื่อเริ่มสร้างโปรเจคใหม่ และไม่จำเป็นต้องไปแก้ไข

main.m คือไฟล์ที่ใช้เริ่มต้นใช้รันแอพพลิเคชั่นที่ฟังก์ชั่น main() หากไม่จำเป็นไม่ต้องไปแก้ไขไฟล์นี้นะครับ

4) Frameworks เป็นกลุ่มของไลบรารี่ที่เราต้องนำเข้ามาเพื่อใช้ฟังก์ชั่นที่จำเป็น ซึ่งเฟรมเวิร์คเริ่มต้นที่จำเป็นสำหรับการทำแอพพลิเคชั่นมี 3 เฟรมเวิร์ค ได้แก่ UIKit มีฟังก์ชั่นเกี่ยวกับการสร้าง User Interface หลักๆ ของการพัฒนาแอพพลิเคชั่นบน iPhone/iPad ชื่อคลาสจะขึ้นต้นด้วย UI, Foundation มีฟังก์ชั่นพื้นฐานในการเขียนโปรแกรม และ CoreGraphics มีฟังก์ชั่นเกี่ยวกับการใช้งานกราฟฟิค ชื่อคลาสจะขึ้นต้นด้วย CGเราสามารถเพิ่ม Frameworks ใหม่ได้ที่ Build Phases ใน Target แท็ปที่ 4 กดที่เครื่องหมาย + ตามรูปด้านล่าง

5) Products เป็นกลุ่มของแอพพลิเคชั่นที่จะถูกนำออกไปใช้งานหรือเรียกอีกอย่างว่า Target เราสามารถสร้าง Target ได้มากกว่าหนึ่ง Target ในหนึ่งโปรเจค เพื่อเป็นการประหยัดซอสโค้ดบางไฟล์ที่จำเป็นต้องใช้ร่วมกัน วิธีการสร้าง Target ใหม่ทำได้โดย ไปที่หน้า Target คลิกขวาเลือก Duplicate Target ดังรูปด้านล่าง

เมื่อเราสร้าง Target มาเพิ่มแล้ว เวลาเราจะเซ็ตว่าไฟล์ไหนใช้กับ Target ตัวไหนให้เราไปเลือกที่ property ของไฟล์ .m แล้วเลือกที่ Target Membership เลือก Target ที่ต้องการตามรูปด้านล่าง

6) Resource File กลุ่มนี้จะไม่มีในโปรเจคเริ่มต้นนะครับ แต่เราสามารถสร้างกลุ่มขึ้นมาใหม่สำหรับเก็บไฟล์รูปภาพ ไฟล์เสียง ไฟล์ฐานข้อมูล เป็นต้น ที่จะนำมาใช้งานภายในแอพพลิเคชั่นของเรา วิธีการสร้างกลุ่มใหม่ทำง่ายๆ คือ คลิกขวาที่โปรเจคแล้วเลือก New Group เสร็จแล้วเราก็ลากไฟล์ต่างๆ มาเก็บไว้ได้ตามเหมาะสม จะทำให้โปรเจคของเราเป็นระเบียบและจัดการได้ง่า่ย

Tip! เพื่อความเป็นระเบียบของโปรเจคให้แยกกลุ่มของ Resource เอาไว้ต่างหาก เช่น กลุ่มของรูปภาพ เสียง วีดีโอ ให้แยกไว้เป็นกลุ่มๆ ไป

บทความที่เกี่ยวข้อง

adaydesign :)

About adaydesign

นักพัฒนาแอพพลิเคชั่นบนโมบาย [iPhone Android] คนหนึ่งซึ่งอยากจะบันทึกเรื่องราวของเส้นทางนักพัฒนาโมบายแอพพลิเคชั่นเอาไว้ในบล็อคน้อยๆ แห่งนี้ เผื่อจะแบ่งบันและแลกเปลี่ยนความรู้ให้กับคนอื่นๆ ได้บ้าง :) Mobile Application Developer; Flash Mobile, iPhone/iPad, Android Mobile Phone/Tablet and Blackberry Playbook.

Posted on สิงหาคม 28, 2011, in [Dev] iOS and tagged , . Bookmark the permalink. 4 ความเห็น.

  1. อยากทราบวิธีการใส่เสียงอะค่ะ แบบถ้ากดแล้วให้มีเสียงขึ้นมา แล้วต้องทำยังไงหรอคะ

  1. Pingback: AD@Y: XCode4 Thai User Guide by adaydesign | aD@Y D3s!GN .com

  2. Pingback: aD@Y : The Anniversary 1 Year aD@Y Des!GN’s Blog | aD@Y D3s!GN .com

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: