2022 상반기 회고
벌써 1년의 반이 지나갔다. 원래는 연말마다 1년 회고를 쓰려고 했는데, 요즘 주간 회고를 하고 있고 회고의 중요성을 많이 깨닫고 있어서, 늦게나마 상반기 회고를 작성하게 되었다. 앱 용량, 빌드 속도 줄임 한 프로젝트를 4년 넘게 보니깐 해결해야 하는 숙제들이 많이 쌓여갔었다. 프로젝트가 운영한지 오래되기도 했고, 앞으로도 더 많은 개발자들이 함...
벌써 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...
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 파라미터를 이...
해당 글은 Quick way to open a Custom URL Scheme in iOS Simulator 참고하여 작성한 글입니다. 애플에서 커스텀 URL 스키마(이하 custom URL scheme)를 이용하여 앱의 특정 페이지를 여는 방법을 제공합니다. 특정 custom URL scheme을 탭 하면 앱이 열리게 되는데, 테스트하는 방법은 ...
이상하게 iOS 15에서 특정 페이지로 스크롤 할 때, 크래시가 발생하는 일이 생겼습니다. iOS 15 미만 기기에서는 발생하지 않았는데, iOS 15에서만 발생하여 iOS 15에서만 UIPageViewController가 내부적으로 특이하게 동작하는 것 같았습니다. 크래시가 발생하는 부분은 아래 코드 부분이었습니다. setViewController...
NavigationView SwiftUI에서 NavigationView를 이용해서 유저가 navigate 하면서 여러 화면들을 이동할 수 있게 할 수 있습니다. 아래 예시 코드에서 Text를 NavigationView로 감쌌는데, 감싼 후에 Text가 아래로 이동한 것을 볼 수 있습니다. struct ContentView: View { va...
벌써 2021년이 끝나간다. 시간이 빨리 지나간 것처럼 올해는 정말 많은 일이 있었고 바쁘게 지나간 것 같다. 작년에는 3년의 개발 생활을 회고했는데, 올해는 개인적인 일들이랑 같이 회고하려고 한다. 일과 개발, 스터디 회사 일은 늘 바쁘다. 빠르게 성장하고 더 높게 뛰기 위해 급하게 혹은 빠르게 개발해야 하는 일들이 있었다. 지금은 스쿼드 체계로 ...
View에 Background 더하기 스위프트UI에서 background(_:alignment:) view modifier를 이용해서 view에 background를 추가할 수 있습니다. 백그라운드는 추가하는 뷰의 크기만큼 만들어집니다. struct ContentView: View { let background = Color.blue ...