Find Funny Things

좀 더 나은 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 파일에 저장하면 다크 모드 대응을

2019년, 나의 한해를 돌아보며
Retrospective

2019년, 나의 한해를 돌아보며

다사다난했던 2019년이 마무리 되어 가고 있다. 올해는 개인적으로, 그리고 업무적으로도 많은 일을 해왔는데 한번 정리해 볼 만한 한해였다고 생각되서 끄적여본다. 이음 5.0 풀체인지 리뉴얼“조엘 온 소프트웨어” 라는 책을 읽어보면 넷스케이프 브라우저를 예로 들어 코드를 “갈아 엎기”에 대해 경고하는 내용이 있는데, 바로 이 리뉴얼 작업이 그런 작업이었다. 5년

TIL: Catalina 에서 Python 스크립트 편하게 쓰기
Development

TIL: Catalina 에서 Python 스크립트 편하게 쓰기

제가 현재 몸담고 있는 회사인 원티드랩에서는 Lokalise 라는 번역 지원 Tool 을 사용하고 있습니다. 이 Tool 은 자체 API를 통해 각 환경에 맞는 Resource 파일을 받을 수 있도록 해 주는데, 저희는 빌드 전에 자동화 스크립트를 사용하여 Resource 파일들을 제 위치에 받아주는 작업을 하고 있습니다. 문제 발생그런데 최근 macOS Catalina 로

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 이후부터 사용할 수 있으며, 이미지를 렌더링 하는 방법을 정의하는

Let'Swift 2019 참석 후기 - 2

Let'Swift 2019 참석 후기 - 2

지난 글에 이어 Let'Swift 2019 컨퍼런스 중 참석한 세션들에 대한 내용들을 공유해 봅니다. 그리고 좋았던 점과 아쉬웠던 점 몇가지를 이야기 하고자 합니다. 개인적인 의견도 중간중간 포함되어 있으니 참고 부탁드립니다.발표자료와 예제는 Let'Swift 홈페이지의 Program 섹션에서 공개되고 있습니다.Photo by Jonas Jacobsson / UnsplashSwift 5.1 for SwiftUI얼마 전에 공개된 Swift 5.

Let'Swift 2019 참석 후기 - 1

Let'Swift 2019 참석 후기 - 1

올해도 돌아온 Let'Swift 에 참석하였습니다. 이번 컨퍼런스도 참 유익한 내용이 많았습니다. 아직 발표 자료들이 홈페이지에 모두 오픈되지 않았지만, 세션을 들으면서 정리한 내용을 공유해 봅니다. 개인적인 의견도 중간중간 포함되어 있으니 참고 부탁드립니다.발표자료와 예제는 Let'Swift 홈페이지의 Program 섹션에서 공개되고 있습니다.AnimationsiPhone OS 3.0 부터 존재하던 CADisplayLink 라는 기능을 이제서야 알게

TIL: macOS Catalina CLI 빌드 문제

TIL: macOS Catalina CLI 빌드 문제

macOS Catalina(이하 카탈리나)가 릴리즈 된 지 2주 정도 지났다. 카탈리나는 출시 이후 많은 이슈를 만들었는데 대표적으로 권한 문제나 32bit 프로그램 미 지원 등이 큰 이슈로 발견되었다. 그 외에도 사소하고 많은 이슈들이 사용자들을 괴롭혔는데, 그 중 어제 내가 겪었던 이슈를 하나 풀어 보고자 한다. Fastlane Build 먹통모바일 앱 빌드

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

모바일 스이카 비밀번호를 잃어버렸을때
Travel

모바일 스이카 비밀번호를 잃어버렸을때

도쿄 여행을 가게 되면 한번쯤은 쓰게 되는 교통카드 스이카(Suica). 이 카드가 있다면 일본내 많은 철도회사 및 스이카 가맹점에서 결제가 가능하고, 편의점 이용시 소비세 8%로 인한 잔돈이 발생하지 않는다는 점에서 여행객들에게 참 좋은 아이템 입니다. 아이폰의 애플 페이 기능을 사용하는 모바일 스이카는 아이폰 8 이상(일본 판매 기종은 7부터)

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 번호를 입력하는 일이 너무나도 번거로웠다. 물론 조회를 위한 앱이 몇가지 있긴 했지만, "앱은 예뻐야 한다" 라는 기준에

중국산 기계식 키보드, AJAZZ geek AK33 구입기
Review

중국산 기계식 키보드, AJAZZ geek AK33 구입기

최근 중국산 전자제품들이 꼬리에 꼬리를 물고 국내에 소개되고 있습니다. 미친 가성비, 대륙의 실수 같은 키워드를 달고 말이죠. 반쯤은 대세를 따라, 반쯤은 호기심으로. 커뮤니티에 이야기가 돌던 중국산 키보드를 하나 구매해보았습니다. 과연 중국산 키보드도 쓸만 할까요? 한국에 양질의 중국 전자제품이 밀물처럼 들어오게 된 계기라고 한다면 단연히 샤오미의 공이 컸다. 10400mAh 외장 배터리가

윈도우 기능 추가시 트랙잭션 관련 오류가 생기는 경우 해결방법 (0x80071A90)
Windows

윈도우 기능 추가시 트랙잭션 관련 오류가 생기는 경우 해결방법 (0x80071A90)

예전부터 골치를 앓고 있었던 오류가 하나 있었는데, Windows의 기능을 추가하려고 할때 발생하는 알 수 없는 오류였다. 윈도우 8땐가 그 전부터였던가 모르겠지만 정말 오래 끌었던 오류였다. 함수에서 다른 트랙잭션용으로 예약된 이름을 사용하려고 했습니다. 이 오류가 발생하면 윈도우 기능을 추가하거나 제거하는 중에 작업이 중단된다. 그래서 여태까지 IIS나 FTP 서버를 설치하지 못하고 있었다.

KT LTE egg+ A 2주일 사용기
Review

KT LTE egg+ A 2주일 사용기

KT에서 새로운 LTE 에그 2종을 출시했다. Wibro와 LTE를 모두 지원하지만 LTE를 우선으로 연결하는 에그는 이번이 처음이다. 그 중 고급형인 LTE egg+ A 모델을 2주일간 사용해 보았다. 빠른 속도와 부가 기능이 풍부한 이 에그를 하나하나 살펴보자. ** 이 광고를 보고 심쿵한건 나뿐만이 아닐거라고 믿는다.* 솔직히 말하자. 난 물건을 살때 외관을 엄청나게 중요시

주토피아 (2016)
Movie

주토피아 (2016)

** 스포일러는 없습니다. 이미 다들 보셨겠지만.* [캡틴 아메리카: 시빌워] 의 한국 개봉에 맞춰 기세가 한풀 꺾인 주토피아. 사실 진작부터 봐야겠다는 생각은 있었지만 주말마다 스케쥴이 빡빡했던 관계로 보지 못하고 있었다. 근데 더 미루면 일에 치여서 극장에서 못 볼것 같아서 겨우 짬을 내 극장에 갔다 왔다. 사실 이 영화를 보기 전부터 저 요망한