AppDelegate.swift 파일의 두 가지 주요 기능 iOS 프로젝트를 생성하면 자동으로 생성되는 AppDelegate.swift 파일은 두 가지 주요 기능을 담당한다. 첫 번째는 AppDelegate 클래스를 정의하는 것, 두 번째는 App 이 시작되는 진입점인 Entry point 를 알려주고, App 의 입력 이벤트를 전달하는 RunLoop 를 생성하는 역할을 하는 것이다. Playground 와 같이 위에서부터 아래로 차례대로 실행되는 단일 파일 기반의 절차적 코드를 작성할 때에는 앱이 어디서 시작하는지는 큰 상관이 없었다. 그러나 UIKit 과 같은 프레임워크 기반 프로그램은 다르다. 파일에는 그저 타입과 그 멤버들을 선언만 하였지, 언제 어떻게 실행시키는지는 전혀 적지 않았으므로, 우리는..
iOS/Swift
App Thinning App Thinning 이란 어플리케이션이 디바이스에 설치될 때, App Store 및 운영체제가 사용자의 디바이스의 특성 및 운영체제 버전에 맞게 App Delivery 를 조정하여 최소한의 설치 공간을 사용할 수 있도록 하는 설치 최적화 기술을 말한다. 이를 통해 최소한의 디스크 사용과 빠른 다운로드를 제공한다. 이를 통해 더 나은 사용자 경험(User Experience)를 제공할 수 있다. App Thinning 에는 슬라이싱(Slicing), 비트 코드(BitCode), 주문형 리소스(on-demand Resource) 가 있다. Slicing Slicing 이란 다양한 기기와 운영체제 버전에 대하여 여러가지 app bundle 의 변형(varient) 을 생성하고 전달하..
출처: https://medium.com/@duwei199714/ios-why-the-ui-need-to-be-updated-on-main-thread-fd0fef070e7f iOS: Why the UI need to be updated on Main Thread Do you ever think about why UI really MUST to be updated on main thread? What will happened if we turn UIKit into thread-safe design? medium.com UIKit 의 모든 속성을 Thread-Safe 하게 설계하면, 느려짐 뿐만 아니라 다양한 문제를 야기한다. 대부분의 UIKit 컴포넌트들은 Not Thread-Safe 이라는 의미인 no..
iOS 는 크게 4계층으로 이루어져 있다. Core OS 쪽으로 갈 수록 Hardware(IPhone) 과 가까워지며, Cocoa Touch 계층으로 갈 수록 App 과 가까워지는 계층 구조이다. Cocoa / Cocoa Touch UIKit, MapKit 등등이 포함된 계층. 주로 화면의 그래픽 UI 를 구현한다. Media 오디오, 비디오 관련된 기능을 제공하는 계층. AVFoundation (Audio Video) 음성과 영상 재생과 관련한 프레임워크. Core Service iOS 의 객체지향적인 기능을 제공하는 Core Service. 센서, GPS 등 기기 자체의 움직임이나 하드웨어 특성에 기반한 서비스를 제공한다. Core OS C 기반이며, Low Level API 로 구성되며, 환경 설정..
BreakPoint Breakpoint 를 활용하여 코드를 디버깅 할 수 있다. 디버깅 영역 Xcode 워크스페이스 중앙 아래에 있는 영역. - 변수 정보 영역 : 해당 시점에서 사용된 모든 변수들이 갖는 메모리상의 값을 출력해주는 영역 - 콘솔 영역 : 소스 코드 상에서 출력하는 모든 메시지가 나타나는 곳. print() / NSLog() 구문을 사용하여 여러 메시지를 출력 변수 정보 영역 버튼 ① Disable/Enable BreakPoint ② Pause/Continue Execution : 다음 BP 전까지 실행 ③ Step Over : 다음 라인 진행 ④ Step Into : 만들어 놓은 메서드 안으로 들어가기 ⑤ Step Out : 메서드 바깥으로 나가기 디버깅 시 사용하는 명령어 정리 ① c..