Why I choose XCode4 Even it still preview ?

กรกฎาคม 28, 2010 at 3:40 pm ใส่ความเห็น

ห่างหายไปนานกับการเขียน Blog เกี่ยวกับ iPhone Development ของผม ตอนนี้ต้องเปลี่ยนเป็น iOS Development แล้วละมั้ง ถึงจะถูก เพราะ iPhone ได้เลื่อนสภาพกลายเป็น Platform อีก 1 Platform ของ Apple ไปเป็นที่เรียบร้อยแล้ว

เกี่ยวกับ Entry นี้ หัวข้อก็คงบอกได้ชัดเจนว่าจะเขียนถึงเรื่องอะไร? ใช่แล้ว !! XCode4 นั่นเอง

เพิ่งเปิดให้ Download ไปลองใช้กันสดร้อนๆ แค่วันสองวันที่ผ่านมา(จากวันที่เขียน Entry นี้นี่เอง) หลังจากที่ได้เห็นการ Demo ในวิดีโอของงาน WWDC’10 เชื่อว่าหลายคนน้ำลายหก อยากลองของเล่นตัวนี้กันแน่นอน ส่วนตัวผมได้ลองมาตั้งแต่ Preview 1 แล้ว (เวอร์ชั่นที่แจกในงาน) บั๊กเยอะมาก มากจนไม่สามารถเอามาทำเป็นงานหลักได้ ก่อนหน้านี้ ผมจึงไม่ Review อะไรใดๆเกี่ยวกับการใช้ XCode4

ส่วนตัว Preview 2 ที่ออกมาให้ Download นั้นแก้บั๊กต่างๆไปเยอะแล้ว แต่เวอร์ชั่น Preview ก็คือ Preview ไม่มีทางสมบูรณ์และราบรื่นได้เหมือนตัวเต็ม และไหนจะเรื่อง Learning Curve ที่คงจะค่อนข้างสูงแน่นอน เพราะความต่างระหว่าง XCode3 และ 4 นับว่าต่างกันจนไปแทบไม่เป็น

ว่ากันตามตรง ถ้าอยากให้งานเสร็จเร็ว ใช้ XCode3 ไปก่อนดีกว่าครับ สาเหตุหรือปัญหาต่างๆที่ยังเจอใน XCode4 Preview 2 มีมากมายเอาเรื่อง ตั้งแต่

  • ปัญหาเรื่อง Key ลัด – กับ User ไม่น่ามีปัญหา แต่กับ Programmer ผมเชื่อว่าไม่ใช่ และเป็นเรื่องใหญ่ซะด้วย Key ลัดต่างๆที่ใช้อยู่บ่อยๆ ใน XCode3 เช่น Toggle ระหว่าง .h กับ .m (cmd+shift+up arrow) หรือสุดยอดคีย์ลัดขาประจำอย่าง Comment (cmd+/) มันหายไปครับ ยังไม่สามารถใช้ได้ใน version นี้
  • ปัญหาเรื่อง Code Sense, Auto Complete – ยังไม่ฉลาดเท่าที่ควร ผมเชื่อว่าการที่คุณกด nsl แล้วกด esc คุณหวังว่า กด Enter แล้วจะได้ NSLog มาใช้ เสียใจครับ คุณจะได้ NSLock มาใช้แทน นอกจากนั้น Snippet ต่างๆที่เราคาดหวังว่าจะขึ้นมาอย่างรวดเร็วอย่าง if (กด if แล้วกด esc จะได้ snippet มาใช้ได้ทันที) ก็จะยังไม่มีอีกเช่นกัน ถึงจะสามารถเพิ่มเองได้อย่างไม่ยากอีกต่างไป (แถมเท่อีกตะหาก เพิ่มใน IB) แต่เชื่อว่า คุณไม่อยากนั่งเพิ่มอะไรที่เคยใช้ได้โดยไม่ต้องมานั่งกรอกเองหรอก
  • ปัญหาเรื่อง Speed – ถ้าใครใช้ Mac รุ่นเก่าประมาณ 2-3 ปีลงไป ทำใจนะครับ เล็งหาเครื่องใหม่กันเถอะ (ผมด้วย) เพราะกิน Resource เอาเรื่องเลย อาจจะไม่ถึงกับรันไม่ได้ แต่การทำงานก็ไม่ลื่นปรื๊ดปร๊าดเหมือนใน XCode3 แน่นอน ตัวอย่างเช่น ตอนลาก Outlet ใน IB ไปลงใน Code ใน Demo มันดูน่าประทับใจมาก แต่ในโลกแห่งความเป็นจริง(ของเครื่องเก่าๆ) มันงดงามดังวิดีโอซักเท่าไหร่ วิธีที่พอจะช่วยได้บ้างก็คงเป็นการปิด Safari ที่เปิด tab ไว้เยอะๆ ละมั้งครับ คงพอช่วยได้
  • บั๊กจุกจิกเล็กน้อยที่จะฟ้องขึ้นมาเรื่อยๆ ให้ได้รำคาญเป็นระยะๆเวลาทำอะไร ท่องไว้ละกันครับ ว่า..มัน..pre..view

จากข้างต้น จะเห็นได้ว่าบั๊กมันไม่น้อยเลย แต่บอกเลยว่าไม่ใช่ไม่ดีนะครับ มันดีมากๆ แต่ยังไม่สมบูรณ์เท่านั้นเอง ถึงอย่างนั้น ผมเองก็ยังดึงดันจะใช้ XCode4 ไปเลย แทนที่จะใช้ XCode3 อย่างที่บอกผู้อ่าน …เพราะอะไร?

