본문 바로가기

🍎 iOS52

[iOS] 변수명, 어떻게 지을까? - API Design Guideline(1) API Design Guideline의 원문과 번역본이 별도로 있지만, 단순히 읽기만 하면 잘 이해가 안 되더라도 그냥 넘어가거나 번역이 이상하면 눈에 들어오지 않아 나름대로 번역을 해봤다. 번역이라고 번역투이고 싶지 않아서 자연스럽게 써보고 싶었는데 뭔가 잘 안 되는 것이 아쉽긴하다. (번역이 이상하다는 말을 반성하게 됨.) 의역된 부분이 다소 있기에 불편하게 보는 사람들이 있을지도 모르겠다. 작성하고보니 전부 읽는 건 나중에 보게 될 나에게도 부담스러울 것 같아, 글을 3개로 나눴다. Fundamentals ( 기본사항 ) 사용 시점의 명확성이 가장 중요하다. 단순히 선언된 코드를 읽지 말고, 사용 사례를 생각하며 문맥상 명확한지 확인해라. Clarity at the point of use is yo.. 2023. 3. 28.
[iOS] Coordinator Pattern을 사용해보자 Coordinator 패턴을 이해하기 위한 선행학습 Delegate Pattern (내가 할 일 다른 녀석이 대신해줌! -> ViewController가 할 일(화면전환)을 Coordinator가 해줘야 한다.) Delegate 참고자료: [iOS] Delegate 패턴을 알아보자 시작하기에 앞서, Coordinator가 왜 생겼는지 알아보자. ViewController가 너무 많은 역할을 담당하고 있다. ViewController에서 화면전환의 역할을 덜어주고 싶다. 화면전환 역할을 분리하자. ( = Coordinator ) Coordinator 패턴은 왜 사용할까? Coordinator는 Khanlou라는 분이 만든 패턴이다. Khanlou가 말하길, ViewController가 아래와 같이 너무 많.. 2023. 3. 23.
[iOS] UI는 왜 MainThread에서만 동작할까? 궁금증이 발생한 이유 DispatchQueue를 통해 처음으로 Concurrency(동시성) 작업을 했을 때, 맞닥뜨렸던 궁금증이다. 당시 의문은, 왜 global은 안 되고, main은 되는데!! 였다. 결론은 질문처럼, UI는 MainThread에서만 처리되어야 한다는 것이고, 알아본 과정을 아래 정리했다. 먼저, UIKit은 Thread-safe하지 않다는 것으로 시작한다. Thread-safe하다는 것은, Multi-Thread Programming에서 shared resource에 여러 쓰레드가 동시에 접근해도, 프로그램 실행에 문제가 발생하지 않는다는 것을 말하는데, Multi-Thread를 지원하는 iOS가 Thread-safe하지 않다? 그럼 문제가 생길 여지가 있다는 얘기가 아닌가..? .. 2023. 2. 26.
Build fails with "Command PrecompileSwiftBridgingHeader failed with a nonzero exit code" 해결 Xcode에서 무언가 잘못 눌러서 생긴 오류로 꽤나 시간을 잡아먹었다. 왜 이런 오류가 나오게 되었는지는 잘 모르겠으나 프로젝트의 Targets - Build Settings로 들어가서, Swift Compiler-General - Objective-C Bridging Header에 무언가 추가되어 있음을 확인할 수 있다. 나는 해결 후 임의로 Test/Test-Bridging-Header.h라고 적어놨지만, 아마 프로젝트 파일 경로를 따라 생성되어있을 것이다. 이렇게 지워주고 Run또는 Build해보면 정상적으로 Xcode가 동작하는 것을 확인할 수 있다. 2022. 6. 22.