ในงาน WWDC ที่ผ่านมา Xcode มีการเปิดตัวฟีเจอร์ย่อยๆ หลายอย่าง และฟีเจอร์หนึ่งคือ linker ของ Xcode นั้นรองรับไลบรารีแบบใหม่ คือ mergeable library
แอปเปิลระบุว่า ข้อดีของ static library คือไบนารีสุดท้ายมีขนาดเล็ก โหลดโปรแกรมได้เร็ว เพราะระหว่างโหลดไม่ต้องมา link โปรแกรมเข้ากับไลบรารีอีกแล้ว แต่ข้อเสียก็คือช่วงเวลา build จะช้ากว่า ขณะที่ dynamic library จะตรงกันข้าม คือเวลา build หรือ debug จะเร็วมาก แต่ช่วงเวลาที่โหลดโปรแกรมจริงๆ จะเสียเวลา และข้อเสียอีกอย่างคือต้องมี metadata สำหรับการ link ขนไปกับโปรแกรมด้วย ทำให้โปรแกรมมีขนาดใหญ่ขึ้น
แอปเปิลออก Xcode 15 Beta ตามรอบการออกรุ่นปีละครั้ง ของใหม่ในเวอร์ชันนี้ได้แก่
แอปเปิลแจ้งข้อมูลเพิ่มเติมของบริการ Xcode Cloud บริการ CI/CD ที่ให้นักพัฒนาแอป สามารถคอมไพล์และทดสอบแอปได้บนคลาวด์ ไม่ต้องทดสอบด้วยทรัพยากรเครื่องของตนเอง ซึ่งเปิดตัวแบบเบต้าจำกัดกลุ่มในปีที่แล้ว และประกาศให้นักพัฒนาทุกคนใช้งานได้ในงาน WWDC ที่ผ่านมา
โดยตอนแรกแอปเปิลประกาศให้นักพัฒนาทุกคนใช้ Xcode Cloud ได้ฟรี 25 ชั่วโมงต่อเดือนถึงสิ้นปี 2023 ซึ่งเป็นแพ็คเกจเริ่มต้น แต่นักพัฒนาจำนวนหนึ่งอาจต้องการใช้งานมากกว่าในตอนนี้ แอปเปิลจึงเพิ่มทางเลือกให้นักพัฒนาจ่ายเงินเพื่อเพิ่มชั่วโมงใช้งาน โดยสมัครได้ผ่านแอป Apple Developer
แอปเปิลเปิดตัวเครื่องมือสำหรับพัฒนา Xcode 14 Beta ที่รอบนี้มาพร้อมกับ Xcode Cloud บริการด้าน CI/CD ที่ฝั่งเซิร์ฟเวอร์
Xcode Cloud เป็นบริการด้าน continuous integration and delivery (CI/CD) บนคลาวด์ ย้ายกระบวนการคอมไพล์และทดสอบแอพไปไว้บนคลาวด์ จุดเด่นของมันคือเป็นบริการสำหรับนักพัฒนาสายแอปเปิลโดยเฉพาะ ทดสอบกับอุปกรณ์แอปเปิลได้ทุกรุ่น (ที่ยังซัพพอร์ตอยู่ตอนนั้น) รวมถึงเชื่อมต่อกับ Xcode และ App Store Connect โดยตรง
Xcode Cloud เป็นบริการที่ต้องเสียค่าสมาชิกรายเดือน แพ็กเกจเริ่มต้นคือ 25 ชั่วโมงต่อเดือน ราคา 14.99 ดอลลาร์ (ช่วงเปิดตัวให้นักพัฒนาทุกคนใช้ฟรีถึงสิ้นปี 2023) ตอนนี้เริ่มใช้ได้แล้วกับ Xcode 13.4.1 ขึ้นไป
แอปเปิลประกาศนโยบายระบบปฏิบัติการใหม่ของปี 2021 ทุกตัวคือ iOS 15, iPadOS 15, macOS 12 Monterey, watchOS 8, tvOS 15 เตรียมเลิกใช้โปรโตคอล TLS เวอร์ชันเก่าคือ 1.0 และ 1.1 แล้ว (deprecated) และจะถอดออกถาวรในอนาคต จากนี้ไปจะรองรับเฉพาะ TLS 1.2 ขึ้นไปเท่านั้น
คณะทำงาน Internet Engineering Task Force (IETF) ประกาศเลิกใช้ TLS 1.0 และ 1.1 ตั้งแต่เดือนมีนาคม 2021 และมีโปรแกรมหลายตัวที่ประกาศหยุดรองรับแล้ว เช่น Firefox หรือ Edge
แอปเปิลเปิดตัวฟีเจอร์สำคัญสำหรับนักพัฒนาในงาน WWDC นอกเหนือจากการอัพเดต API ตามรอบการอัพเดตระบบปฎิบัติการแล้ว ยังมีเปิดตัวเครื่องมือพัฒนาอีกหลายรายการ
บริการแรกคือ Xcode Cloud บริการคลาวด์สำหรับการคอมไพล์แอป, ทดสอบ, และกระจายแอปรุ่นทดสอบให้เทสเตอร์ บริการนี้ทำให้นักพัฒนาไม่ต้องใช้เครื่องตัวเองในการคอมไพล์เอง ลดระยะเวลาที่เครื่องโหลดหนักลง ตัวบริการเริ่มทดสอบวงปิดในปีนี้และเปิดบริการจริงในปีหน้า ส่วนราคาจะแจ้งภายหลัง
แอป Swift Playground อัพเดตเป็นเวอร์ชั่น 4 สำหรับเรียนเขียนโค้ดบน iPad เพิ่มความสามารถในการเขียนแอปเต็มรูปแบบ สามารถเขียนแอปด้วย SwiftUI ได้ทันที รวมถึงสามารถส่งแอปขึ้น App Store โดยตรง
Apple ออกแนวทางการเขียนโค้ดแบบใหม่ เน้นให้ใช้คำที่ไม่เลือกปฎิบัติต่อคนบางกลุ่ม บนอีโคซิสเต็มของแอปเปิล ไม่ว่าจะใน Xcode, APIs, เอกสารซอฟต์แวร์ หรือโปรเจ็คโอเพนซอร์ส โดยได้เริ่มเปลี่ยนคำในโปรแกรมเวอร์ชันเบต้าที่เปิดตัวไปในงาน WWDC 2020 ที่ผ่านมา
คำที่เปลี่ยนยกตัวอย่างเช่น blacklist/whitelist ให้เปลี่ยนไปใช้ deny list/allow list แทน หรือคำว่า master/slave ก็แนะนำให้เปลี่ยนเป็นคำอื่น เช่น primary/secondary เป็นต้น โดยนักพัฒนาสามารถดูการเปลี่ยนแปลงทั้งหมดได้ที่ Apple Style Guide ฉบับล่าสุด
แอปเปิลออก Xcode 12 ตามรอบการอัพเดตปีละครั้งในงาน WWDC ของใหม่ที่สำคัญคือ ปรับหน้าตาและ UI เป็นสไตล์แบบใหม่ตามอย่าง macOS Big Sur เปลี่ยนไอคอนในทูลบาร์, ปรับหน้าตาและพฤติกรรมของแท็บ (เปิดแท็บใหม่ด้วยการดับเบิลคลิก), ปรับขนาดฟอนต์ในแถบ Navigator ด้านข้าง (อิงตามค่าของระบบปฏิบัติการ ซึ่งใช้กับโปรแกรมอื่นๆ อย่าง Finder ด้วย), ปรับหน้าตาของ code completion และหน้าตาของ Organizers ใหม่
แอปเปิลเปิดให้นักพัฒนาพอร์ตแอปบน iOS มาเป็นเวอร์ชัน macOS ผ่านโครงการ Catalyst มาระยะหนึ่ง ล่าสุดแอปเปิลได้เพิ่มตัวเลือกให้นักพัฒนาสามารถขายแอปแบบ unified กล่าวคือใช้งานได้ทั้งบน macOS และ iOS แล้ว จากเดิมที่ต้องขายแยกกัน
ทั้งนี้นักพัฒนาสามารถกำหนดค่าดังกล่าวได้ใน Xcode 11.4 beta สำหรับแอปที่พอร์ตผ่าน Catalyst อย่างไรก็ตามหากนักพัฒนาทำแอป macOS แยกออกมาตั้งแต่ต้น ก็อาจลำบากสักหน่อย
เพื่อรองรับการเปลี่ยนแปลงนี้ App Store ของบน iOS และ macOS จึงได้ปรับเพิ่มชื่อหมวดของแอปให้สอดคล้องกันทั้งสองระบบด้วย
ที่มา: 9to5Mac
แอปเปิลเปิดตัว Xcode 11 ตามรอบประจำปีที่อัพเดตปีละครั้งตอนงาน WWDC ของใหม่ในเวอร์ชันนี้ได้แก่
ของใหม่สำหรับนักพัฒนาสายแอปเปิลที่เปิดตัวในงาน WWDC 2019 คือ SwiftUI เฟรมเวิร์คสำหรับสร้าง UI แบบเนทีฟได้ทุกแพลตฟอร์มในจักรวาลแอปเปิล (macOS, iOS, iPadOS, watchOS, tvOS)
จุดเด่นของ SwiftUI คือการเขียนบรรยายชิ้นส่วน UI ด้วยภาษา Swift แบบ declarative (ลักษณะเดียวกับเฟรมเวิร์ค UI สมัยใหม่อย่าง React, Flutter, Angular) ทำให้โค้ดอ่านง่ายและดูแลง่าย รวมถึงสามารถสร้างคอมโพเนนต์ UI เพื่อนำไปใช้ซ้ำในแอพตัวอื่นๆ ได้ด้วย
SwiftUI มาพร้อมฟีเจอร์สมัยใหม่ อย่างการจัดการแอนิเมชันให้อัตโนมัติ นักพัฒนาเพียงแค่เขียนเมธ็อดกำหนดผลลัพธ์ แล้ว SwiftUI จะช่วยคำนวณการแสดงแอนิเมชันระหว่างทางให้เอง, ตัวของ SwiftUI ยังรองรับ Dark Mode ในระบบปฏิบัติการของแอปเปิลเรียบร้อยแล้วด้วย
สิ่งที่แอปเปิลไม่ประกาศบนเวที Keynote ของงาน WWDC 2018 (แต่คาดเดาได้ไม่ยาก) คือ Xcode เวอร์ชันใหม่ที่ขยับขึ้นหลัก 10.0 แล้ว
ของใหม่ใน Xcode 10 ได้แก่
เมื่อครู่ผมได้ลอง build iOS application จากโปรแกรม Xcode เพื่อทำการทดสอบโดยมี target ไปที่ iPhone 6s Plus ที่ติดตั้ง iOS 11.2 แล้วพบว่าไม่สามารถติดตั้ง application ได้ ทั้งที่ใช้ Xcode 9.1 ซึ่งเป็นรุ่นล่าสุดแล้ว
ทั้งนี้หากต้องการติดตั้ง application บน iOS 11.2 จริง ต้องติดตั้ง Xcode 9.2 beta ที่มีให้สำหรับนักพัฒนาไปก่อน
Chris Lattner ผู้อำนวยการอาวุโสฝ่ายเครื่องมือสำหรับนักพัฒนาของ Apple ที่อยู่เบื้องหลังภาษา Swift และ IDE อย่าง Xcode รวมไปถึง complier ต่างๆ ได้ออกมาประกาศอย่างเป็นทางการว่าจะลาออกจากบริษัทสิ้นเดือนนี้
ข้อความที่ปรากฎในอีเมลของ Lattner ที่ส่งในกลุ่มทีมพัฒนา Swift ระบุว่า Ted Kremenek จะเป็นหัวหน้าโปรเจคภาษา Swift คนใหม่และจะเข้ามาบริหารจัดการ Swift.org อีกด้วย โดย Kremenek ตอนนี้มีตำแหน่งเป็นผู้จัดการอาวุโสฝ่าย Languages และ Runtimes ของ Apple ส่วน Lattner จะยังเข้ามาช่วยพัฒนาภาษา Swift อยู่
นอกจากนี้ Lattner ไม่ได้หวังว่าการลาออกของเค้าจะส่งผลกระทบต่อทีม Swift ที่กำลังพัฒนาเวอร์ชัน 4 แต่อย่างใด เค้าเชื่อว่าการพัฒนาภายใต้การดูแลของ Kremenek จะทำให้เวอร์ชันนี้มีความสมบูรณ์แบบและ Apple เองก็จะเริ่มโฟกัสที่ Swift 4 มากขึ้น หลังจากที่ปล่อยเวอร์ชัน 3.1 มาได้ซักพักแล้ว
ที่มา : MacRumors
Apple ได้ปล่อย Xcode 8 beta ให้นักพัฒนาแล้ว เพื่อให้รองรับการพัฒนาแอพและเพิ่ม SDK สำหรับ iOS, macOS, tvOS และ watchOS รุ่นใหม่ของ Apple
Xcode 8 จะรองรับทั้ง Swift 2.3 และ Swift 3 โดย Apple แจ้งว่า Swift บน Xcode 8 จะไม่สามารถใช้งานกับเฟรมเวิร์คของ Swift ที่คอมไพล์บน Xcode 7.3.1 ได้ และฟีเจอร์บางอย่าง เช่น Memory graph debugging, Address Sanitizer, Thread Sanitizer และ Core Data build-time code generation จะใช้งานกับ Swift 3 ได้เท่านั้น ไม่สามารถใช้งานกับ Swift 2.3 ได้
มัลแวร์ XcodeGhost ถูกค้นพบมาไม่กี่วัน แม้แอปเปิลจะเร่งถอนแอปเหล่านี้ออกจาก App Store ไปแล้วหลายร้อยตัว ทาง FireEye ก็ออกมาระบุว่าตอนนี้พบแอปที่ติดมัลแวร์เฉพาะใน App Store แล้วมากกว่า 4,000 รายการ
ทาง FireEye เตือนว่า แม้ว่าตอนนี้เซิร์ฟเวอร์สั่งการของ XcodeGhost จะถูกปิดไปแล้ว แต่ตัวมัลแวร์ก็ยังยิง HTTP ออกอินเทอร์เน็ตเพื่อรับคำสั่ง จึงมีความเสี่ยงที่การเชื่อมต่อถูกดักโดยแฮกเกอร์แล้วยิงคำสั่งเข้าสวมรอยแทน ตอนนี้องค์กรควรอัพเดตไฟร์วอลให้แจ้งเตือนเมื่อมีเครื่องในองค์กรติดมัลแวร์และพยายามติดต่อกลับ ในกรณีของ FireEye คือ FireEye NX สามารถตรวจสอบการเชื่อมต่อได้แล้ว
จากกรณี XcodeGhost แอปเปิลออกมาเตือนนักพัฒนาทุกรายให้ตรวจสอบ Xcode แล้ว
แอปเปิลบอกว่าวิธีที่ดีที่สุดในการดาวน์โหลด Xcode คือผ่าน Mac App Store เพราะมีกระบวนการตรวจสอบ (validate) ตัวไฟล์ signature โดยอัตโนมัติผ่านฟีเจอร์ Gatekeeper ของตัวระบบปฏิบัติการ
แต่ถ้าจำเป็นต้องดาวน์โหลด Xcode เอง (หรือได้ไฟล์มาจากคนอื่น) สามารถตรวจสอบได้ผ่านคำสั่ง spctl --assess --verbose /Applications/Xcode.app ใน Terminal ซึ่งจะได้ค่ากลับมาเป็น accepted พร้อมระบุแหล่งที่มาว่าเป็น Mac App Store, Apple, Apple System ในกรณีที่ได้ค่าแตกต่างจากนี้ถือว่าเป็น Xcode ปลอม
จากข่าว พบมัลแวร์ iOS จู่โจมนักพัฒนาผ่าน Xcode เวอร์ชันปนเปื้อน แล้วฝังมัลแวร์ตอนคอมไพล์ ความคืบหน้าล่าสุดคือแอปเปิลสั่งถอดแอพที่มีปัญหาเหล่านี้จาก App Store แล้ว และคุยกับนักพัฒนาแอพเหล่านี้ให้คอมไพล์แอพใหม่ด้วย Xcode เวอร์ชันที่ถูกต้อง
บริษัทความปลอดภัย Qihoo360 ของจีน ระบุว่ามีแอพที่โดน XcodeGhost มากถึง 344 ตัว ซึ่งในจำนวนนี้มีแอพดังคือ WeChat, แอพแท็กซี่ Didi Kuaidi, แอพฟังเพลง NetEase ด้วย
ที่มา - Reuters
เวอร์ชัน iOS ด้วย
XcodeGhost อาศัยช่องว่างที่ว่าไฟล์ Xcode ของแอปเปิลมีขนาดใหญ่ ต้องใช้เวลาดาวน์โหลดนาน นักพัฒนาในประเทศจีนจึงใช้วิธีดาวน์โหลดจาก mirror ในประเทศแทน ซึ่งทำให้แฮ็กเกอร์แก้แพ็กเกจของ Xcode โดยฝังมัลแวร์ลงไปด้วย (อยู่ในส่วน CoreServices)
Xcode เวอร์ชันฝังพิษจะแอบฝังโค้ดของตัวเองลงในแอพ iOS ตอนคอมไพล์ แอพเหล่านี้จะแอบดึงข้อมูลในเครื่องผู้ใช้ แล้วส่งกลับไปยังเซิร์ฟเวอร์ของแฮ็กเกอร์
แอปเปิลเคยออกประกาศในเรื่องนี้ครั้งหนึ่ง แต่ในครั้งนั้นให้มีผลเฉพาะกับแอพพลิเคชันใหม่ที่จะส่งเข้ามาตรวจสอบ และวันนี้แอปเปิลก็ได้ออกประกาศในเรื่องนี้เพิ่มเติมเป็นที่เรียบร้อยแล้ว คือตั้งแต่วันที่ 1 มิถุนายนปีหน้า ทุกแอพพลิเคชันที่จะส่งอัพเดตเข้ามา ต้องคอมไพล์แบบ 64 บิตมาด้วยเสมอ
แอปเปิลระบุว่าการทำให้แอพพลิเคชันรองรับ 64 บิตนั้น สามารถทำได้ง่ายๆ โดยการปรับค่า Standard architectures ในโปรเจคให้กลายเป็นค่าตั้งต้น แล้วจากนั้น Xcode จะจัดการคอมไพล์แอพพลิเคชันออกมาเป็นแบบ 32 บิต และ 64 บิตในไฟล์เดียวครับ
ที่มา - Apple Developer
แอปเปิลประกาศนโยบายใหม่สำหรับนักพัฒนา ระบุว่าแอพพลิเคชั่นทั้งหมดที่ส่งขึ้น App Store ตั้งแต่วันที่ 1 กุมภาพันธ์ปีหน้า จะต้องคอมไพล์แบบ 64 บิตมาด้วยเสมอ
กระบวนการคอมไพล์แบบ 64 บิตเป็นค่าเริ่มต้นของ Xcode 6 อยู่แล้ว โดยในค่าตั้งต้น "Standard architectures" จะคอมไพล์ทั้งแบบ 32 บิตและ 64 บิตในไฟล์เดียว
ที่มา - Apple Developer
แอปเปิลเปิดให้นักพัฒนาทุกคนที่ลงทะเบียนเป็น Apple Developers (ไม่ต้องเสียค่าสมาชิก 99 ดอลลาร์ต่อปี) สามารถดาวน์โหลด Xcode 6 Beta ไปทดสอบได้แล้ว
นอกจากนี้แอปเปิลยังเปิดบล็อกเกี่ยวกับภาษา Swift ซึ่งบอกว่าจะเล่าเบื้องหลังการออกแบบภาษาโปรแกรมภาษาใหม่นี้ และข่าวสารอัพเดตอื่นๆ เกี่ยวกับ Swift อีกด้วยครับ (ตอนนี้ยังมีเฉพาะโพสต์แรกอยู่)
ที่มา - Swift Blog, Ars Technica
ข่าวหลุดเพิ่มเติมเกี่ยวกับ iPhone 6 ยังคงมีออกมาเรื่อยๆ นะครับ ล่าสุดมีนักพัฒนาไปพบโค้ดใน iOS 8 และ Xcode 6 ที่เกี่ยวกับการวัดระดับความสูง (altitude capturing capability) รวมไปถึงการวัดแรงกดอากาศ (ambient pressure) จึงคาดว่าน่าจะมีไว้รองรับเซ็นเซอร์ใหม่ที่จะเพิ่มเข้ามาใน iPhone 6
นักพัฒนาได้ทดลองใช้โค้ดนี้บนอุปกรณ์รุ่นล่าสุดอย่าง iPhone 5s ปรากฏว่าตัวเครื่องไม่รองรับ จึงคาดว่าโค้ดนี้มีไว้เพื่อรองรับเซ็นเซอร์ใหม่ในอุปกรณ์ในอนาคตของแอปเปิล และคาดว่าน่าจะเป็นบารอมิเตอร์เพราะสามารถใช้วัดความกดอากาศในระยะความสูงต่างๆ รวมไปถึงสามารถพยากรณ์สภาพอากาศคร่าวๆ ได้จากความกดอากาศด้วยเช่นกัน
Xcode 6 ซึ่งมาพร้อมกับ iOS Simulator ใหม่ให้นักพัฒนาสามารถทดลองรันแอพพลิเคชันของตัวเองได้ตอนนี้มีคุณสมบัติที่ทำให้นักพัฒนาสามารถพัฒนาแอพให้กับอุปกรณ์ iOS ในอนาคตได้ โดยเฉพาะอย่างยิ่ง iPhone 6 ที่จะมีขนาดหน้าจอ 4.7 และ 5.5 นิ้ว
ถึงแม้ว่ายังไม่มีการเปิดตัวอุปกรณ์ใหม่ ๆ อย่างเป็นทางการจากแอปเปิล นักพัฒนาในตอนนี้สามารถที่จะเลือกสร้างหน้าจอ iPhone หรือ iPad ที่มีขนาดความละเอียดใดก็ได้ ในการทดสอบแอพ
ข้อดีของความสามารถใหม่นี้ของ Xcode คือนักพัฒนาสามารถเตรียมตัวแอพของตัวเอง ให้รองรับกับอุปกรณ์ใหม่ ๆ จากแอปเปิลได้เร็วกว่าเดิมมาก ต่างจากสมัยที่แอปเปิลเปลี่ยนจาก iPhone 4s มา iPhone 5 ที่ผู้ใช้หลายรายต้องทนใช้แอพที่มีขนาดไม่เต็มจออยู่พักหนึ่ง
แอปเปิลออกเครื่องมือพัฒนาซอฟต์แวร์ Xcode รุ่นใหม่ โดยแจกฟรีแก่นักพัฒนาที่ลงทะเบียนกับ Mac Developer Program (ปีละ 99 ดอลลาร์) ส่วนคนที่ไม่ได้เป็นสมาชิกสามารถซื้อจาก Mac App Store ในราคาชุดละ 4.99 ดอลลาร์
ของใหม่ใน Xcode 4 ได้แก่อินเทอร์เฟซแบบหน้าต่างเดี่ยว (single window), รวมโปรแกรมออกแบบอินเทอร์เฟซ Interface Builder เข้ามาเป็นโปรแกรมเดียวกับ Xcode, คอมไพเลอร์ LLVM รุ่นใหม่, LLDB ดีบั๊กเกอร์ตัวใหม่จากโครงการ LLVM.org เป็นต้น (รายละเอียดดูได้จาก What's New in Xcode 4)