본문 바로가기

ios27

[H.I.G] Designing for iOS 번역 아래 내용은 2022년 새로 개정된 H.I.G 내용을 담고 있으며, iOS 앱 디자인의 대전제에 관한 내용입니다. iOS개발자는 왜 H.I.G를 알아야 하는가? 개발자와 디자이너 간의 협업을 위해서 사용자가 앱 사용 시 원활한 경험을 제공하기 위해서 iOS 생태계에서 동작하는 모든 앱에 대한 최소한의 가이드라인을 제공하기 위함. 사람들은 어디서든 게임, 영상 시청, 작업, 개인 데이터 추적 및 이동 간 연결상태 유지를 위해 iPhone을 사용한다. iOS용 앱 또는 게임 디자인을 할 때, iOS적인 경험을 구별하는 기본적인 장치 특성과 패턴을 이해해야 한다. 이러한 특성과 패턴을 이해하면 디자인을 결정할 때, iPhone 사용자가 선호하는 앱이나 게임을 제공할 때 도움이 될 수 있다. iPhone Dis.. 2023. 7. 1.
[iOS] Delegate 패턴을 알아보자 처음 Delegate패턴을 접했을 때에는 정말,, 이게 뭔 소릴까?라는 생각을 많이 했던 것 같다. 나중에 알고보니 Delegate는 사용한 지도 모르고 사용하고 있었던 경우가 많았다. Coordinator 패턴을 사용하면서도 Delegate를 정말 많이 사용하게 될 수밖에 없었는데, 그래서 Delegate에 대해서도 정리하면 좋겠다는 생각이 들어 이렇게 작성하게 되었다. Delegate 의미 Delegate는 사전적 의미에서 알다시피, 대리자이고, 인스턴스가 할 일을 다른 인스턴스가 해주는 것을 말한다. 좀 더 쉽게 말해 "내가 할 일을 남이 해준다."라고 이해하면 좋을 것 같다. 실생활 예제 예를 들어, 엄마가 김치찌개를 끓이기 위해, 어린 아들에게 두부 1모 심부름을 시킨다고 가정해보자. 어린 아들.. 2023. 3. 30.
[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.