…เพราะ XCode3 with iOS SDK3 กับ XCode3 with iOS SDK4 มันทำงานไม่เข้ากันน่ะสิครับ ถ้าคุณต้องเขียน App ที่ support ทั้ง SDK3 และ SDK4 เป็นเรื่องน่าตลกปนเศร้าที่เราต้องลง SDK ถึง 2 ตัว เพราะ SDK4 ไม่มี Lib iOS3 (ไม่นับ 3.2 ที่เป็น iPad) และ SDK3 ไม่มี lib iOS4 สาเหตุที่ต้องแยกกันแบบนี้ เชื่อว่าเป็นเพราะ Simulator + ต้องการ Force ให้ Programmer พัฒนา App base เป็น SDK4 ทั้งหมด

หารู้ไม่ว่าในหมู่ผู้ใช้ Base ของ iOS version มันขึ้นกับว่า “Jailbreak ได้ถึงเวอร์ชั่นไหนแล้ว” และผมก็ต้องอิง Base นั้นซะด้วย

แม้ว่าผมจะต้องยอมเสีย พื้นที่ HDD และ Ram ให้กับ XCode 2 ตัวพร้อมกัน แต่ก็ไม่ได้หมายความว่า “ปัญหามันจะไม่มี” ปัญหาที่ว่า เช่น

  • Simulator มึน – อย่างที่บอกไปข้างต้น ว่า Simulator น่าจะเป็นสาเหตุนึง เพราะเมื่อ Launch Simulator ที่เป็น iOS3 แล้ว จะรัน Simulator ที่เป็น 4 ซ้ำไม่ได้ เพราะมันมองว่าเป็น Process เดียวกัน แล้วถึงแม้ว่า จะปิดตัวที่ Launch อยู่ มันก็จะยังมึนและมองว่า Simulator ยังถูก Launch อยู่ วิธีแก้ไขที่ผมพบคือ “ปิด XCode แล้วเปิดใหม่” ก็พอแก้ไขได้ แต่คุณอยากเปิดๆปิดๆ XCode อยู่เรื่อยๆมั้ยล่ะ (วิธีการ Kill Process ก็น่าจะช่วยได้ แต่มันก็ยุ่งยากมานั่ง Kill ทุกครั้งอีกนั่นแหละ)
  • Developer Bundle ID ค้าง – อันนี้คงเป็นปัญหาใน XCode3 SDK iOS4 ถ้าคุณเปิด Project ด้วย iOS SDK4 จากนั้น Copy Source ของต้วเองไปวางที่เครื่องอื่น ผลคือ มันจะ Compile ไม่ได้ เพราะเครื่องอื่นจะไม่มี private key ของเครื่องก่อนหน้านั้น ถึงจะเปลี่ยนไปใช้ของเครื่องใหม่ก็ยังค้างและถามถึง private key ของเครื่องเก่าอยู่ (ผมโดนอันนี้เข้าไป เกือบส่งงานไม่ได้) วิธีการแก้ไข มี 2 แบบ คือ 1. Export private key ของเราไปลงเครื่องที่จะใช้โค้ดนั้น ถ้าไม่ได้ซีเรียสว่าจะโดนเอาไปใช้เรื่องไม่ดีก็ใช้ทำได้ หรือ 2. ดิบๆเลย Create Project ใหม่แล้ว Copy Source ไปวาง
  • IB เน่า – อันนี้ไม่แน่ใจว่าเฉพาะผมคนเดียวหรือเปล่า แต่ไฟล์ .xib ตัวเดียวกัน แต่เปิดจาก iOS SDK3 แล้วสลับไป iOS SDK4 “File Owner จะไม่เจอ Action/Outlet ที่กำหนดไว้ใน Class เลย แต่ App ยัง Launch ได้อยู่แค่จะเพิ่มอะไรลงไปไม่ได้เท่านั้นเอง วิธีก็เหมือนแก้ปัญหา Simulator ครับ Restart XCode

ที่หนักๆเลยก็คงเป็นปัญหาพวกนี้ครับ เพราะผมไม่รู้ต้อง Restart XCode อีกซักกี่ครั้ง ดังนั้น ผมขอไปเจอบั๊กของ XCode4 ดีกว่าครับ สำหรับใครที่พัฒนาโดยไม่ได้ซีเรียสเรื่องต้อง Support 3 และ 4 ด้วยก็ไม่ต้องตกใจกับ Bug ต่างๆที่เขียนไว้นะครับ มันเป็นบั๊กที่ผมเจอในการทำงานร่วมกันของ XCode พร้อมกัน 2 ตัวเท่านั้น เชื่อว่าถ้าใช้แค่ตัวเดียวก็คงไม่เกิดปัญหาเหล่านี้

สำหรับ Entry นี้ก็คงจบไว้แค่นี้ครับ คิดว่าคงจะมีเรื่องให้เขียนต่อๆไปอีกเยอะแน่นอน

…Happy XCoding ครับ

Entry filed under: iPhone Programming, Programming. Tags: , , , , , .

iPhone’s project multi-target programming How to make XCode 3 with iOS SDK4 can build iOS SDK3.1.x

ใส่ความเห็น

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 /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google 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 /  เปลี่ยนแปลง )

Connecting to %s

Subscribe to the comments via RSS Feed


del.icio.us For iPhone dev

Post Calendar

กรกฎาคม 2010
พฤ อา
« เม.ย.   ส.ค. »
 1234
567891011
12131415161718
19202122232425
262728293031  

%d bloggers like this: