หลังจากที่ผมห่างหายจากการเขียน Blog ไปนานมาก ผมก็พยายามจะกลับมาเขียนอีกครั้ง แต่วันนี้คงยังไม่ได้เขียนอะไร update หรือ tutorial อะไรใหม่ๆนะครับ ผมอยากจะเขียนเรื่องเดิม แต่เอามาเล่าให้ฟังอีกครั้ง หลายคนเป็นมือใหม่มากๆ ก็อาจจะยัง งง และงมเข็มไม่ถูก ดังนั้นวันนี้ผมบอกแนวทางในการเป็น iOS Developer นะครับว่า คุณควรจะไปศึกษาอะไร และไม่ควรไปศึกษาอะไร
Language
ครั้งก่อนโน้นผมเคยบอกว่า ภาษาที่ควรไปศึกษามีด้วยกันทั้งหมด 3 ภาษา คือ C , Objective-C , C# แต่วันนี้ผมขอฟันธงเลยครับว่า รู้แค่นี้ก็พอแล้วนั่นคือ
- English
ก่อนจะไปรู้ภาษาในการเขียนโปรแกรม ควรศึกษาภาษาอังกฤษเพิ่มเติมครับ มันช่วยได้เยอะมาก เพราะหนังสือต่างประเทศดีๆ เยอะมาก แต่เขียนด้วยภาษาอังกฤษ ฉนั้นแล้วถ้าหากภาษาอังกฤษ ยังไม่ดีก็ลำบากครับ - Objective-C
เป็นภาษาหลักในการเขียน iOS ไม่ว่าจะเป็น iPad , iPhone หรือแม้กระทั่ง Mac OS ก็ใช้ภาษา Objective-C เป็นหลัก รู้และต้องเข้าใจอย่างลึกซึ้งด้วยครับ - C/C++
ภาษานี้เป็นภาษาที่เก่ามากแล้วครับ หาหนังสืออ่านได้ง่าย ( แต่หาหนังสือภาษาไทยดีๆ ไม่ค่อยมี ) จริงๆแล้วภาษานี้เป็นส่วนเสริมครับ เพราะว่า ถ้าได้เริ่มเขียน objective-c ไปสักพัก บางอย่างของภาษา c ก็ยังจำเป็นต้องรู้ เช่น pointer หรือการใช้ macro ต่างๆ และถ้าต้องการจะเขียนเกมส์ด้วยแล้ว มันมีประโยชน์แน่นอน
แล้วภาษา C# ละ หรือ Action script ( Flash ) ?
คำตอบจากผมง่ายๆเลยครับ คือไม่มีประโยชน์
ทำไมถึงไม่มีประโยชน์ ก็เพราะว่าภาษาเหล่านี้ไม่ได้เป็นภาษาที่ได้รับการสนับสนุนจาก Apple เลย อาจจะได้ข่าวแว่วๆว่า เขียน iOS เขียนได้ด้วย C# หรือ Adobe Flash CS5 แปลงเป็น iOS App ก็ได้นะ .. ใช่ครับ มันเคยมีข่าว แต่ข่าวนั้นมันก็ตั้งหลายปีมาแล้ว และยังไม่มีวี่แววว่าจะเกิดขึ้นจริง ถ้าหากคุณมัวแต่รอว่าเมื่อไหร่ Adobe จะทำให้ Flash แปลงเป็น iOS ได้ หรือรอว่า เมื่อไหร่จะทำให้ C# เขียน iOS ได้ .. ผมบอกได้คำเดียวว่า เสียเวลาครับ เอาเวลารอ มาเริ่มเขียน Objective-C ยังจะดีซะกว่า การเริ่มต้นใหม่กับการเรียนรู้ภาษาใหม่ๆ ไม่เสียเวลาหรอกครับ และมันก็จะเปิดโลก ของคุณด้วยต่างหาก
Framework , Library
ตอนนี้ผมบอกได้คำเดียวเลยครับ CocoaTouch ครับคือคำตอบ เพราะมันหัวใจของ iOS ส่วน Library อื่นที่ควรจะรู้ไว้คือ
- Cocos2d ถ้าสนใจเกมส์ 2D นี่คือ Engine ที่ดีที่สุดแล้ว
- FMDB ไว้คอยช่วยเขียน SQLLite
- ASIHttp สุดยอด Network
- Three20 นี่ก็สุดยอด เป็น Lib ที่ Facebook ใช้งาน
Game
ถ้าอยากเขียน Game ใน iOS ผมมีแนวทางแนะนำดังนี้ครับ
- ศึกษา Objective-C ให้ลึกซึ้งครับ
- ศึกษา C ไว้ด้วย
- ศึกษา iPhone SDK ไว้นิดหน่อยก็พอแล้ว เช่นสร้าง App อย่างง่ายๆ รู้ว่า UIView คืออะไร UIWindows คืออะไร ก็เพียงพอต่อการเขียนเกมส์แล้วครับ
- ถ้าเขียนเกมส์ 2D ผมแนะนำให้ไปศึกษา Cocos2D ครับ เพราะนี่คือ 2D Engine ที่มีคนใช้เยอะมากๆ และก้อเขียนง่ายมากด้วย
อย่าไปหาพวก Tool ช่วยอย่างพวก RPGMaker , darkbasic , CDX , GameMaker อะไรแบบนี้เลยครับ เสียเวลาปล่าวๆ
ในมุมมองของส่วนตัวของผมเอง คิดว่าการจะเขียนเกมส์นั้นต่างจากเขียน Application ปกติ เพราะจำเป็นต้องรู้ถึงแก่นมันจริงๆครับ รู้ว่าทำไมคำสั่งนี้ มันถึงวาดออกมาเป็นรูปได้ รวมถึงรู้ OpenGL บ้างว่ามันทำงานยังไง เพราะถ้าคุณไม่รู้ สุดท้ายคุณก็จะตันครับ .. คุณจะไม่รู้วิธีการทำให้เกมส์ มีประสิทธิภาพมากขึ้น การปรับ Texture , การประหยัด Memory ( เพราะมือถือมี memory ที่จำกัด ) และอื่นๆอีกมากมาย
อย่างที่ผมแนะนำไป ศึกษา Objective-C โดยเฉพาะเรื่อง memory ให้ถ่องแท้ และไปดูพวก Cocos2D ดีกว่าครับ
เรียนเขียนโปรแกรมที่ไหนดี ?
พุดกันตรงๆนะครับว่า ถ้าจะเลือกที่เรียนเขียน iOS ผมแนะนำว่า ควรจะดูก่อนครับว่า ผู้สอนเค้าทำ Application อะไรมาบ้าง ? แล้วถ้าคุณเห็น App ของคนสอนแล้ว ก็น่าจะตัดสินใจได้แล้วครับ ว่าคนสอนรู้จริงๆหรือเปล่า ถ้าเค้าทำ App มาไม่ดี แล้วเค้าจะมาสอนเราให้เขียน app ได้ออกมาดีได้ยังไง ? จริงไหมครับ
แต่ถ้ามีเวลา อ่านหนังสือแล้วลงมือเองครับ ดีที่สุด รวมถึงการใช้ iPhone ของคุณให้เป็นประโยชน์ โดยการโหลดคอรสการเขียนโปรแกรมจาก Standford ใน iTune มาดู รับรองไม่ยากครับ
ติดปัญหา ?
Internet ครับ คือคำตอบ คุณมีเพื่อนร่วมชะตากรรม บนโลกตั้งมากมาย ที่เริ่มเขียน iOS ลองหากลุ่ม หรือ twitter ก็ช่วยท่านได้ ลอง follow ผมแล้วถามผมก็ได้ หรือถามก็ได้ว่ามีคนไหนน่าติดตามบ้าง จริงๆตัวผมเองพยายามจะทำ Web board ไว้คอยช่วยเหลือ นะ แต่เจอพวก spam เข้าไปเยอะมากจนเซ็ง
สุดท้ายครับ ตนเป็นที่พึ่งแห่งตนครับ อย่างที่ผมได้บอกไว้ว่า แต่ก่อนผมเองก็ไม่รู้ด้วยซ้ำว่า Objective-C คืออะไร XCode ใช้ยังไง แม้กระทั่ง Mac ก็ยังใช้ไม่เป็น แต่ก็หัดเอง อ่านเอง ทำเอง เรียนรู้เองด้วยความพยายาม ( ท้อ ก็มีบ้าง แต่ไม่ถอย )
สิ่งหนึ่งที่ผมอยากจะฝากไว้คือ ไม่ใช่ว่าผมเก่งกว่าพวกคุณ หรือผมฉลาดกว่า แต่ผมมีความเพียรเท่านั้นเหละครับ มันทำให้ผมสำเร็จ



biggoogle says:
ขอบคุณครับที่มีบทความดีๆ
ผมยังเข้ามาอ่านเรื่อยๆครับ
July 18, 2011, 11:27 pmkantae says:
ขอบคุณครับ
August 15, 2011, 1:32 pm