Tagged

iOS

A collection of 15 posts

좀 더 나은 Collection View 를 위하여 - Diffable Data Source, Compositional Layout
Development

좀 더 나은 Collection View 를 위하여 - Diffable Data Source, Compositional Layout

OverviewUICollectionView 에 최근 새로운 기능들이 추가되고 WWDC에서도 소개가 되고 있지만  국내에서는 그렇게 많이 알려지지 않고 있는 것 같다. 개인적인 관심이 부족했던 것일지도 모르겠지만 😅 한국어로 된 문서가 그렇게 많은 것 같지 않아 소개를 해보고자 한다. 이번에 소개하는 내용들은 iOS 13 또는 14 이상의 디바이스에서만 지원하는 기능이라 바로 사용하기는 쉽지 않겠지만, 알아두면

Apple

iOS의 다크모드 - (2) 구현

저번 글에서는 다크 모드를 적용해야 하는 이유에 대하여 설명했다면, 이번에는 실제로 배포 중인 앱에 다크 모드를 적용하면서 사용했던 여러가지 기능들에 대한 이야기를 해 보려고 합니다. Color AssetsXcode 에서 제공하는 Asset 파일인 .xcassets 에는 생각보다 여러 종류의 데이터를 저장할 수 있습니다. 그 중 Color 데이터를 Asset 파일에 저장하면 다크 모드 대응을

TIL: UIImageView와 Tint Color, 그리고 XIB
iOS

TIL: UIImageView와 Tint Color, 그리고 XIB

오늘은 최근 일을 하면서 겪게 된 버그 하나를 이야기 해보자 합니다. UIImageView 와 Tint Color, 그리고 XIB가 힘을 합쳐 한 개발자를 혼란에 빠트린 버그 이야기입니다. Photo by pine watt / UnsplashUIImage Class 에는 Rendering Mode 라는 속성이 있습니다. 이 속성은 iOS 7 이후부터 사용할 수 있으며, 이미지를 렌더링 하는 방법을 정의하는

Development

iOS의 다크모드 - (1) 배경

애플이 이번 WWDC 2019에서 iOS 13을 발표하면서 전면에 내세운 기능은 다크 모드. macOS Mojave에서 처음 선보였던 다크 모드를 iOS 13에 도입하는 것을 발표하면서 많은 박수를 받았다. 발표 당시에 공개했던 영상을 보고 가자. 애플의 기술 선택최근의 애플은 어느 정도의 성숙기를 거친 기술만 제품에 적용을 하고 있는 것으로 보인다. 초기 애플의 아이폰과는

Carthage 의존성 이슈 관리하기
Development

Carthage 의존성 이슈 관리하기

iOS 개발을 하면서 가장 많이 접하게 되는 CLI Tool은 Package Manager가 아닐까 싶다. 개인적으로 지금까지 주로 사용하던 패키지 매니저는 CocoaPods 이었는데 새로운 회사로 이직을 하면서 본격적으로 Carthage를 사용하게 되었다. Carthage를 사용하면서 겪었던 몇가지 이슈에 대하여 공유를 해보고자 한다. Carthage 의 특성카르타고의 Github 페이지에 나온 첫 설명문은 아래와 같다. Carthage is

iOS

TIL: Objective-C 와 Swift 간 Property Type 호환 문제

Swift 가 발표된지 x년이 지났다. 지금까지 Objective-C (이하 ObjC) 를 사용하고 있던 회사들이 “이제 우리도 Swift 써볼까?” 라는 생각을 많이 할 것이다. 우리 회사도 같은 생각을 한 사람이 있었고 (…) 그 결과 현재 작업 환경은 ObjC 와 Swift 가 공존하는 형태가 되었다. 물론 기존 코드들을 ObjC 에서 Swift 로 변환할 수

iOS 개발 도우미, Fastlane을 간단히 써봤다.
iOS

iOS 개발 도우미, Fastlane을 간단히 써봤다.

지난 2주간 테스트를 짜봤으니 이제 이걸 어떻게 써먹을지 고민해봤다. 테스트가 잘 되면 이제 CI 같은걸 고민 할 수 있을 것 같다. 하지만 iOS의 경우 배포도 그렇고 CI 서버가 Mac 이어야 해서 외부 서비스를 사용하기에는 너무 비쌌다. 그래서 고민을 좀 하다가 Fastlane 을 제대로 써보자는 생각으로 사용해봤다. 엄밀히 말하자면 테스트 시리즈에는

아, 나도 테스트 코드 짠다! - (2) Xcode UI 테스트 작성
iOS

아, 나도 테스트 코드 짠다! - (2) Xcode UI 테스트 작성

