หลังจากที่คิดอยู่นานว่าจะเริ่มอย่างไรดีกับ iPhone SDK และผมคิดว่ามีหลายๆคนอยากจะเขียนโปรแกรมสำหรับ iPhone แต่ยังไม่รู้เลยว่า มันจะเขียนยังไง สำหรับบทความนี้ เป้าหมายหลักของผมคืออธิบายภาพรวมของการเขียนโปรแกรมบน iPhone ให้เข้าใจกันเบื้องต้นว่า ก่อนที่คุณจะเขียนโปรแกรมบน iPhone นั้นสิ่งที่ต้องรู้เบื้องต้นคืออะไร

Language
การเขียนโปรแกรมบน iPhone นั้นแบ่งภาษาที่ใช้ในการเขียนหลักๆเป็น 3 ภาษา ( จริงๆมีอีกภาษาคือ objective-c++)

Objective C C C#
ภาษาอื่นๆหมดสิทธ์ อาจจะมีภาษาอื่นในอนาคต อย่างกรณีภาษา C# ทาง Apple ไม่ได้สนับสนุนโดยตรงแต่เกิดขึ้นมาจาก Mono-Project ถ้าหากเขียน java หรือ Visual Basic มาก่อน ก็คงต้องเลือกเอาละครับว่า ต้องเรียนรู้ภาษาใดภาษาหนึ่งเพิ่มเติมแน่นอน

แนะนำข้อดีของแต่ละอันดีกว่าว่ามันมีดีต่างกันยังไง

ภาษา C

ข้อดีของภาษา C ที่ผมเห็นว่ามันดีที่สุดคือ การหาหนังสือเกี่ยวกับการเขียนโปรแกรมภาษา C ง่ายมาก หนังสือภาษาไทยก็มี เดินเข้าร้านหนังสือก็เจอแล้ว ( แต่ไม่ค่อยมีหนังสือภาษาไทยที่ลงลึกการเขียนโปรแกรมด้วย C สักเท่าไหร่ ) และไม่ใช่แค่หนังสือแต่รวมไปถึง source code, library, tutorial และมี community ที่ใหญ่มาก และมันเป็นภาษาที่นิยมแพร่หลายและเก่าแก่ และในปัจจุบันก็ยังนิยมใช้อยู่

ข้อเสียที่ผมคิดว่ามันน่าจะเป็นเรื่องของ การเขียนโปรแกรมด้วยภาษา C ให้ได้ดีนั้นค่อนข้างยาก ไม่ใช่ว่าภาษามันไม่ดี แต่เป็นเพราะว่าตัวภาษามันค่อนข้างจะมีรายละเอียดปลีกย่อยเยอะ กว่าจะเก่งใช้เวลาเรียนรู้นาน แต่ด้วยความสามารถของตัวภาษา มันสามารถลงลึกถึงขั้นจัดการหน่วยความจำหรือแม้กระทั่งตัว hardware โดยตรงได้ และนี่ก็เป็นดาบสองคม เพราะถ้าเขียนโปรแกรมให้มันจัดการหน่วยความจำไม่ดี โปรแกรมเราก็ทำงานได้ประสิทธิภาพที่แย่มากๆ และหนำซ้ำอาจจะไปทำให้ระบบรวนอีก ( สำหรับภาษา java หรืออื่นๆนั้น แทบจะไม่ต้องไปทำเขียนอะไรเกี่ยวกับหน่วยความจำเลย เพราะมันมี Garbage collector เอาไว้จัดการหน่วยความจำให้เรียบร้อย )

จริงๆแล้วการเขียนโปรแกรมด้วย ภาษา C นั้นจำเป็นต้องเพิ่งภาษา Objective-C อยู่ดีเพราะเราต้องอาศัย interface builder แต่อย่างที่ผมบอกไว้ว่า Library ของภาษา C นั้นมีเยอะมาก เราสามารถนำ Library ของภาษาที่มีอยู่แล้วนำมาใช้ร่วมกันกับ ภาษา Objective-C ได้อย่างไม่มีปัญหา

สำหรับโปรแกรมที่ใช้ภาษา C เป็นหลักก็จำพวก Game ครับ

ภาษา Objective-C

