문득 TCA로 개발을 하려다가 TCA의 경우 특정한 템플릿이 존재한다는 것을 알게 되었고, 이것을 Xcode로 빠르게 만들 수 없을까? 하는 생각에서 템플릿을 적용해 보기로 했다.🎉 결과물개선이 필요하겠지만 첫번째 템플릿은 아래와 같이 Feature이라는 이름을 넣게 되면 자동으로 @Reducer struct Feature { ... } 와 FeatureView 가 생성된다. Feature 대신 다른이름을 넣으면 그 이름 그대로 만들어 준다. Preview도 간단하게 만들었다.🚧 과정과정은 생각보다 요상하게 안되는 것들이 있어서 조금 고생한 것 같다. 우선 Swift 코드는 아래와 같이 만들었다. ___VARIABLE_productName___ 은 내가 입력한 텍스트 값으로 대치된다.import Co..
오류 내용Xcode 에서 아래와 같이 멋진 오류를 마주했다... 도저히 무슨 오류인지 알수가 없다. 시뮬레이터 관련 오류인 것 같은데... 해결Product → Scheme 로 가서 Run → Environment Variables → + → OS_ACTIVITY_MODE: disable 해주면 해결된다! 참고 nw_connection_get_connected_socket_block_invoke 19 Connection has no connected handlerThe console of Xcode continue print __nw_connection_get_connected_socket_block_invoke 6 Connection has no connected handlerstackoverflow...
Xcode 에는 놀랍게도 Thread 의 경쟁 상황을 체크할 수 있는 툴이 있다. 바로 Thread Sanitizer 라는 것인데... 사용방법은 간단하다. 해당 프로젝트에서 Product 메뉴로 들어가면 아래에 Scheme → Edit Scheme 에 들어간다. 혹은 Xcode 중앙 상단에 Edit Scheme 바로 갈수 있는 경로가 있다. Run → Diagnostics 에 가서 Thread Sanitizer 를 선택해 주고 빌드한다. 빌드시간이 오래 걸리니 체크하고 빌드한 후에 다시 체크 해제해주는 것이 좋다. 여기서 실기기 말고 시뮬레이터를 선택해줘야 Thread Sanitizer 를 체크할수 있는 듯 하다. 시뮬레이터에 빌드를 하게 되면 아래와 같이 해당 코드에 Data race 보라색 오류가 ..
프로젝트를 진행하다보면 내 프로젝트는 총 몇줄일까? 궁금할때가 있다. 이럴때 아주 간단한 방법이 있다! 우선 터미널을 열어준다. 나는 보통 해당 폴더에서 이렇게 터미널을 열어준다. 혹은 cd ~/Desktop/DayCounter 같은 식으로 해당 폴더에 들어가준다! 아래와 같은 명령어를 입력해준다. find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l 그렇게 되면 짜잔! 아래와 같이 파일명들과 줄수가 표시되게 된다. 총 717줄이고 몇가지의 파일들은 리팩토링이 필요하겠구나... 생각이 된다.
SwiftLint 란? GitHub - realm/SwiftLint: A tool to enforce Swift style and conventions. A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub. github.com Swift 언어로 앱을 개발하다보면 코드의 스타일, 컨벤션을 맞추는데 어려움이 있다. 이때 SwiftLint 를 사용하여 코드의 스타일과 컨벤션을 효과적으로 맞출수 있다. SwiftLint 를 적용하여 코드를 작성하면 SwiftLint 에서 적용한 스타일과 맞지 않는다면 아래와 같이 Warning 이 뜨게 된다. 빌드..
Xcode 로 커스텀 폰트를 적용하려다 보면 폰트가 도저히 적용되지 않을 때가 있다. 아래와 같은 절차를 따른다면 무조건 적용이 가능할 것이다. 😇 타겟 확인해 보기 폰트를 추가했을 때 Target Memebership 도 같이 선택했을 것이다. 다시 한번 타겟을 앱으로 잘 설정해 줬는지 확인해 보자 Info.plist 살펴보기 Info 로 들어가서 Fonts provided by application 의 item 에 폰트가 확장자까지 잘 추가되어 있는지 확인해 보자! 빌드해서 폰트 이름 확인해 보기 그렇게 된다면 아래와 같이 모든 fontName 을 프린트해 보면 아마 파일이름과 다르게 되어있는 것을 발견할 수 있을 것이다. .onAppear { for fontFamily in UIFont.family..