Swift Package Manager(SPM) 써보기 #1

기다리던 Xcode 11 GM이 나왔다. 과감하게(?) 개발 중이던 프로젝트를 열고 SPM을 지원하는 외부 library를 리스팅 후 Podfile 에서 삭제하고 이를 SPM으로 관리할 수 있게 설정을 해보았다… 과정은 아래와 같다. SPM을 이용해 외부 라이브러리 등록하기 SPM을 이용하여 외부 프레임워크를 등록하기 위해서는 Project -> Swift Package로 이동하여 +버튼 선택 혹은 상단 메뉴 File -> Swift Packages -> Add Package Dependency… 를 선택한다. 현재 SPM을 지원하는 인기(필자가 주로 사용하는 ㅋ) 외부 라이브러리는 얼추 아래와 같다. RxSwift, RxCocoa, RxDataSources Alamofire SDWebImage SnapKit 위에 나열된 것 외의 오픈소스 library가 SPM을 지원하는지 여부를 확인하기 위해서는 해당 Git Repository로 가서 확인하면 되겠다. (CocoaPods으로 관리하던 라이브러리가 대부분일텐데 https://cocoapods.org 로 이동 후 원하는 라이브러리를 검색하고 상세 보기에서 오른쪽 하단에 보면 GitHub Repo 링크를 통해 이동하면 편리하다.) 버전 관리 룰 지정 Repository URL 을 입력하고 하단 Next 버튼을 누르면 해당 Repository를 검색한 후 아래와 같이 버전 관리 rules를 어떻게 할 것인지 묻는 창으로 바뀐다. 버전 관리룰은 아래와 같으며, 편한 방법으로…

이제 Swift로 넘어가도 되요?

iOS 앱 개발자 혹은 관심있는 분들이 관심가지는 화두는 “이제 Swift 로 넘어가도 되요?” 인 것 같다. 어제 OSXDev 모임 때는 내 의견을 언급하지 않았지만 조금 진지체로 내 생각을 얘기하자면 넘어가고 말고는 모두의 마음에 있는 모험심(도전정신)에 달려있다고 본다. 개인적인 이야기를 조금 하자면, 학교에서는 하드웨어 하느라 C/C++만 했었고 대학원 때는 시뮬레이터 만든다고 MFC, 첫 직장에서는 Android 개발을 했었던지라 iOS 앱 개발을 처음 시작했을때는 생소한 Objective-C라는 언어에 익숙해지려 부단히 노력을 했었다. 시중에 나오는 책들 다 사서 이것저것 참조하고 온라인 뒤지고 iOS 업데이트 될 때마다 새로운 기능들 연습삼아 만들어보고.. 다시 그렇게 할 수 있을까란 생각이 들 정도로 재미있었고 문턱 하나씩 넘는 재미에 푹 빠져있었다. 2014년 WWDC에서 Swift가 발표되었을 때는 옆에 계신 분에게 전 계속 Objective-C만 할 겁니다. 라고 했는데 숙소에 돌아와 곰곰히 생각해보니 뭔가에 익숙해지다보니 점점 보수적이 되고 안주하려는 내가 무서워졌었다. 그래서 관심은 가져보자는 생각에 Swift 관련 자료나 도서에 관심을 가지게 되었고 SKP에서 마지막 프로젝트는 함께 프로젝트 수행하는 형님에게 동의를 구하여 Swift로 세팅해서 일단…

Swift vs. Objective-C ?!

2014년 Apple은 WWDC 2014에서 Swift를 발표했고 빠르게 버전업을 거쳐 벌써 Swift 2.0이 나왔습니다. 발표 당일 현지에 있었던 전 환호의 소리를 들었지만 걱정이 많았습니다. 새로운 언어를 배워야 한다는 부담감도 있었고 반감도 있었죠. 그래서 주변 분들에게는 난 계속 Objective-C로 개발할거야 라고 장담했었죠. 하지만 그 장담은 불과 일년만에 깨지고 말았습니다. 올해 초 새로운 프로젝트에 투입이 되었는데 무슨 이유인지 몰라도 욕심이 생겨서 프로젝트를 Swift로 세팅했습니다. 당시는 Swift 1.1에서 1.2로 넘어가는 시점이었는데 미리 해본 개발자분들은 아직은 아니다라며 말리셨습니다만 무모한(?) 도전을 해보기로 했습니다. 결국 Swift 1.2를 이용해 프로젝트를 계속 진행하였고 최근 결과물이 Apple의 심사를 마치고 App Store에 등록이 되었습니다. 왜 중도에 Objective-C로 회귀하지 않고 Swift로 프로젝트를 지속했을까 궁금증이 생기시는 분도 계실테고 반대로 아직도 시기상조 아닌가라고 생각하시는 분들이 많으시리라 생각됩니다. 그래서 좀 늦었지만 Swift 프로젝트 경험기를 공유하고자 합니다. Swift로는 안되는 것이 많다. 아닙니다. 어떤 framework를 사용하느냐에 따라 버그 유무는 존재했었지만 안되는 것은 없었습니다. 1.1까지는 버그가 꽤 많았다고 합니다. 그래서 Objective-C 코드와 Swift 코드를 Bridge 해서 사용하느니 그냥 Objective-C로 하겠다는 분도 계셨었습니다. 이 부분은 1.2에서…