목록iOS (42)
study record
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/coifwQ/btrx9Bnqasy/ghkiKdGWJbNuV3yKkiVzY0/img.png)
UIView에는 layer 프로퍼티가 있다. layer는 CALayer의 객체이다. CALayer는 CoreAnimation Layer를 뜻한다. UIView는 하나의 CALayer(Root)만 가지고 있다. CALayer(Root)는 SubLayer를 여러 개 둘 수 있다. UIView의 SubView는 UIView의 CALayer(Root) 위에 얹혀지는 것이다. 뷰를 여러 개 쌓아서 표현하는 것 보다 레이어를 쌓아서 만드는게 퍼포먼스 측면에서 훨씬 가볍다. iOS 개발에서 보여지는 부분의 기본을 구성하는 UIView는 사실 그려지는 것이 UIView 자체가 아니라 내부 layer에 그려지는 것이다. 기본적으로 CALayer로 구성되어 있는 Layer는 그려지는 컨텐츠에 대한 캐시를 사용하며, 이는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lghCV/btrxXpt5x5H/mPRmqFObRFLlpIkWXHqL10/img.png)
Responder Responder는 이벤트를 핸들링하고 이벤트에 반응할 수 있는 객체이다. 모든 responder 객체는 UIResponder에서 상속된 클래스들의 인스턴스이다. 이 클래스는 이벤트 핸들링을 위한 인터페이스와 responder들의 기본적인 행위를 정의한다. UIApplication, UIViewController 객체들, 모든 UIView 객체들을 포함한 많은 주요 객체들 또한 responder이다. 이벤트가 일어나면, UIKit는 이벤트 핸들링을 위해 해당 이벤트를 앱의 responder 객체들에게 보낸다. 이벤트의 종류엔 터치 이벤트, 모션 이벤트 등이 있다. 특정 이벤트를 핸들링하기 위해서는 responder가 해당 이벤트에 대응되는 메서드들을 오버라이드하여 구현해야 한다. 예시로..
Driver UI에 특화된 Observable로, MainScheduler에서 사용한다. error를 방출하지 않으며, Observable을 Wrapping한다. Driver는 다른 구현체에는 존재하지 않고, UI에 사용하기 위해 RxCocoa에 도입된 Observable의 특수 케이스이다. BehaviorRelay와 많은 공통점을 가지고 있으며, Observable을 UI 처리 목적으로 죽지 않는 스트림을 제공하기 위해 생성된 것이다. - 절대 종료되지 않는다. - 무조건 MainScheduler에서 돌아간다. - 구독 역시 MainScheduler에서 하는 것이 권장된다. 구독 메서드 : drive() 구독 시 가장 최근 이벤트를 받는다. 언제 사용? Main Thread를 사용하고자 할 때 .obs..
캐싱이란? 캐싱은 재사용될 수 있을만한 자원을 특정 영역에 저장해놓은 것을 의미한다. 캐싱된 데이터가 있다면 추가적인 자원을 소모하지 않고 캐싱 데이터를 가져다 쓸 수 있기 때문에 자원을 절약할 수 있고 애플리케이션의 처리 속도가 향상된다. 모바일 애플리케이션에서 매우 고화질의 이미지를 반복해서 보여주어야 할 때 캐싱이 없다면, 고화질, 고용량의 이미지를 계속해서 다운로드하기 때문에 사용자의 네트워크 리소스를 소모하고, 다운로드 완료까지의 시간동안 사용자는 이미지를 확인할 수 없다. 하지만 다운로드 받은 이미지를 캐싱하여 저장해둔다면, 별도의 리소스를 소모하지 않고 이미지를 빠르게 보여줄 수 있다. 메모리 캐싱 VS 디스크 캐싱 메모리 캐싱은 애플리케이션의 메모리 영역 일부분을 캐싱에 사용하는 것이다. ..