ข้อดีของมันคือ ภาษา objective-c มันค่อนข้างเรียนรู้ง่าย ไม่ซับซ้อน ( เค้าบอกว่ามันเป็นเหมือนภาษา C ผสมกับ smalltalk ) และมี Framework, Library ให้ใช้เยอะมาก ภาษามีความยืนหยุ่นสูง และเนื่องจากว่ามันเป็น small super set of C นั่นก็แปลว่า เราสามารถใช้ lib หรือ code ของ C ได้ ( ไม่ใช่ C++ น่ะ ) และตัวภาษายังอนุญาติให้เราเข้าไปจัดการหน่วยความจำได้เหมือนกัน แต่ก็ไม่ยืดหยุ่นมากเท่ากับ c และมันยังมี Garbage Collector ในกรณีที่ไม่ต้องการจัดการหน่วยความจำเอง (แต่ในกรณีของ iPhone Garbage Collector จะไม่สามารถใช้ได้) และข้อดีที่สุดคือ การเขียน application บน iPhone นั้น ถ้าเขียนด้วยภาษา objective-c คือมันมี interface builder ทำให้เราออกแบบ User Interface ได้อย่างง่ายดาย

ข้อเสียคือ หนังสือให้อ่านน้อยมาก *** ย้ำว่าน้อยมาก *** หนังสือภาษาไทยตอนนี้เท่าที่เห็นมีเล่มเดียวคือ iPhone Programming Cook Book และจำนวนแหล่งความรู้เพิ่มเติมของ Objective-C นี้ก็น้อยมาก ติดปัญหาก็ไม่รู้จะไปหาคำตอบได้ที่ไหน อย่างเวปของไทย ที่เกี่ยวกับ Objective-C ก็น้อยมากๆ เทียบกับ .net หรือ java ก็คนละเรื่องเลย ( บางคนอาจะไม่เคยได้ยินชื่อภาษา Objective-C มาก่อนด้วยซ้ำไป ) จากสิ่งนี้ทำให้ การหา source , tutorial นั้นยากตามไปด้วย ต้องหาคำตอบหรือความรู้เพิ่มจากเวปของต่างประเทศค่อนข้างเยอะ คนไม่เก่งภาษาอังกฤษ ก็ลำบากหน่อย
ภาษา C#

ในความคิดส่วนตัวของผมคิดว่า C# เป็นภาษาที่ควรจะพิจารณาเป็นลำดับสุดท้าย เพราะเนื่องด้วยว่า Apple ไม่ได้สนับสนุนโดยตรง และการเขียน iPhone ด้วย C# นั้นต้องการ IDE ของ mono-project ซึ่งต้องซื้อเพิ่มเติม ราคาก็บาทอยู่เหมือนกัน ที่สำคัญครับยังต้องเขียนบน mac และอาศัย iPhone SDK อยู่ดี เหมาะสำหรับ โปรแกรมที่มีอยู่แล้วใน platform อื่นที่เขียนเป็น C# อยู่แล้วมากกว่า ถ้าใครสนใจจริงๆ ก็ไปอ่านรายละเอียดเพิ่มเติมได้ที่่ http://monotouch.net/

ส่วนเรื่องอื่นๆในรายละเอียดของภาษาว่าแตกต่างกันอย่างไรในแบบลึกๆ ลองไปดูเพิ่มเติมได้ที่

http://en.wikipedia.org/wiki/Comparison_of_programming_languages

แล้วควรจะเลือกภาษาใด ?

จากประสบการณ์ของผมขอแนะนำให้ศึกษา ภาษา Objective-C เป็นภาษาหลักส่วนภาษาอื่นๆเป็นภาษารอง

Framework
apple ได้ออกแบบ Framework มาเป็น 2 อย่างคือ

  • Cocoa
  • Carbon
สองอย่างนี้ มันสามารถทำงานร่วมกันได้ในบางส่วน แต่โดยปกติแล้วจะแยกจากกัน สำหรับการเขียนโปรแกรมบน Mac นั้น ถ้าเขียนโปรแกรมด้วยภาษา objective-c นั้นเราจะใช้ Cocoa ส่วน C/C++ นั้นจะใช้ Carbon ดังนั้นถ้าหากเลือกได้ว่าจะเขียน ด้วยภาษาใดแล้วมันก็เหมือนเป็นการบังคับไปเลยว่า เราต้องใช้ Framework แบบไหน แต่ข้อดีของมันก็คือว่า ทั้ง Cocoa และ Carbon ออกแบบมาใกล้เคียงกันมาก ยกตัวอย่าง NSView ( เป็นคลาสหนึ่งใน Cocoa ) ในส่วนของ Carbon ก็จะมีคลาสที่คล้ายๆกันคือ HIView และมี method ที่คล้ายๆกันอีกต่างหาก ( แต่ concept การทำงานบางอย่างมันจะไม่เหมือนกันซะทีเดียว )

