본문 바로가기

개발 블로그/아이폰개발26

swift 상대적 시간, 1일전, 1시간 전, 1 일 전, 1 시간 전, 몇 분 전, 몇 분 후, 시간 후, 일 후, 리뷰를 쓴 시간을 유저에게 보여주게 되면서 저런 시간 표현이 필요했다. 아주 간단하게.. func relativeTime(in locale: Locale = .current, unitsStyle: RelativeDateTimeFormatter.UnitsStyle = .full) -> String { let formatter = RelativeDateTimeFormatter() formatter.unitsStyle = unitsStyle return formatter.localizedString(for: self, relativeTo: Date()) } public enum UnitsStyle : Int { case full = 0 /.. 2020. 10. 20.
[iOS swift] 스크롤 뷰를 특정셀(cell) 또는 섹션(Section)으로 이동시키는 방법, TableView에서 특정셀로 또는 섹션으로 이동으로 시키는 경우가 흔히 있다. 그럴때 사용하는 것은 tableView.scrollToRow(at: IndexPath(row: 0, section: 0)) developer.apple.com/documentation/uikit/uitableview/1614997-scrolltorow Apple Developer Documentation developer.apple.com 위 링크에 들어가면 자세한 내용이 있다. 정적인 TableView에서는 정말 유용하고 좋지만.. 동적인 상황에서는 이슈가 하나있다. 어느순간 row가 0일 경우 runtime crash 죽는다.. scrollToRow(at: IndexPath(row: 0, section: 0)) 음..이거.. 2020. 9. 15.
[iOS Swift] Xcode Server ipa 파일을 만들기 위한 exportOptionPolist 설정 항목에 대하여.. Xcode Server를 이용해서 또는 iOS앱의 ipa 패키지를 만들 때는 xcodebuild의 -expoertOptionsPlist 옵션파일을 지정해야 한다. 이런식의 파일을 파일은 이런식으로 되어있다. 아마 IPA 파일을 만들고 Export 를 하게 되면 그 안에 저 파일이 들어 있으니 한번 보길... 위에서부터 설명 compileBitcode compileBitcode : Bool For non-App Store exports, should Xcode re-compile the app from bitcode? Defaults to YES. iOS 앱은 LLVM을 컴파일러로 이용하고 Bitcode는 LLVM이 생성하는 중간 코드이다. Bitcode를 사용하는 경우 AppStore에서 필요한 경우에 .. 2020. 8. 4.
[iOS Swift] Xcode Server를 이용한 CI(Continuous Integration) 설정하기 1편 iOS 자동배포를 위한 여러가지 서비스가 있다. Fastlane : https://fastlane.tools/ Fabric : 서비스 종료 Jenkins : https://www.jenkins.io/ Xcode Server 도대체 자동배포는 왜 필요할까..? 반복적인 배포 작업으로 인한 불필요한 시간 소비? 사실 개발을 하다보면 배포를 자주하지 않게 된다. 개발을 10분마다 커밋을 하는 경우도 드물고..QA 중이 아니라면야.. 버그를 수정하고 직접 손으로 간단히 버튼 몇개를 눌러서 배포를 하는게 생각보다 어렵거나..오래 걸리거나..반복적이지도 않다고 생각한다. 요약 : 생각 보다 귀찮지 않은 수동 배포 그런데..? 한명이 아닌 여러명이 개발을 같이 하게 된다면..? 그러면 이야기가 달라진다. 각자 컴퓨터.. 2020. 7. 30.