지수네

  • |
  • Me
  • |
  • Portfolio
  • |
  • |

Swift Package Manager(SPM)에 새롭게 추가된 바이너리 배포

July 11, 2020

Swift5.3에서 Swift Package Manager(SPM)의 Binary 배포가 추가되었습니다. 배포를 위해서는 바이너리를 Xcode11에서 소개된 xcframework로 만들어야 합니다. 만들어진 xcframework 를 사용하는 방법은 2가지가 있습니다. 원격 소스에 있는 xcframework의 url, checksum이 필요합니다. static func binaryTarget(name: String, url: String,... 계속 읽기

최근 적용한 iOS 프로젝트 구성

February 24, 2020

기존 프로젝트의 개발 환경과 리팩토링 경험을 공유합니다. 빌드속도(Carthage, Rome) 모든 라이브러리들을 cocoapods를 통해 관리하고 있고 realm, couchbase와 같이 무거운 라이브러리들도 포함되어 있었습니다. 클린 빌드시 약 30분 정도의 시간이 필요했고, 이후 다시 말하겠지만 프리뷰와 CI를 위해서도 빌드 시간을 줄이고자 했습니다. 이를 위해 carthage를 도입 했는데, iOS의 Min Version을 11... 계속 읽기

Cocoapod 프로젝트를 Carthage로 변환할때 하는 실수

December 2, 2019

기존 프로젝트를 Carthage로 변환하는 이유는 많겠지만, 가장 큰 이점은 Prebuild로 인한 빌드타임 감소 입니다. 대부분의 큰 프로젝트는 바로 변환이 가능하며, Realm과 같은 라이브러리는 바이너리도 제공해주고 있기 때문에 빌드 없이 사용도 가능합니다. (구 빌드 버전에 대해서도 swift5.1로 컴파일 된 바이너리를 제공해주고 있다.) 문제는 기존 Pod로 사용하던 레거시 프로젝트를 Carthage로 변환하는것 입니다. 변환하... 계속 읽기

WKWebView의 UIDelegate completion crash 해결하기

October 28, 2019

WKWebView에선 UIDelegate를 통해서 웹에서 일어난 alert, confirm, prompt에 대해서 custom ui를 제공할 수 있게 도와줍니다. UIDelegate에서는 CompletionHandler를 통해서 javascript와 값을 주고받는데, 핸들러를 호출하지 않거나, 두번 호출하게 되면 크래시가 나면서 앱이 종료됩니다. Terminating app due to uncaught exception 'NSIntern... 계속 읽기

PropertyWrapper, RxSwift를 이용한 MVVM Binding 구현

August 3, 2019

해당 구현은 Swift5.1 Xcode11 beta5에 의존합니다. Xcode 정식 버전이 나오거나 베타 버전이 변함에 따라 구현 방법이 달라질 수 있습니다. https://forums.swift.org/t/se-0258-property-wrappers-third-review/26399 해당 쓰레드에서 변화와 관련된 자세한 내용을 확인할 수 있습니다. 이번에 나올 예정인 SwiftUI는 아쉽게도 min SDK가 13이기 때문에 바로... 계속 읽기
다음