Multiple Pages Xcode Playground
간단한 스위프트 코드를 작성할 때 Xcode Playground를 사용한다. Xcode Playground 파일을 생성하면 하나의 플레이그라운드에서 코드를 작성하게 되는데, 여러 플레이그라운드 파일들을 묶고 싶은 경우가 있다. 예를 들어, 하나의 주제를 가지고 다양한 코드 방법을 파일별로 정리하거나 문법 공부할 때 문법별로 정리하는 경우가 있다. 이럴...
간단한 스위프트 코드를 작성할 때 Xcode Playground를 사용한다. Xcode Playground 파일을 생성하면 하나의 플레이그라운드에서 코드를 작성하게 되는데, 여러 플레이그라운드 파일들을 묶고 싶은 경우가 있다. 예를 들어, 하나의 주제를 가지고 다양한 코드 방법을 파일별로 정리하거나 문법 공부할 때 문법별로 정리하는 경우가 있다. 이럴...
2022 상반기 회고 벌써 2023년이 코앞이다. 하반기는 상반기에 비해서 시간이 빨리 지나간 것 같다. 상반기에는 일 위주로 작성했다면 이번 하반기에는 개인적인 일과 함께 회고를 작성했다. 운동과 여행 올해 2월부터 클라이밍 운동을 시작했는데 처음에는 많이 힘들었지만 재밌어서 꾸준히 하고 있다. 결국에는 클라이밍화랑 운동복을 따로 사서 운동하러...
2019년 이후로 대면 컨퍼런스 참여하는 것은 이번 Let’s Swift 행사가 처음이었다. 코로나로 인해 대면으로 컨퍼런스 참여하는 게 힘들었는데, 올해부터는 조금씩 소수 인원들만 초대해서 오프라인 컨퍼런스들이 조금씩 생기기 시작했다. 다행히 티켓팅 성공해서 이번 레츠스위프트 행사에 참여할 수 있었다. 그전에 다녔었던 오프라인 컨퍼런스는 나 혼자 다...
아마도 많은 개발자들은 듀얼 모니터를 사용할 것이다. 하나의 모니터에서는 메신저나 개발에 필요한 화면을 띄우고, 다른 모니터로는 개발 프로그램을 열어서 사용하는 게 대부분일 것으로 보인다. 나도 예전에는 맥북프로 화면으로 메신저를 키고 연결된 모니터로 개발 프로그램을 키고 업무를 보았다. 아니면 와이드 모니터를 사서 하나의 모니터에 반을 나눠서 프로그...
깃허브에서 PR을 올려서 코드 리뷰를 받고 있는데, 코드 리뷰를 하다 보면 코드 스타일 등에 대해서 놓친 경우가 있어서 코멘트를 다는 경우가 있다. 예를 들면 네이밍 컨벤션이 잘 지켜지지 않거나 자주 놓치는 접근 제한자 같은 것도 있다. 코드 리뷰를 하는데 이런 코드 스타일에 대해서 코멘트를 다는 시간을 줄이고 코드 리뷰를 더 효율적으로 도와줄 수 ...
Xib로 UIButton을 만들면 보통 Type을 Custom으로 해서 만드는 경우가 있다. 이미지를 넣어서 이미지만 있는 버튼을 그릴 때는 Title 값을 빈 문자열로 둔다. 하지만 어떻게 설정하냐에 따라서 iOS 15에서는 Title 값에 Button이 나타나는 경우가 있다. 이때는 Style 값을 Default 값으로 바꾼 뒤, Title ...
화면에 노출하는 데이터 중에 문자열을 다루는 데이터가 많다. 그중에 특정 문자열의 텍스트 스타일을 입혀서 보여주는 경우가 있는데, 보통 HTML을 가지고 포맷하는 경우가 많다. 이때, swift에서 HTML을 NSAttributedString으로 변환해서 보여줄 수 있다. 예를 들어 아래와 같이 HTML이 있다면: "<b>Hello<...
벌써 1년의 반이 지나갔다. 원래는 연말마다 1년 회고를 쓰려고 했는데, 요즘 주간 회고를 하고 있고 회고의 중요성을 많이 깨닫고 있어서, 늦게나마 상반기 회고를 작성하게 되었다. 앱 용량, 빌드 속도 줄임 한 프로젝트를 4년 넘게 보니깐 해결해야 하는 숙제들이 많이 쌓여갔었다. 프로젝트가 운영한지 오래되기도 했고, 앞으로도 더 많은 개발자들이 함...
일반 Text나 Image을 사용하면 탭 제스처를 추가해서 탭 했을 때의 동작을 정의할 수 있다. 하지만 VStack이나 HStack 같은 container view에 제스처를 추가하면 생각처럼 잘 안될 때가 있다. 예를 들어, HStack 안에 Image와 Text 사이에 Spacer를 넣었다면, Spacer 영역을 탭 했을 때, 원하는 탭 제스처가...
iOS에서는 사용자 설정 같이 정보량이 적은 데이터들을 앱이 설치되어 있는 동안 저장하여 사용할 수 있습니다. 바로 UserDefaults를 사용해서 저장하는 방법입니다. UserDefaults는 integer, boolean, string, array, dictionary, URL 같은 타입들을 저장할 수 있습니다. let defaults = Us...