일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- development
- 단위 테스트
- 네이버 부캠
- Cocoa Internals
- Opensource
- 부스트캠프
- World
- Design Pattern
- 부트캠프
- 디자인패턴
- notion
- Tistory
- 후기
- OS
- Hello
- 코코아 인터널스
- rxswift
- WWDC
- 개발
- boostcamp
- 알고리즘
- 커스텀 뷰
- SwiftUI
- Swift
- Algorithm
- IOS
- Today
- Total
목록IOS (14)
꿈돌이랜드
GCDGrand Central Dispatch(GCD)예전에는 프로세서의 클럭 속도를 높이는 방식으로 연산 속도를 높였지만 전력 소비와 프로세서의 클럭 속도 증가에 한계가 있어 멀티 코어 프로세싱이 탄생하게 되었고 이러한 프로세싱에서는 멀티 프로세스에게 어떻게 프로그램의 동작을 배분하는지 중요해졌다.GCD 이전에는 멀티 스레딩을 위해 Thread와 OperationQueue 등의 클래스를 사용했지만, 스레드는 이런 저런 이유로 복잡하고 관리하기가 까다롭고, OperationQueue는 GCD에 비해 무겁고 BoilerPlate 코드들이 많이 필요했다.GCD는 애플에서 개발한 기술로 스레드 관리와 실행에 대한 책임을 어플리케이션 레벨에서 운영체제 레벨로 전가시켰다. 작업단위는 Block(스위프트에서는 클로..
3.1.1 수동 참조 계산 방식과 비교ARC를 사용해서 자동으로 메모리를 관리한다고 해서 2장에서 설명한 참조 계산 방식이 다른 방식으로 새롭게 바뀐 것은 아니다.…중략ARC에서도 여전히 객체마다 참조 횟수가 있고, 객체 소유권에 대한 동일한 규칙을 기준으로 참조 계산을 진행한다. 수동 참조 계산 방식은 객체 소유권에 대한 동일한 규칙을 기준으로 참조 계산을 진행한다. 수동 참조 계산 방식은 객체를 생성하면서 소유권을 가지며, 특정 객체를 참조하기 전에 소유권을 요청하고 참조한 이후에는 소유권을 반환한다. ARC에서도 참조 계산을 위한 규칙과 방식을 그대로 적용한다. 시간 흐름 →MRC: alloc → init → doAction → retain → copy → release → release → dea..
Target Action우리는 흔히 UIKit를 이용하여 개발할 때 버튼이나 여러 요소들의 사용자 이벤트를 처리하기 위해 Target Action 디자인패턴의 원리를 이용해 다음과 같은 코드를 사용한다.let button = UIButton() button.addTarget(self, action: #selector(touchUpButton(_:)), event: .touchUpInside) @objc func touchUpButton(_ sender: UIButton) { //... } 헌데 실제로 어떻게 프로그램의 런타임에서 action이 실행될 수 있는 것일까? 그 원리를 알아보고자 한다.Dispatch우선 Dispatch의 개념을 알아야 한다.많은 객체지향 언어들이 상속을 통해 메소드와 프로퍼티들..
Testing your apps in Xcode 애플 개발자 문서를 읽으면서, Xcode에서 테스트를 어떤식으로 하는지 알아봅시다. Xcode에서 앱 테스트 하기XCTest로 로직 실패 감지, UI 문제, 그리고 성능 회귀 측정하기.개관XCTest는 다양한 수준의 추상화에서 테스트를 작성하는 기능을 용이하게 합니다. 좋은 테스트 전략은 여러 유형의 테스트를 결합해서 각각의 이점을 극대화합니다. 앱의 로직을 다루기 위한 많은 빠르고 잘 분리된 단위 테스트, 그보다 더 적은, 제대로 연결되어 있음을 보여주기 위한 소수의 통합 테스트, 일반적인 사용 사례의 올바른 UI 동작을 확인하기 위한 UI Test를 포함한, 아래 그림과 같은 테스트의 “피라미드” 분포를 목표로 합니다. UI 테스트는 앱이 예상대로 사용..
지난번 글의 Responder Chain과 연관해서 알아두어야 할 hitTest 입니다.애플 문서를 기반으로 작성했습니다. hitTest(_:with)UIView의 인스턴스 메서드입니다.자신을 포함한 현재 뷰의 뷰 계층에서 지정된 point를 포함하는 가장 먼 자손을 리턴합니다.func hitTest( _ point: CGPoint, with event: UIEvent? ) -> UIView?point: 뷰의 로컬 좌표계에 있는 지점event: 이 메서드에 대한 호출을 보장하는 이벤트. 이벤트 처리 코드 외부에서 이 메서드를 호출하면 nil을 반환합니다. 반환값현재 뷰의 가장 먼 하위 뷰이며 point를 포함하는 뷰 객체 입니다. point가 현재 뷰의 뷰 계층 구조 외부에 있는 경우 nil을 반환합니다..
본 포스트는 애플 공식 문서를 기반으로 작성했습니다.UIResponder이벤트를 핸들링하고 처리하기 위한 추상 인터페이스 입니다. Responder란 이벤트를 핸들링하고 이벤트에 반응할 수 있는 객체입니다. Responder 객체는 UIKit로 이뤄진 앱의 이벤트 핸들링 뼈대를 이룹니다. 많은 핵심 오브젝트는 또한 UIApplication 객체, UIViewController 객체, UIWindow를 포함한 UIView 객체 들을 포함합니다. 이벤트가 발생하면 UIKit는 핸들링 하기 위해 그것들을 앱의 responder 객체로 가져옵니다. 여러 이벤트가 있을 수 있습니다. 터치 이벤트, 모션 이벤트, 원격 제어 이벤트, 버튼 누르기 이벤트를 포함합니다. 특정 타입의 이벤트를 제어하기 위해, 리스폰더는 ..