แต่สำหรับ iPhone แล้ว Apple ได้ออกแบบ Framwork ใหม่ที่มีชื่อว่า

Cocoa Touch
ซึ่งเป็น Framework ที่ออกแบบมาเหมือนกับ Cocoa แต่มีขนาดเล็กกว่า ฉนั้นแล้วการเขียนโปรแกรมด้วย iPhone นั้นก็ต้องใช้ Cocoa Touch ครับ เว้นแต่ว่าจะเขียนโปรแกรมจำพวก Game อาจจะไม่จำเป็นต้องศึกษาให้ลึกซึ้งมากนัก

Tools
เครื่องมือที่ใช้ในการเขียนโปรแกรมสำหรับ iPhone นั้นมีสองอย่างคือ XCode และ monotouch สำหรับ C# ในส่วนของ Development Tool ของ Apple เองนั้นจะประกอบไปด้วยส่วนย่อยๆอีก หลายอัน เช่น Simulator , Instrument

Xcode นั้นเป็นโปรแกรมที่แถมมาฟรีกับ Mac OSX โดยปกติจะอยู่ในแผ่นที่แถมมาตอนซื้อเครื่องในแผ่นที่ 2 ถ้าไม่มีก็โหลดได้จากเวปของ apple แต่ต้องสมัครเป็นสมาชิก adc member ก่อน และในตอนนี้ XCode ก็ออกมาเป็น version 3.1 แล้ว ถ้าหากเป็น Snow Leopard ก็จะเป็น 3.2
Ready ?
หลังจากรู้คร่าวๆไปแล้ว ว่าการที่เราจะเขียนโปรแกรมบน iPhone นั้นมีขั้นตอน และต้องรู้อะไรมาบ้าง แน่นอนว่าบางคนอาจจะต้องเรียนรู้ทุกอย่างใหม่หมด ตั้งแต่ ภาษา เครื่องมือ ในการเขียนโปรแกรม แต่อย่าไปกลัว เมื่อก่อนผมเองก็ยังไม่เคยเขียนโปรแกรมบน mac มาก่อนเลย ก็ยังอ่านและทดลองเองหมด ฉนั้นไม่ยากเกินความสามารถแน่ๆ

สรุปว่า ถ้าอยากเขียนโปรแกรมบน iPhone สิ่งที่จะต้องรู้ก็คือ

ภาษา c หรือ objective-c หรือ C# ( แต่ผมไม่แนะนำ )
Cocoa Touch
XCode
Interface Builder
ครั้งหน้าเราจะมาเริ่มเขียนโปรแกรมกันครับ

Las Vegas
Las Vegas คือ...แสง สี ไฟ เสียงอึกทึก ผู้คน ความวุ่นวาย เสียงแตร รถเชคเกอร์ริมทาง เหล่าสถาปัตยกรรมทั่วโลก เสียงชิปเคาะไปมา ความอื้ออึงเรียงรายของเครื่องสล๊อตแมชชีน ควันบุหรี่ ซีฟู้ด ฯลฯ
เหล่านี้คือความงดงาม ความสนุกสนานดนตรีและอาหารเยี่ยม (เลียนแบบรมว.ต่างประเทศพูดถึงกรณีสุวรรณภูมิและดอนเมือง ฮ่าๆ) - -อันนี้แล้วแต่มุมมองว่ากันไม่ได้
ลาสเวกัสที่นี่เป็นเมืองที่อนุญาตให้ผู้คนถือเบียร์ถือเหล้าเดินว่อนกินกันริมทางได้เมืองส่วนมากในอเมริกาห้ามมาเดินถือดริงค์ถือเบียร์ตะโกนเต้นโหวกเหวกริมทาง


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



