Joohee Kim's Blog
취소

듀얼 모니터 보다 싱글 모니터

아마도 많은 개발자들은 듀얼 모니터를 사용할 것이다. 하나의 모니터에서는 메신저나 개발에 필요한 화면을 띄우고, 다른 모니터로는 개발 프로그램을 열어서 사용하는 게 대부분일 것으로 보인다. 나도 예전에는 맥북프로 화면으로 메신저를 키고 연결된 모니터로 개발 프로그램을 키고 업무를 보았다. 아니면 와이드 모니터를 사서 하나의 모니터에 반을 나눠서 프로그...

코드 리뷰를 개선할 수 있는 Danger + SwiftLint Plugin

깃허브에서 PR을 올려서 코드 리뷰를 받고 있는데, 코드 리뷰를 하다 보면 코드 스타일 등에 대해서 놓친 경우가 있어서 코멘트를 다는 경우가 있다. 예를 들면 네이밍 컨벤션이 잘 지켜지지 않거나 자주 놓치는 접근 제한자 같은 것도 있다. 코드 리뷰를 하는데 이런 코드 스타일에 대해서 코멘트를 다는 시간을 줄이고 코드 리뷰를 더 효율적으로 도와줄 수 ...

iOS 15에서 UIButton의 title이 Button으로 나타나는 현상 해결 방법

Xib로 UIButton을 만들면 보통 Type을 Custom으로 해서 만드는 경우가 있다. 이미지를 넣어서 이미지만 있는 버튼을 그릴 때는 Title 값을 빈 문자열로 둔다. 하지만 어떻게 설정하냐에 따라서 iOS 15에서는 Title 값에 Button이 나타나는 경우가 있다. 이때는 Style 값을 Default 값으로 바꾼 뒤, Title ...

HTML을 NSAttributedString으로 변환하기

화면에 노출하는 데이터 중에 문자열을 다루는 데이터가 많다. 그중에 특정 문자열의 텍스트 스타일을 입혀서 보여주는 경우가 있는데, 보통 HTML을 가지고 포맷하는 경우가 많다. 이때, swift에서 HTML을 NSAttributedString으로 변환해서 보여줄 수 있다. 예를 들어 아래와 같이 HTML이 있다면: "<b>Hello&lt...

2022 상반기 회고

벌써 1년의 반이 지나갔다. 원래는 연말마다 1년 회고를 쓰려고 했는데, 요즘 주간 회고를 하고 있고 회고의 중요성을 많이 깨닫고 있어서, 늦게나마 상반기 회고를 작성하게 되었다. 앱 용량, 빌드 속도 줄임 한 프로젝트를 4년 넘게 보니깐 해결해야 하는 숙제들이 많이 쌓여갔었다. 프로젝트가 운영한지 오래되기도 했고, 앞으로도 더 많은 개발자들이 함...

SwiftUI에서 contentShape()을 이용해서 뷰를 탭하게 하는 방법

일반 Text나 Image을 사용하면 탭 제스처를 추가해서 탭 했을 때의 동작을 정의할 수 있다. 하지만 VStack이나 HStack 같은 container view에 제스처를 추가하면 생각처럼 잘 안될 때가 있다. 예를 들어, HStack 안에 Image와 Text 사이에 Spacer를 넣었다면, Spacer 영역을 탭 했을 때, 원하는 탭 제스처가...

UserDefaults를 사용하는 방법

iOS에서는 사용자 설정 같이 정보량이 적은 데이터들을 앱이 설치되어 있는 동안 저장하여 사용할 수 있습니다. 바로 UserDefaults를 사용해서 저장하는 방법입니다. UserDefaults는 integer, boolean, string, array, dictionary, URL 같은 타입들을 저장할 수 있습니다. let defaults = Us...

Xcode Playground에서 attach failed invalid argument 에러 해결하는 방법

Xcode Playground 생성해서 간단한 코드를 실행하려고 하는데, 아래와 같이 에러가 발생해서 실행이 안 되는 것을 발견했다. Failed to launch process. Failed to attach to stub for playground execution: error: attach failed ((os/kern) invalid a...

문자열 배열을 하나의 문자열로 결합하는 방법

스위프트에서 문자열 배열을 하나의 문자열로 결합하는 간단한 메소드가 있습니다. 바로 joined()입니다. let array = ["고양이", "강아지", "햄스터"] let joined = array.joined(separator: ", ") print(joined) // Prints "고양이, 강아지, 햄스터" separator 파라미터를 이...

Custom URL Scheme를 시뮬레이터에서 빠르게 여는 방법

해당 글은 Quick way to open a Custom URL Scheme in iOS Simulator 참고하여 작성한 글입니다. 애플에서 커스텀 URL 스키마(이하 custom URL scheme)를 이용하여 앱의 특정 페이지를 여는 방법을 제공합니다. 특정 custom URL scheme을 탭 하면 앱이 열리게 되는데, 테스트하는 방...