본문 바로가기

iOS

[WWDC 2016] Understanding Swift Performance - Struct, Class (1) WWDC 2018 Understanding Swift Performance 를 정리한 포스트입니다. 더 자세한 내용을 원하시면 위 링크를 참조하시길 바랍니다. 1. [WWDC 2016] Understanding Swift Performance - Struct, Class (1) 2. [WWDC 2016] Understanding Swift Performance - Protocol (2) 2. [WWDC 2016] Understanding Swift Performance - Generic (3) Dimensions of Performance 우리는 다양한 차원의 성능을 식별할 수 있습니다. 1. 클래스가 Heap or Stack 어느 곳에 할당되는 지? 2. 이 인스턴스를 전달할 때 참조 카운트 오버 헤드.. 더보기
iOS Continuous CI / CD 구축해보자! - Overview 이 포스팅은 "iOS Continuous CI / CD 구축해보자!"의 Series 중 일부입니다. 1. iOS Continuous CI / CD 구축해보자! - Overview 2. iOS Continuous CI / CD 구축해보자! - XCConfig 3. iOS Continuous CI / CD 구축해보자! - Travis CI (준비중) 4. iOS Continuous CI / CD 구축해보자! - Fastlane (준비중) 5. iOS Continuous CI / CD 구축해보자! - Codecov (준비중) Continuous Integration, Continuous Delivery, Continuous Deployment? 아래 그림은 CI / CD 의 단계를 잘 설명되어 있는 그림입니.. 더보기
iOS Continuous CI / CD 구축해보자! - XCConfig 이 포스팅은 "iOS Continuous CI / CD 구축해보자!"의 Series 중 일부입니다. 1. iOS Continuous CI / CD 구축해보자! - Overview 2. iOS Continuous CI / CD 구축해보자! - XCConfig 3. iOS Continuous CI / CD 구축해보자! - Travis CI (준비중) 4. iOS Continuous CI / CD 구축해보자! - Fastlane (준비중) 5. iOS Continuous CI / CD 구축해보자! - Codecov (준비중) XCConfig를 사용해야 하는 이유? 여러 유형의 빌드 타입들을 어떻게 효율적으로 관리할 수 있을까요? 기본적으로 빌드 타입은 Debug, Release 로 구분되어 있지만 2가지 빌.. 더보기
[WWDC 2019] iOS 시뮬레이터 최대한 활용하기! - xcrun simctl (2/2) WWDC 2019 Getting the Most Out of Simulator 를 정리한 포스트입니다. 더 자세한 내용을 원하시면 위 링크를 참조하시길 바랍니다. iOS 시뮬레이터 최대한 활용하기! - Simulator (1/2) iOS 시뮬레이터 최대한 활용하기! - xcrun simctl (2/2) 도움말 xcrun simctl help xcrun simctl help ...더보기 usage: simctl [--set ] [--profiles ] ... simctl help [subcommand] Command line utility to control the Simulator For subcommands that require a argument, you may specify a device UDI.. 더보기
[WWDC 2019] iOS 시뮬레이터 최대한 활용하기! - Simulator (1/2) WWDC 2019 Getting the Most Out of Simulator 를 정리한 포스트입니다. 더 자세한 내용을 원하시면 위 링크를 참조하시길 바랍니다. iOS 시뮬레이터 최대한 활용하기! - Simulator (1/2) iOS 시뮬레이터 최대한 활용하기! - xcrun simctl (2/2) What Is Simulator? Kernel: 하드웨어 리소스를 관리, 메모리를 할당, 프로세스 사이에서 중재합니다. MacOS User space launchd: PID 1 cfprefsd, distnoted: Deamon AppKit, Foundation: Framework Application iOS Simulator User space Mac User space 와 분리되어 있으며 각각의 Simu.. 더보기
[WWDC 2018] Measuring Performance Using Logging WWDC 2018 Measuring Performance Using Logging 를 정리한 포스트입니다. 더 자세한 내용을 원하시면 위 링크를 참조하시길 바랍니다. Introducing Signposts Logging let logHandle = OSLog(subsystem: "com.example.widget", category: "Setup") os_log(.info, log: logHandle, "Hello, %{public}s!", world) Signposts WWDC 2016에 새로운 로깅 시스템이 도입되었습니다 효율성과 프라이버시를 염두에 두고 디버깅 할 수 있도록 구축합니다. 성능 활용 사례 및 개발자 도구와의 통합을 위해 구축합니다. Logging Apple Document Measur.. 더보기
[WWDC 2019] Optimizing App Launch WWDC 2019 Optimizing App Launch 를 정리한 포스트입니다. 더 자세한 내용을 원하시면 위 링크를 참조하시길 바랍니다. What is launch Launch Type Cold Launch 재부팅 후 (After reboot) 앱이 메모리에 없음 (App is not in memory) 앱 Process 가 없음 (No process exists) 앱을 시작할려면 디스크에서 메모리로 가져와야 하고 앱을 지원하는 시스템 쪽 서비스를 시작한 다음 프로세스를 실행해야 한다. Warm Launch 최근에 종료됨 (Recently terminated) 앱이 부분적으로 메모리에 존재 (App is partially in memory) 앱 Process 가 없음 (No process exists.. 더보기
Drawing Performance 를 이해하자! High performance drawing on iOS의 내용을 정리한 포스트입니다. Drawing 의 Performance 는 4가지 요소가 있습니다. 1. Low performance CPU-based drawing 2. High performance CPU-based drawing 3. Sublayer GPU-based drawing 4. Draw(layer:ctx:) GPU-based Low performance CPU-based drawing let renderer = UIGraphicsImageRenderer(size: bounds.size) image = renderer.image { ctx in image?.draw(in: bounds) lineColor.setStroke() // any.. 더보기