คือถ้าคิดแล้วว่าจะมาเสื่อมเนี่ย ที่นี่มีความเสื่อมหลากหลายแบบให้เลือกเลยทีเดียวบนถนนรถราป้ายโฆษณาก็จะมีแต่เรื่องยั่วยวน บริการทางเพศหลากหลายรูปแบบแผ่นใบปลิวแจกก็จะมีเบอร์น้องๆหนูๆให้โทร โชว์เซ็กซี่ เป็น Sex and the city เอามากอื่นๆที่พบทั่วไปก็เช่นโปรโมชั่นกินเบียร์เล่นฟรีอะไรแบบนี้คือจะมาเสเพลเสื่อมบาปก็ต้องที่นี่




::โอกาส

คุณจะพบโอกาสในเมืองแห่งนี้ได้ถ้า


-คุณสามารถหางานทำที่นี่ได้ (คนไทยเยอะทีเดียวทั้งนักเล่น และคนทำงาน ซึ่งรวมกับชาวเอเชียอื่นๆ)

-ถ้าคุณคิดเลขเก่งไว คุณจะสามารถสมัครงานตามกาสิโนเป็นร้อยๆแห่งได้ง่ายๆที่อเมริกามีโรงเรียนฝึกบุคคลากรแนวนี้ด้วย ฉันฟังจากคนไทยที่นั่นที่กำลังเล็งจะไปเรียนเล่าให้ฟัง

-ถ้าคุณยังคิดเลขไม่ไว ไม่ช่างสังเกต ภาษายังไม่คล่อง คุณจะมีตั้งแต่ยืนเช็ดตู้สล็อตฯบ้างทำความสะอาดปัดๆกวาดๆแถวโต๊ะบ้าง หรือไปเดินเสิร์ฟเครื่องดื่มบ้าง

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

::หายนะ

คุณจะพบหายนะในเมืองแห่งนี้ได้ เช่น


ราวสี่ทุ่มหน้าโรงแรมฮาราห์พวกเรายืนดูเค้าโยกตู้สล็อตกันอยู่
Hello, I'm getting married.

My friends and I have Bachelor partyหนุ่มหน้าตาวัยรุ่นตัวผอมๆเดิมมาพูดแบบยิ้มน้อยๆหน้าตาเกรงอกเกรงใจ พร้อมผายมือไปทางกลุ่มเพื่อนอีก 3 คนยืนยิ้มๆเขินๆกันอยู่
ฉันกับคณะก็พยักหน้า And so?Do You have any condom?กึก (คิดในใจ บวกลบคูณหารคำนวณราวกับจะเล่นแบล็คแจ็ค)Congratulation for marriage. And sorry, I haven't... ตอบไปแบบยิ้มๆ
หนุ่มฝรั่งยังคงยิ้มIt's Ok, all right Goodbye.ยิ้มและเดินจากไป

รักเดียวใจเดียว รุจ THE STAR

ขอบคุณน๊าาาาาาา [^-^g0o^-^]


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






"ากดาวดวงหนึ่ง คือพรที่คุณสามารถของสิ่งดีงามจากท้องฟ้าได้...
คุณก็จะมีพรดีดีมากมาย ในค่ำคืนของที่นี่ บรรยากาศที่ท้องฟ้าเต็มไปด้วยดวงดาว รอบตัวเต็มไปด้วยความสดชื่นยิ่งใหญ่จากป่าไม้บนภูเขา..จะมีอะไรที่สวยงามอ่อนโยนไปกว่าการได้เห็นหมอกยามเช้าลอยเรี่ยน้ำ..เห็นประติมากรรมของธรรมชาติที่สร้างสรรค์ไว้อย่างสวยงาม...
"
Link : http://www.tourtooktee.com/programtour_detailpage.asp?nID=491

Maldives มัลดีฟส์ สวยจริงสมคำร่ำลือ


แต่ไม่ได้ไปก็ไม่ต้องเสียดาย..เพราะเราจะพาคุณไปชมบรรยากาศสวยๆ ของเกาะมัลดีฟส์นี้กันแล้วค่ะเชื่อว่าหลายๆ คนที่ชื่นชอบในการไปเที่ยวทะเล, ดำน้ำชมปลา ปะการังสวยๆ Maldives มัลดีฟส์ คงเป็น 1 ในดวงใจของใครหลายๆ คน ที่หวังว่าสักวันหนึ่งต้องไปที่นี่ให้ได้