프론트엔드 또는 앱 개발을 할때는 사용자의 입력을 받게 되는데, 사용자의 입력이 제대로 처리 되는지를 테스트를 하기 위해 UI 테스트를 하게 된다. 이 테스트는 사람이 할 수도 있지만, 매번 업데이트 될 때마다 같은 기능을 사람이 직접 테스트 하는건 시간 낭비일 경우가 많다. 시간 낭비는 개발자의 도리가 아니기에, 이런 테스트를 기계가 할

아, 나도 테스트 코드 짠다! - (1) XCTest를 이용한 테스트 코드 작성
iOS

아, 나도 테스트 코드 짠다! - (1) XCTest를 이용한 테스트 코드 작성

개발을 업으로 삼은지 7년차가 되는 시점이지만, 테스트 코드를 한 번도 작성해보지 못한건 반성해야 할 부분일지도 모르겠다. 일정에 치여서 테스트 코드 같은건 엄두도 못냈고, 거쳐온 회사들은 테스트 코드를 제대로 작성하고 있는 곳이 없었다. 명언 제조기 박명수옹 (47세) 그러다 마침 일정이 비는 시기가 찾아왔고 팀 내부에서도 테스트 코드의 중요성이 언급되기 시작했다. 실제로

iOS 자동 갱신 구독 기능 구현에 대한 회고 - (2) 앱 심사 리젝
Development

iOS 자동 갱신 구독 기능 구현에 대한 회고 - (2) 앱 심사 리젝

이번 업데이트 진행중에 총 세번의 리젝을 당했는데, 대부분이 개발자가 생각하지 않았을 이슈들이었다. 처음 자동 갱신 구독 기능을 넣기로 했다면 아래 사항들을 잘 따져보는게 좋을것이다. 어이없는 실수 리뷰 요청을 올린 다음날은 토요일이었다. 나는 내가 속해 있는 커뮤니티의 컨퍼런스에 참여하기 위해 이동하고 있던 중이었다. 그러다 아무 생각 없이 업무 메일을 열어 봤는데,

iOS 자동 갱신 구독 기능 구현에 대한 회고 - (1) 시작
Development

iOS 자동 갱신 구독 기능 구현에 대한 회고 - (1) 시작

애플 앱스토어에서는 사용자의 최초 확인 한번으로 매달 결제가 이루어지게 하는 자동 갱신 구독 (Auto-Renewable Subscription) 기능을 지원한다. 이 기능은 본래 잡지나 서적에 해당하는 앱에만 적용되었지만, WWDC 2016을 기점으로 모든 앱에서 사용 가능하도록 바뀌었다. 이 기능은 개발사에게 매우 유리한 구매 형식인데, 사용자가 1년 이상 정기구독을 유지할 경우 애플에서 가져가는 수수료가 30%

iOS 9 버전에서 유니버셜 링크로 앱 실행이 안될때
iOS

iOS 9 버전에서 유니버셜 링크로 앱 실행이 안될때

** 2017. 10. 24 - 다른 사례에 대한 내용이 추가되었습니다* 유니버셜 링크는 특정한 페이지 주소를 클릭했을때 앱에서 해당 컨텐츠를 볼 수 있도록 만들어진 특수한 딥링크입니다. 애플이 이 유니버셜 링크라는 기능을 선보인건 iOS 9 버전부터 였습니다. 뭐, 물론 애플이 새로 내놓은 기능들이 바로 제대로 동작하는걸 기대하는건 희망사항일 뿐입니다. 저희 회사에서도 유니버셜 링크를

Xcode 9에서 올린 빌드가 iTunes Connect 에서 보이지 않을때
iOS

Xcode 9에서 올린 빌드가 iTunes Connect 에서 보이지 않을때

iOS 11 대응을 위해 Xcode 9을 설치하신 개발자 분들이 많을거라고 생각됩니다. 저도 제가 관리하는 앱들의 iOS 11 대응을 진행하고 있습니다. 그러다 릴리즈 작업 도중 특이사항을 하나 발견하여 공유하고자 합니다. 저는 iOS 11 출시 후 새 SDK에서 빌드 후에 발생하던 여러 문제를 잡고 릴리즈를 준비하고 있었습니다. Xcode 9 설치 후에 Organizer의

Lighthouse: 가상화폐 시세 조회
App

Lighthouse: 가상화폐 시세 조회

항상 그랬지만 내가 직접 뭔가를 만들기 시작하는 계기는 항상 "불편함"을 느낄때였다. 이번에도 그랬다. 용돈이나 벌어볼까 싶은 생각에 가상화폐에 소액을 집어 넣었는데, 아이디와 비번을 입력하고 보안을 위해 걸어놓은 OTP 번호를 입력하는 일이 너무나도 번거로웠다. 물론 조회를 위한 앱이 몇가지 있긴 했지만, "앱은 예뻐야 한다" 라는 기준에