เป็นหนังสือที่ผมแปลแต่ลืมโฆษณาครับ หวังว่ายังไม่สายเกินไป
หนังสือมีชื่อภาษาไทยว่า “รวมโค้ด iPhone” ต้นฉบับของมันคือ The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK โดย Erica Sadun นักเขียนหญิงแห่งเว็บไอทีหลายๆ เว็บ เช่น TUAW และ Ars Technica
หนังสือเล่มนี้ใช้สไตล์การเขียนแบบ cookbook หรือรวมสูตรอาหาร นั่นคือไม่ต้องอ่านต่อเนื่องกันทั้งเล่ม แต่เป็นสูตรการเขียนโปรแกรมว่า ถ้าต้องการได้โปรแกรมลักษณะนี้ต้องทำอย่างไรบ้าง อ่านเฉพาะส่วนนั้นแล้วนำไปแก้ปัญหา (เชิงโปรแกรม) ที่ต้องการได้ทันที มันไม่ใช่หนังสือสอนเขียนโปรแกรมบน iPhone สำหรับผู้เริ่มต้น ดังนั้นควรมีความรู้ของการเขียนโปรแกรมบนแมค, Xcode, ภาษา Objective-C และเคยลองเขียนโปรแกรมบน iPhone มาบ้างสักเล็กน้อยครับ
คำเตือนอีกข้อคือหนังสือเล่มนี้เขียนขึ้นตอนเฟิร์มแวร์ 2.0 ยังไม่ออก แต่เนื่องด้วยกระบวนการในการพิมพ์ที่ยาวนาน ทั้งเล่มต้นฉบับและเล่มแปลไทย ทำให้ออกมาตอนเฟิร์มแวร์ 3.0 ออกแล้ว หลายส่วนในหนังสืออาจล้าสมัยและใช้งานไม่ได้ แต่ถ้าอ่านเอาแนวคิดว่าปัญหาเชิงโปรแกรมลักษณะนี้ใช้เทคนิคอะไรแก้ไข แบบนั้นไม่มีล้าสมัยครับ (หมายเหตุ: ผู้เขียนเองกำลังอัพเดตหนังสือให้ใช้กับเฟิร์มแวร์ 3.0 อยู่ อาจต้องใช้เวอร์ชันนั้นประกอบการเขียนโปรแกรมจริง)
ฉบับภาษาไทยพิมพ์โดยสำนักพิมพ์ Future Gamer ราคาปก 295 บาท หน้าตาเป็นดังภาพ
ปกหลัง กดเข้าไปดูรูปใหญ่ได้
ข้างในหน้าตาประมาณนี้
ผมคัดบางส่วนของบทนำ มาให้ดูจะได้นึกภาพออกว่าในหนังสือมีอะไรบ้าง เหมาะกับเราหรือเปล่า ใช่อย่างที่ต้องการหรือไม่
ปัจจุบัน มีแพลตฟอร์มสำหรับการพัฒนาโปรแกรมบนมือถือจำนวนไม่มากนักที่จะมีระดับของเทคโนโลยีเทียบเท่ากับ iPhone ซึ่งนำเอาขีดความสามารถของ OS X มารวมกับนวัตกรรมของจอสัมผัสแบบมัลติทัช นอกจากนี้ยังมีระบบการบอกพิกัดตำแหน่ง, ฮาร์ดแวร์ accelerometer และความสามารถอื่นๆ อีกมาก เมื่อครั้งที่แอปเปิลเปิดตัวชุดพัฒนา iPhone (iPhone SDK) รุ่นเบต้าที่ใช้ Cocoa Touch ในช่วงเดือนมีนาคม 2008 เซิร์ฟเวอร์ของแอปเปิลถึงกับล่มเพราะต้องรองรับการดาวน์โหลดของนักพัฒนาจำนวนมาก และสุดท้ายแล้วยอดดาวน์โหลดสูงถึงหนึ่งแสนครั้งภายในหนึ่งสัปดาห์ หนังสือ iPhone’s Developer Cookbook เล่มนี้เขียนขึ้นเพื่อเป็นแนวทางให้กับนักพัฒนาโปรแกรมบน iPhone หน้าใหม่ที่กำลังเข้าสู่ตลาดนี้เป็นจำนวนมาก
หนังสือเล่มนี้เหมาะสำหรับใครบ้าง?
หนังสือเล่มนี้ออกแบบมาสำหรับนักพัฒนาที่เพิ่งก้าวเข้าสู่โลกของ iPhone ซึ่งมีเป้าหมายชัดเจนอยู่แล้วว่าต้องการเขียนโปรแกรมอะไร แต่ยังไม่คุ้นกับชุดพัฒนาของ iPhone มากนัก แม้ว่าเป้าหมายในการพัฒนาโปแกรมของแต่ละคนจะต่างกัน แต่ผู้เขียนเชื่อว่ารูปแบบของงานที่ต้องทำก็จะไม่แปลกแยกจากกันมากนัก เช่น “เราจะสร้างตารางได้อย่างไร?” “เก็บค่าใน keychain อย่างไรดี?” “วิธีค้นหาชื่อในสมุดที่อยู่” “สลับตำแหน่งระหว่าง view ได้อย่างไร?” “ขอวิธีการใช้งาน Core Location”
กลุ่มเป้าหมายของหนังสือ iPhone’s Developer Cookbook จึงเป็นทุกคนที่สนใจและเพิ่งเริ่มต้นกับการเขียนโปรแกรมบน iPhone เราพยายามเสนอตัวอย่างโค้ดที่มีคำอธิบายกำกับชัดเจนและครบครัน ซึ่งจะช่วยให้งานของคุณออกมาเสร็จเร็วขึ้น ตัวอย่างและวิธีแก้ปัญหาต่างๆ ในหนังสือเล่มนี้ได้รับการทดสอบมาเป็นอย่างดีว่าใช้งานได้จริง ทำให้โปรแกรมเมอร์สามารถโฟกัสไปที่ปัญหาเฉพาะของโปรแกรมที่ต้องการจะสร้าง ไม่ต้องมาสนใจปัญหาพื้นฐานที่ยิบย่อยแต่ซ้ำซากอีกต่อไป
โครงสร้างของหนังสือเล่มนี้
หนังสือเล่มนี้รวบรวมปัญหาที่นักพัฒนาโปรแกรมบน iPhone พบได้บ่อยๆ เช่น วิธีการวางส่วนต่างๆ ในอินเทอร์เฟซ, การตอบสนองกลับไปยังผู้ใช้, การเข้าถึงข้อมูลภายในเครื่อง, และการเชื่อมต่อกับอินเทอร์เน็ต จากนั้นได้เสนอวิธีการเขียนโปรแกรม (recipe) เพื่อแก้ปัญหาเหล่านี้ แยกเป็นคำตอบหนึ่งชิ้นต่อปัญหาหนึ่งข้อ ซึ่งโปรแกรมเมอร์สามารถก็อปปี้โค้ดของเราไปใช้งานได้ทันที หรือจะนำไปดัดแปลงต่อให้เหมาะสมกับความต้องการก็ได้ โครงสร้างของหนังสือได้รวมเอาเรื่องที่เกี่ยวข้องกันไว้ในบทเดียวกัน ผู้อ่านสามารถข้ามไปยังบทที่ต้องการหาได้ทันที โดยไม่ต้องเสียเวลามาพิจารณาว่าคลาสหรือเฟรมเวิร์คตัวไหนกันแน่ที่เหมาะสำหรับงานของเรา
นี่คือตัวอย่างของสิ่งที่คุณจะได้อ่านในบทต่างๆ
บทที่ 1: เริ่มต้นกับ iPhone SDKบทที่ 1 เป็นการแนะนำชุดพัฒนา iPhone SDK ในเบื้องต้น และแนะนำ iPhone ในฐานะแพลตฟอร์มการพัฒนาโปรแกรม รวมถึงข้อจำกัดของมัน ในบทนี้จะอธิบายโครงสร้างมาตรฐานของโปรแกรมบน iPhone และสอนให้คุณเขียนโปรแกรมชิ้นแรกสุด Hello World
บทที่ 2: Viewsบทที่ 2 แนะนำให้รู้จักกับ view ซึ่งเป็นองค์ประกอบพื้นฐานของโปรแกรมที่เห็นได้จากหน้าจอของ iPhone คุณจะเรียนรู้วิธีการสร้าง view จัดวางตำแหน่งของมันตามที่ต้อการ และนำ view ไปเป็นโครงสร้างหลักของโปรแกรมที่คุณจะพัฒนาขึ้น คุณจะยังได้เรียนเพิ่มเติมเกี่ยวกับลำดับชั้นของ view, การวาดภาพเชิงเรขาคณิต ,การสร้างภาพเคลื่อไหว รวมไปถึงวิธีการปฏิสัมพันธ์ระหว่างผู้ใช้กับ view ผ่านทางระบบสัมผัส
บทที่ 3: View Controllersถ้าให้อธิบายแนวทางการพัฒนาโปรแกรมบน iPhone ภายในหนึ่งประโยค ต้องบอกว่า “จอเล็ก แต่โลกเบื้องหลังจอนั้นกว้างใหญ่” ในบทที่ 3 นี้คุณจะรู้จักกับคลาส UIViewControllers ที่จำเป็นหลายชนิด ซึ่งจะช่วยให้คุณควบคุมการติดต่อระหว่างผู้ใช้โปรแกรมกับพื้นที่เสมือนเหล่านี้ และคุณจะได้เรียนรู้ว่าออปเจคต์ที่ทรงพลังเหล่านี้ทำงานอย่างไร เมื่อผู้ใช้สลับหน้าจอของโปรแกรมบน iPhone แต่ละตัว
บทที่ 4: การแจ้งเตือนผู้ใช้iPhone ได้เตรียมวิธีการแจ้งเตือนเหตุการณ์ต่างๆ แก่ผู้ใช้โปรแกรมไว้หลายแบบ เช่น หน้าต่างป๊อปอัพ, แถบความคืบหน้า, เสียงเตือน และเตือนด้วยข้อความในแถบสถานะ บทที่ 4 สอนวิธีการสร้างการแจ้งเตือนเหล่านี้ในโปรแกรมของคุณ และเปิดโลกทรรศน์ของการแจ้งเตือนข้อมูลให้กับคุณ
บทที่ 5: การสร้างตารางขั้นพื้นฐานตารางเป็นคลาสที่เหมาะมากสำหรับการแสดงผลบนหน้าจอขนาดเล็ก โปรแกรมส่วนมากบน iPhone และ iPod touch เช่น Settings, YouTube, Stocks และ Waether ต่างใช้ตารางเป็นองค์ประกอบสำคัญกันทั้งนั้น บทที่ 5 จะสอนว่าตารางบน iPhone นั้นทำงานอย่างไร มีตารางแบบไหนบ้างที่สามารถใช้ได้ และเราจะใช้ตารางกับโปรแกรมของเราได้อย่างไร
บทที่ 6: การสร้างตารางขั้นสูงตารางของ iPhone ไม่ได้เป็นแค่เพียงรายชื่อที่เลื่อนขึ้นลงได้เท่านั้น คุณยังสามารถแสดงตารางที่มีหัวเรื่อง, ตารางที่มีหลายคอลัมน์ และสามารถสร้างคอนโทรลแบบสวิตช์, เปลี่ยนพื้นหลังของตารางเป็นสีโปร่งแสง, ใช้ตัวอักษรแบบพิเศษ เป็นต้น เนื้อหาในบทที่ 6 จะนับต่อจากสิ่งที่บทที่ 5 ยังไม่ได้กล่าวถึง โดยจะมีสูตรการเขียนโปรแกรมสำหรับตารางขั้นสูงหลายชนิดให้คุณได้เลือกใช้
บทที่ 7: สื่ออย่างที่คุณน่าจะรู้อยู่แล้วว่า iPhone รองรับสื่อหลายฟอร์แมต มันสามารถเล่นเพลง เปิดภาพ เล่นหนัง และแสดงเว็บเพจได้ นอกจากนี้คุณยังใช้มันแสดงเอกสาร PDF และจัดเรียงภาพเป็นอัลบั้มได้ด้วย บทที่ 7 จะสอนวิธีการอิมพอร์ตหรือดาวน์โหลดข้อมูลลงในโปรแกรม แล้วแสดงผลข้อมูลเหล่านี้บนอินเทอร์เฟซแบบมัลติทัชของ iPhone
บทที่ 8: คอนโทรลคลาส UIControl เป็นพื้นฐานสำคัญของการสร้างส่วนติดต่อที่ทำหน้าที่ปฏิสัมพันธ์กับผู้ใช้ เช่น ปุ่ม กล่องข้อความ แถบเลื่อน และสวิตช์ เป็นต้น บทที่ 8 แนะนำการใช้งานคอนโทรล ทั้งแบบที่ระบุไว้ในเอกสารของชุดพัฒนา และคอนโทรลพิเศษที่ไม่เคยถูกพูดถึงในเอกสาร
บทที่ 9: คน, สถานที่ และสิ่งของนอกจากอินเทอร์เฟซแบบมาตรฐาน และการจัดการกับสื่อหลายๆ ฟอร์แมตแล้ว iPhone SDK ยังเพิ่มทางเลือกแบบเฉพาะทางสำหรับงานพัฒนาโปรแกรมบน iPhone และ iPod touch มาให้ได้ใช้งานอีกจำนวนหนึ่ง เช่น การเข้าถึงสมุดที่อยู่ (“คน”) ระบบ core location (“สถานที่”) และเซ็นเซอร์ (“สิ่งของ”)
บทที่ 10: การเชื่อมต่อกับบริการiPhone นั้นเป็นอุปกรณ์ที่ออกแบบมาสำหรับใช้งานเชื่อมต่อกับอินเทอร์เน็ต โดยเฉพาะต้องเชื่อมกับบริการต่างๆ ที่อยู่บนเว็บ แอปเปิลได้พัฒนาแพลตฟอร์ม iPhone ขึ้นมาจากรากฐานทางด้านบริการผ่านเครือข่ายหลายชนิด iPhone SDK นั้นรองรับซ็อคเก็ต, การเก็บรหัสผ่านลงใน keychain, SQL, การประมวลผล XML เป็นต้น ในบทที่ 10 จะกล่าวถึงเทคนิคพื้นฐานของการประมวลผลบนเครือข่าย และเสนอสูตรการเขียนโปรแกรมสำหรับงานที่ผู้ใช้ต้องทำเป็นประจำทุกวัน
บทที่ 11: One More Thing: เขียนโปรแกรม Cover Flowแม้ว่า Cover Flow จะไม่ใช่องค์ประกอบหนึ่งของ iPhone SDK อย่างเป็นทางการ แต่มันก็เป็นวิธีการนำเสนอที่สวยงามและยอดเยี่ยมที่สุดอย่างหนึ่งของ iPhone คุณสามารถสร้างประสบการณ์การใช้งานที่ดีให้กับผู้ใช้โปรแกรมของคุณผ่านทาง Cover Flow ซึ่งจะทำให้รายการเลื่อนแบบปกติกลายเป็นของกระจอกไปเลย ในบทที่ 11 จะสอนการใช้งาน Cover Flow และวิธีการนำไปใช้กับโปรแกรมของคุณ
แน่นอนว่าหนังสือเล่มนี้ไม่เหมาะกับทุกคน บางคนอาจไม่สนใจ Mobile App หรือบางคนอาจสนใจแพลตฟอร์มอื่นๆ ที่ไม่ใช่ iPhone หรือบางคนอาจสนใจแต่ไม่มีเงินซื้อเครื่องแมค ก็เป็นได้
แต่ผมเลือกแปลหนังสือเล่มนี้เพราะเห็นว่าตลาดแอพพลิเคชันบนมือถือไม่ว่าแพลตฟอร์มใด เป็นหนทางที่สั้นที่สุดในการผลักดัน “ซอฟต์แว์ไทยไปซอฟต์แวร์โลก” (เคยเขียนเรื่องนี้ไว้ที่ Android Developer Challenge - โอกาสทองของเด็กไทย กับ iPhone SDK กับทิศทางซอฟต์แวร์บนมือถือ) ถ้ามันจะช่วยให้นักพัฒนาซอฟต์แวร์ไทยได้เปรียบ (หรืออย่างน้อยก็ไม่เสียเปรียบ) ในตลาด Mobile App ซึ่งเป็นตลาดเดียวครอบคลุมทั้งโลกได้สักนิด ผมก็ถือว่าคุ้มค่าแก่การแปลแล้วครับ