정적/동적 라이브러리 (이하 스태틱/다이나믹 라이브러리) Overview of Dynamic Libraries 앱의 퍼포먼스를 결정하는 중요한 두가지 요소는 앱 실행 시간과 메모리 공간입니다. 앱의 실행가능한 파일의 크기를 줄이는것과 설치될 때 메모리 사용을 최소화하는 것이 앱의 시작을 빠르게하며 설치 후 메모리 사용을 줄여줍니다. 스태틱 라이브러리 대신 다이나믹 라이브러리를 사용하면 앱의 실행 파일 사이즈를 줄일 수 있습니다. 이것은 앱의 시작 시간을 줄이고 메모리를 효율적으로 사용되게 해줍니다. Static Library 대부분의 앱의 기능들은 라이브러리의 실행가능한 코드들에 구현되어 있습니다. 앱이 스태틱 링커를 사용하여 라이브러리와 링크되면, 앱에서 사용하는 코드는 생성된 실행가능한 파일에 복사됩..
PHImageManager로 PHAsset을 이미지로 변환할 때 requestImage를 사용합니다. 이 때 targetSize가 필요한데, targetSize에 따라 메모리 사용량이 크게달라집니다. 참고 https://baechukim.tistory.com/127 WWDC에서도 소개되었는데 파일의 크기가 아닌 이미지의 pixel 크기가 메모리에 영향을 주게됩니다. 그래서 targetSize를 줄이면 메모리 사용량을 개선할 수 있습니다. (하지만 완전히 requestImage는 pixel크기에만 의존하진 않는 것 같습니다. 아래에 내용 추가) asset의 pixel사이즈의 width 혹은 height가 windowWidth의 5배를 넘는다면 windowWidth의 5배크기로 줄여서 테스트했습니다. 테스트..
WWDC2018 iOS Memory Deep Dive내용중 일부입니다. https://developer.apple.com/videos/play/wwdc2018/416/?time=1405 iOS Memory Deep Dive - WWDC18 - Videos - Apple Developer Discover how memory graphs can be used to get a close up look at what is contributing to an app's memory footprint. Understand the true... developer.apple.com 이미지는 Dimension과 관련있지 파일사이즈와 관련있는 것이 아닙니다. 2048 * 1536이면서 파일사이즈는 590kb인 이 이미지를 ..
https://developer.apple.com/documentation/uikit/uiview/1622507-layoutifneeded Apple Developer Documentation developer.apple.com 레이아웃 업데이트를 기다리고 있다면 subview를 즉시 배치합니다. Discussion 뷰의 레이아웃을 즉시 업데이트할 때 이 메서드를 사용하세요. 오토 레이아웃을 사용중이면, 레이아웃 엔진은 제약조건에 맞게 뷰 위치를 업데이트합니다. 루트 뷰의 메세지를 받는 뷰를 사용중이면, 이 메서드는 루트부터 시작하는 뷰의 서브트리를 레이아웃합니다. 기다리고 있는 레이아웃 없데이트가 없으면, 이 메서드는 레이아웃을 바꾸거나 레이아웃 관련된 콜백을 호출하지 않고 종료됩니다. 내용추가 애니메..