본문 바로가기
[ios/reference] Core Animation [ios/reference] Core Animation https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514-CH1-SW1 -Core Animation 은 iOS, OS X 모두에 속하는 animation 에 대한 infra structure 이다. -몇 가지 설정만 해주면, 알아서 animation 을 만들어 수행한다.animation 에 대한 수행은 안쪽에서 알아서 hardware 가속 등을 사용해 rendering 한다. -Core Animation 은 UIKit/ AppKit 아래.. 2017. 11. 19.
[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.
[iOS Study] 뷰 컨트롤러 [iOS Study] 뷰 컨트롤러 출처 : 아론 힐리가스의 iOS 프로그래밍 -뷰 컨트롤러는 UIViewController 의 하위 클래스 인스턴스이다.뷰 컨트롤러는 뷰 계층구조를 관리한다.뷰 컨트롤러는 계층구조를 구성하는 뷰 객체들을 만들고 뷰 객체와 관련된 이벤트를 제어하고, 윈도우에 뷰 계층구조를 추가하는 역할을 한다. -UIViewController 의 하위 클래스는 중요한 프로퍼티를 하나 상속받는다. @property (nonatomic, strong) UIView *view; 이 프로퍼티는 UIView 인스턴스를 가리킨다.뷰 컨트롤러의 View 가 윈도우의 하위뷰로 추가되면, 뷰 컨트롤러의 뷰계층 전부가 윈도우에 추가된다. -뷰 컨트롤러의 view 는 화면에 보여줄 필요가 있을 때까지 만들어지.. 2016. 2. 18.
[iOS Study] 뷰와 뷰 계층구조 [iOS Study] 뷰와 뷰 계층구조 출처 : 아론 힐리가스의 iOS 프로그래밍 - 뷰는 UIView 의 인스턴스이거나 그 하위 클래스의 인스턴스이다. 뷰는 자신을 그리는 법을 알고 있다. 뷰는 터치와 같은 이벤트를 처리한다. 뷰는 뷰 계층구조상에 존재한다. 뷰 계층구조의 루트는 앱의 윈도우이다. - iOS 앱은 앱의 모든 뷰의 컨테이너 역할을 하는 UIWindow 인스턴스를 하나 가진다. 윈도우는 앱이 실행될 때 만들어진다. 그리고 윈도우가 만들어지면 그 윈도우에 다른 뷰들을 추가 할 수 있다. - 계층의 모든 뷰는 윈도우를 가지고 자신을 그린다. 뷰는 그 자체를 자신의 CALayer 인스턴스인 레이어에 나타낸다 ( 뷰의 레이어는 비트맵 이미지로 생각할 수 있다. ) 모든 뷰의 레이어들이 화면에 합성.. 2016. 2. 16.
ViewPager 를 사용할 때 performance, memory 이슈 직면하지 않기. ViewPager 를 사용할 때 performance, memory 이슈 직면하지 않기. View 계층의 단순화 ViewPager 는 현재 보여지는 page 뿐만 아니라 좌, 우의 page 도 pre loading 시켜 놓는다.따라서 UI 복잡한 것들이 page 를 차지하고 있다면, scroll 을 하면서 계속 버벅이게 된다.즉, Pager 에 들어가는 view 구성은 최대한 단순하게. Thread 처리를 확실히. 한 화면에 모든것이 표현될 때는 Main Thread 에서 살~짝 heavy 한 일을 해도 그럭저럭 그냥 넘어가는 일이 발생한다.하지만, viewpager 의 경우는 좌우의 화면을 미리 그려놓기 때문에 생성되면서thread 에서 작업하는 것이 길어지면 성능이슈에 당면하게 된다.이에 대해 알지 .. 2014. 5. 15.
[Android] Custom View 를 사용할 때 수동 inflate, merge, attribute setting 피하는 방법. [Android] Custom View 를 사용할 때 수동 inflate, merge, attribute setting 피하는 방법. http://trickyandroid.com/protip-inflating-layout-for-your-custom-view/ 보통의 Custom View 는 ViewGroup ( LinearLayout, RelativeLayout, FrameLayout 등 ) 을 상속하여, 여러가지 component 들을 가지고 있는다. 이 경우 보통은 최초 로딩시 inflate 를 통해서 layout 을 불러온다.이 때 root viewgroup 이 custom view 가 상속한 viewgroup 과 같다면, merge 를 사용하여 view hierarchy 를 조금 더 최적화 할 .. 2014. 4. 12.
[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.
[android] Android Layout Tricks #4 : Optimize with stubs ( 성능 최적화 ) 출처 : 안드로이드 개발자 article Android LayoutTricks #1 (성능개선) Android Layout Tricks #2 : Reusing Layouts ( 성능개선 ) Android Layout Tricks #3 : Optimize by merging Window Backgrounds & UI Speed Android Layout Tricks #4 : Optimize with stubs * 원문에서는 Tricks #3 으로 제공되지만, 다른 article 과의 연관성을 고려하여 #4 로 명명하였다. - android 는 ViewStub 이라는 특별한 widget 을 제공한다. 이 녀석은 거의 쓰이지 않는 view 들에 대해 이점을 제공한다. - ViewStub 은 매우 가벼운 vie.. 2012. 11. 28.
[android] Android Layout Tricks #3 : Optimize by merging 출처 : 안드로이드 개발자 article Android LayoutTricks #1 (성능개선) Android Layout Tricks #2 : Reusing Layouts ( 성능개선 ) Android Layout Tricks #4 : Optimize with stubs ( 성능 최적화 ) Window Backgrounds & UI Speed Android Layout Tricks #3 : Optimize by merging - 여기서는 태그에 대해 다룬다. - 태그는 view tree 의 level 을 줄여서 android layouting 을 최적화시킬 수 있다. - Title bar 가 있는 경우 기본 View tree 는 다음과 같이 구성된다. - 빨간박스가 Title bar 쪽이고 왼쪽 Fra.. 2012. 11. 28.
반응형