Xcode
1. 개요
Apple의 macOS, iOS, watchOS 및 tvOS 개발 전용 IDE. '''엑스코드'''라 읽는다. macOS용만 존재한다. 2021년 02월 18일 기준 최신 버전은 12.4이다.
2003년에 출시되어, 무려 17년의 역사를 가지고 있는 장수 IDE이다. 만약 그 전신인 Project Builder까지 연대기에 넣는다면 1988년[1] 출시로, 무려 29년의 역사를 자랑하는 IDE가 된다. 그리고 Xcode보다 애플 제품에 깊숙이 관여하는 IDE는 존재하지 않는다. 오직 Xcode만이 Apple의 Cocoa 프레임워크에 직접 접근할 수 있기 때문에, JetBrains의 AppCode나 Android Studio, 또는 MS의 Visual Studio for Mac도 iOS/macOS용 소프트웨어를 최종 컴파일하려면 Xcode가 설치되어 있어야 한다.
게임메이커도 iOS 컴파일 하려면 이게 필요하다.
심지어는 크로스플랫폼인 리액트 네이티브의 iOS 앱을 컴파일 할 때도 이게 필요하다.[2]
2. 상세
Apple LLVM/Clang[3] 을 주 컴파일러로 삼고 LLDB를 주 디버거로 이용한다. 공식적으로 지원하는 언어는 C, C++, Objective-C, Swift, AppleScript, Java, Python, Ruby이며, 제3자 도구를 이용하면 파스칼, 에이다, C\#[4] , Perl, D도 사용 가능하다.
Xcode에 내장된 Interface Builder는 OS X에서 Cocoa 프레임워크를 가장 목적에 맞게, 그리고 가장 아름답게 디자인할 수 있는 유일한 도구로, Qt나 SDL, wxWidgets, GTK+ 같은 크로스 플랫폼 UI 툴킷이 그 태생상 절대 따라갈 수 없는 디자인을 가능케 한다.
초창기의 Xcode는 버전 관리를 지원하지 않거나 SVN만 맛보기 형식으로 지원하는 수준이었지만 Xcode 4의 출시와 함께 Git을 내장하여 강력한 소스 코드 버전 관리가 가능하도록 하였다.[5][6]
간혹 애플의 개발자 프로그램에 유료로 등록해야만 Xcode를 사용할 수 있다고 잘못 알고 있기도 한데, Xcode는 개발자 등록이 필요 없고[7] 무료이다.[8]
다만, 그래도 Apple의 개발자 프로그램이 나중에는 필요하게 되는 일도 있는데, 바로 App Store를 이용할 때이다. App Store에 앱을 올리고자 한다면 유료 개발자 등록이 되어야하기 때문. 또한 실물 단말기를 활용할 때도 유료 개발자 인증이 필요하다.[9] Xcode 7로 업데이트 되면서 단말기에 자신의 앱을 개발자 프로그램 없이 설치할 수 있게 되었다.
Xcode 고스트 사건이 있었다. https://www.boannews.com/media/view.asp?idx=47938 이후 Xcode를 공식 경로가 아닌 토렌트 등 웹하드로 다운받아서 사용하는 행위는 자제되었다.
3. 버전 역사
3.1. Xcode 1
2003년 10월 24일 출시
사실상 Project Builder의 개명 버전에 가깝다. 다만, 넘어오면서 UI 변경, Code Sensing(소스 코드를 인덱스하여 자동 완성을 제공하는 기능) 추가 등이 있었다. 별로 특별한 것은 없었던 버전.
3.2. Xcode 2
2005년 4월 29일 출시
OS X Tiger의 출시와 함께 공개. Quartz Composer라는 Quartz Extreme용 시각화 프로그래밍 도구를 탑재했다. 그리고 이 때부터 Apple의 개발자 문서를 IDE 자체에서 빠르게 검색할 수 있도록 하였다.
추후 Tiger의 인텔 칩 이전에 의해 Universal 바이너리[10] 를 생성할 수 있는 기능이 추가되었다.
3.3. Xcode 3
2007년 10월 26일 출시
OS X Leopard의 출시와 함께 공개. 여러 가지 명령줄 도구[11] 의 추가와 함께 Objective-C 2.0 지원이 추가되었으며 프로젝트 스냅샷 기능과 SVN 지원으로 기초적인 소스 코드 버전 관리가 가능해졌다. 또, 운영 체제의 전반적인 64비트 전환과 함께 64비트 컴파일이 가능해졌고, iPhone의 공개에 따라 iPhone OS용 앱을 빌드할 수 있게 되었다. 이 때 LLVM GCC 컴파일러가 스리슬쩍 더해졌다.
3.4. Xcode 4
2011년 3월 9일 출시
'''"The biggest thing to happen to Xcode since Xcode."'''[12]
Xcode의 화려한 변신이 행해진 첫 버전. Interface Builder가 Xcode 내부에 모듈 형태로 탑재됨에 따라 이제 개발 시에는 Xcode 하나면 켜놓으면 된다. 초기 버전은 Mac App Store에서 $4.99에 판매되었으나[13] , 항의가 거세지자 스리슬쩍 무료로 전환했다. 이 버전부터 PowerPC 바이너리는 일체 지원되지 않는다.
Xcode 4.1과 함께 Objective-C에서 객체의 레퍼런스 카운팅을 컴파일러가 스스로 행하는 ARC가 추가되었다.
Xcode 4.2에서는 Xcode 자체가 완벽하게 단일 애플리케이션으로 패키지되었다. 이전까지는 Mac App Store에서 내려받는 프로그램이 Xcode '''설치''' 프로그램이었으나[14] , 이제는 Xcode 자체를 내려받는다. 사용자는 내려받은 후 실행하면 끝. 처음 내려받았을 때나 업데이트 시 한정으로 내부 프레임워크를 시스템에 설치하는 짧은 절차를 거친다.
3.5. Xcode 5
2013년 9월 18일에 정식 출시. OS X Mountain Lion과 iOS 7의 SDK가 포함되었고, LLVM/Clang 컴파일러가 Apple A7 AP를 위한 64-bit 앱을 컴파일할 수 있게 되었다. iOS 7이 기존과 UI면에서 상당히 달라진 만큼 기존의 UI와 iOS 7에 맞춘 UI를 동시에 개발하여 적용하기 쉽도록 되어있다. 원 클릭으로 iCloud나 Game Center 서비스를 적용시킬 수 있게 되었다.
3.6. Xcode 6
[clearfix] Apple WWDC 2014
What's New in Xcode 6
【 펼치기 ・ 접기 】
WWDC 2014 때 공식적으로 발표된 Xcode로, 최초로 Swift를 지원한다. Swift가 궁금하다면 해당문서 참조. OS X Yosemite 에서만 사용가능케 했다. 그리고 새로운 '''Playground''' 기능을 추가했는데, 이건 코드를 직접 컴파일하거나 실행하지 않고도 결과물을 실시간으로 확인할 수 있게 해 준다.
Xcode 6.1 버전부터 Mac용 앱을 Swift로 만들 수 있게 되었다.[15]
[clearfix]
3.7. Xcode 7
2015년 9월 17일 정식 출시. iOS 9 소프트웨어 업테이트와 동시에 앱 스토어에서 발표되었다. Swift 2와 iOS 9에 대응하는 SDK, watchOS 2, OS X 10.11 El Capitan 및 tvOS 의 개발 코드가 추가되었다. 이 버전부터는 개발자 프로그램 ($99) 등록을 하지 않아도 iOS 앱을 자신의 기기에서 실행해 볼 수 있다. 물론 App Store 에 앱을 올리는것은 개발자 프로그램을 필요로 한다.
Xcode 7.1 은 iOS 9.1, watchOS 2, tvOS 및 OS X 에 사용할 수 있는 Swift 2.1 SDK 가 추가되었다.
3.8. Xcode 8
2016년 9월 14일 정식 출시. Swift 3, iOS 10 SDK, watchOS 3, tvOS 10 그리고 macOS Sierra의 애플리케이션 개발을 지원한다.
추가된 사항
- Debug Memory 시각화 기능(런타임 도중 데이터와 오브젝트간의 관계맵을 시각화하여 표현)
- Interface Builder 개선 및 편집기 확장 대응
- iOS 10의 Siri 확장, 아이메세지 앱, 메세지를 위한 스티커팩 빌드
- 디바이스 셋업, Code signing 간소화
기타 개발용 테마 및 폰트 추가라거나 등의 개발 편의사항이 상당한 부분 증대되었다.
3.9. Xcode 9
2017년 9월 19일 정식출시.
Swift 4.0을 정식 지원한다.
드디어 리팩토링 기능이 추가되었다.
버그가 매우 많은데 예를들면 Touch Bar 커스텀이 안된다던가 플레이그라운드에서 코드 실행이 안되는경우가 있다. 매 버전이 업데이트될 때마다 버그가 바뀐다...
3.10. Xcode 10
2018년 9월 12일에 iOS / tvOS 12, macOS Mojave 10.14, 그리고 watchOS 5 업데이트와 함께 출시되었다.
제일 큰 변경점으로는 macOS Mojave 때 추가된 다크 모드를 지원한다.
3.10.1. Xcode 10.2
2019년 3월 26일에 iOS / tvOS 12.2, macOS Mojave 10.14.4, 그리고 watchOS 5.2 업데이트와 함께 업데이트되었다.
Swift 5를 지원한다. Apple은 이 언어를 완벽 대응하면 앱 용량을 획기적으로 줄이고 앱 실행 성능을 대폭 향상 시킬 수 있다고 주장한다.
3.11. Xcode 11
Xcode 11은 2019년 6월 9일 WWDC 2019에서 발표되었다. Swift 5.1, iOS 13, tvOS 13, watchOS 6, macOS 10.15 SDK에 관한 지원이 추가되었다. Apple 계열 프로그램 UI 디자인을 위한 새로운 프레임워크인 SwiftUI도 추가되었다. 그 외에도 부가적인 변경 사항으로는 iPad용으로 만들어진 프로그램을 Mac 컴퓨터에 손쉽게 가져올 수 있는 기능의 추가, iOS 13의 다크 모드 지원 등이 있다.
3.12. Xcode 12
Apple Silicon 지원을 추가하면서 용량이 매우 커졌다.
[1] 혹은 그 이전. Project Builder가 NeXTSTEP 운영 체제의 일부분으로 배포되었으므로 운영 체제 개발 기간까지 합치면 적어도 1986년까지는 거슬러간다.[2] JS로만 작성된 React Native 앱을 컴파일 없이(= Xcode 불필요) 구동시켜주는 Expo라는 앱이 있는데, 이게 예전에는 iOS에서도 작동되어서 개발자들이 앱을 돈 안들이고도 배포할 수 있는 방법이 있었지만, 결국 Apple이 이것마저 금지시켜버렸다(...)[3] 오픈 소스 컴파일러인 LLVM/Clang을 애플 내부에서 적당하게 변형한 버전. 해당 프로젝트의 PM인 Chris Lattner(크리스 래트너)가 Apple 직원이었던 만큼 Apple 플랫폼에 가장 이상적으로 달라붙도록 변형되었다.[4] 현재 C# 개발은 Visual Studio for Mac에서 공식적으로 지원된다.[5] 물론, Xcode 4의 베타는 저 Git 통합 때문에 거의 시망 수준이었다. 다른 것은 문제가 거의 없다시피 했는데 툭하면 Git과의 연동 실패로 IDE 자체가 뻗는 일이 다반사였다. 그것도 Golden Master 버전에서! 이 Git 연동은 Xcode 4.2에 들어서야 완벽해졌다.[6] 더불어, 이 때를 기점으로 오픈 소스 프로젝트 저장소 제공 서비스인 GitHub가 Objective-C 코드로 미어터지기 시작했다...지만 통계적인 변화는 전혀 없었다.#[7] Apple ID만 있다면 Mac App Store에서 내려받을 수 있다. #[8] 사실 Xcode 4 공개 직후 며칠간 유료로 $4.99에 판매한 전적이 있긴 하다. 얼마 안 가서 무료로 풀긴 했지만, 이 때 구매했던 사람들은 상당히 황당했을 듯하다.[9] 유료 개발자 인증에 필요한 금액은 1년에 $99, 한화로 약 130,000원 정도.(2015년 5월 기준) 자기가 쓰고 있는 카드가 무엇이냐에 따라 5개월정도 무이자 할부가 되기 때문에 본격적으로 공부해 보고자 하면 한번 투자해 볼만은 하다.[10] PowerPC용 바이너리와 Intel용 바이너리를 모두 포함해 각 아키텍처용 Tiger에서 모두 작동하도록 한 응용 프로그램 번들.[11] 프로그램 메모리 프로파일링 도구인 DTrace가 이 때 추가되었다.[12] iPhone 5 홍보 문구를 패러디 한 것이다.[13] 기존 유료 개발자 프로그램 등록자에게는 무료로 제공되었다.[14] 실행하면 Xcode와 주변 패키지를 설치하고 자기 자신을 삭제한다.[15] 그 전까진 iOS 앱만 만들 수 있었다.