본문 바로가기
[Objective-C] 메시지 송신 패턴 [Objective-C] 메시지 송신 패턴 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 15. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 15.1. 앱과 실행 반복 * 15.1.1. 실행 반복 -마우스 클릭 등의 이벤트를 OS에서 받아 그에 따른 처리를 하는 루틴 실행을 반복하는 부분이 있는데, 이것을 실행 반복(run loop) 또는 이벤트반복이라고 부른다. -GUI 를 갖춘 Cocoa 앱에서 실행 시작 이후에는 반드시 하나의 실행 반복이 시작된다.이것을 메인 실행 반복이라고 부른다.동시에 앱 동작과 리소스 관리를 하는 객체가 생성되는데, 이것이 Ma.. 2018. 1. 7.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #49~#52 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #49~#52 출처 : Effective Objective-C #49 : 커스텀 메모리 관리 시맨틱을 가진 컬렉션을 만들기 위해 무비용 전환을 사용하라 무비용 전환은 Foundation 의 오브젝티브-C 객체와 CoreFoundation 의 C 데이터 구조체 간에 캐스팅을 할 수 있게 한다. CoreFoundation 으로 내려가 컬렉션을 생성하면 컬렉션이 자신의 데이터를 다룰 때 사용되는 다양한 콜백을 정의할 수 있다. 무비용 전환을 이용해 캐스팅하면 커스텀 메모리 관리 시맨틱을 갖는 오브젝티브-C 컬렉션을 만들 수 있다. #50 : 캐시가 필요할 때 NSDictionary 보다는 N.. 2017. 10. 21.
[Effective Objective-C] #52 NSTimer 가 타깃을 리테인한다는 사실을 기억하라 [Effective Objective-C] #52 NSTimer 가 타깃을 리테인한다는 사실을 기억하라 출처 : Effective Objective-C -NSTimer 클래스는 절대 날짜(absolute date)와 시간 또는 주어진 시간 뒤에 실행되도록 스케줄될 수 있다.타이머는 또한 반복할 수 있다.그렇기 때문에 얼마나 자주 발생시켜야 할지 정의하는 반복 주기(interval)이 있다.예를 들어 리소스를 5초마다 폴링하기 위해 타이머를 사용할 수 있다. -타이머는 실행 루프(run loop)와 연관되어 있다.실행 루프는 타이머가 이벤트를 발생시켜야 할 때를 다룬다.타이머를 생성할 때 현재 실행 루프에 스케줄 된 상태로 생성할 수 있다.또는 타이머를 생성하여 직접 실행 루프에 스케줄시킬 수도 있다.어떤.. 2017. 10. 20.
[android] VSYNC & Choreographer - Butter Project [android] VSYNC & Choreographer - Butter Project http://developer.android.com/reference/android/view/Choreographer.htmlChoreographer - 발레 안무가 -API 16 ( Jelly Bean ) 부터 사용 가능하다. -animation, input 그리고 drawing timing 을 coordinate 한다. -choreographer 는 VSYNC pulse 타이밍에 event 를 받는다.그리고 이 시간에 다음 display frame 에 대한 작업을 하면 된다. -앱은 일반적으로 choreographer 와 간접적으로 작용한다.animation framework 나 view hierarchy 를 통해.. 2017. 9. 5.
[android] Circular Reveal 만들기 [android] Circular Reveal 만들기 http://frogermcs.github.io/InstaMaterial-concept-part-6-user-profile/ -Circular reveal 을 만드는 방법은 여러가지가 있다. -ViewAnimationUtils.createCircularReveal() 은 Render thread 통해 animation 되기 때문에 Lollipop 이전 단말에서는 사용할 수 없는 방법이다.하지만 Lollipop 이라면 가장 간단한 방법이다.[android] CircularRevealEffect Basic Simple Example -https://github.com/ozodrukh/CircularReveal 위의 링크는 Ginger 이상에서 사용할 수 .. 2017. 7. 14.
[android] view 를 최적화시켜보자 ( Hierarchy Viwer & Pixel Perfect ) 안드로이드, View 를 최적화시켜보자 ( Hierarchy Viewer & Pixel Perfect ) 출처 : http://developer.android.com/tools/debugging/debugging-ui.html Optimizing Your UI ( UI 최적화하기 ) layout 때문에 앱이 느려질 수 있다.layout 에 관련된 debug 는 Hierarchy Viewer 와 lint tools 를 통해 할 수 있다. Hierarchy Viewer 는 layout 의 계층도를 보여주며, 각 node 가 얼마나 성능을 내는가를 볼 수 있다.그리고 Pixel Perfect window 를 통해 확대해 볼 수도 있다. lint 는 static code scanning tool 로 일반적으로 .. 2013. 9. 2.
[android] TextureView 에 대한 이야기 Android 그래픽 시스템의 발전 과정. 허니컴 이전에는 Surface Flinger 에서만 GPU 사용 허니컴이 Tablet 용 Framework 이다보니 늘어난 pixel 에 대응하기 위해서 GPU 사용이 필요하게 됨.onDraw() 이후에 실제 그리는 부분을 CPU 에서 하는 것이 아니라 이제는 GPU 에서 하게 됨. 기존 View 는 한 View 가 invalidate 가 되면, dirty check를 한 후, parent 로 올라가면서 invalidate 를 쭉 호출하게 되고, 다시 dirty check 된 녀석까지 draw 를 수행하여 그리게 된다. * 기존 View 의 문제1. UI 스레드에서만 그릴 수 있다.2. View 의 계층 구조를 타야 한다.3. 실시간으로 그리기 어렵다. * 기존.. 2013. 7. 18.
반응형