2017/01 3

[iOS] Library & Framework in iOS

코드의 재사용성을 높이는 방법 중에 하나가 활용도가 높은 코드를 Library와 Framework로 구현하여 사용성을 제고하는 것이다. iOS 플랫폼에서도 Library와 Framework를 제공한다. 하지만 기존 우리가 알던 Library와 Framework의 의미와 조금 다르다. Library는 실행가능한 정적인 코드의 집합을 뜻하고 Framework는 동적인 App 번들을 뜻한다. 그럼 Library와 Framework의 특징에 대해 명확하게 알아보자. Library (Static Library) Library(.a) 는 앱에 링크된 Object file(.o) 들의 모임이다. iOS8에서 Framework가 나오기 전까지 유일하게 사용되던 옵션이었다. 프로그램과 링크되어 있다. 즉, 빌드 과정에서..

[iOS] WKWebView (instead of UIWebView)

기존 UIWebView는 무겁고 복잡하고 메모리 누수가 있다. 심지어 니트로 자바스크립트 엔진을 장착한 모바일 사파리에 비해 느리다. WWDC 2014에서 새로 소개된 WKWebView는 AppKit의 WebView와 UIKit의 UIWebView를 대체하고, 양 플랫폼의 동일한 API를 제공하는 새로운 Webview이다. 60fps 스크롤링, 빌트인-제스처, App-WebPage 간 커뮤니케이션을 제공한다. UIWebView와 WKWebView의 큰 차이점은 2가지가 있다. 먼저 UIWebView는 UIKit에 구현되어 있어, 따로 import가 필요하지 않다. 그래서 Interface builder에서 사용할 수 있다. 그 다음, WKWebView는 javascript 최적화를 위해 별도의 프로세스를..

[Design] 아이폰 해상도에 대한 고찰 (레티나, pt, px 등)

이번엔 아이폰 해상도에 대한 얘기를 해보려고 한다. 먼저, Point에 관한 것이다. Point는 좌표계에 대한 추상적 단위이다. 이는 아이폰의 다양한 모델 해상도를 모두 지원하기 위해 사용하는 좌표계이다. Point 좌표계는 각 디스플레이의 스크린이 가지는 Scale factor (화면 배수) 에 따라 Rendered pixel로 옮겨진다. 각 Scale factor는 non-retina (e.g. 아이폰 3Gs 이전 모델) 의 경우에 1x이며, 일반적인 레티나 디스플레이 (e.g. 아이폰 4~7 모델)는 2x의 Scale factor를 가지고 대화면 기기 (e.g. 아이폰 6/7 플러스 모델)들은 3x의 Scale factor를 가진다. 각 Point 값에 Scale factor를 곱하면 Render..

Programming/Design 2017.01.11