본문 바로가기

전체 글

(8)
[iOS] AppDelegate, SceneDelegate ? MainStoryBoard 를 제거 한 후, 코드로만 UI를 작성하려면 꼭 거쳐야하는 단계가 있다. SceneDelegate 에 습관적으로 적은 코드이다. AppDelegate 와 SceneDelegate 가 어떤 역할을 하는지 궁금하여 이 글을 작성해본다. 위 2개의 키워드를 이해하려면 앱의 생명주기에 대한 지식이 필요하다. ☑️ SceneDelegate 는 언제 태어났나? SceneDelegate 는 iOS 13에 태어났다. https://developer.apple.com/videos/play/wwdc2019/212/ Introducing Multiple Windows on iPad - WWDC19 - Videos - Apple Developer Multitasking is an exciting w..
[Swift] final 왜 쓰는지 아시나요? 더이상 상속하지 않을 class 일 때, 습관적으로 사용했던 final.. final 은 왜 사용할까? 실제로 애플 깃허브에서는 final 사용이 성능을 개선시켜준다는 팁이 적혀있다. 이유를 설명하기에 앞서 컴파일 타임, 런 타임, Dispatch, vtable 에 대한 설명이 필요하다. ☑️ 컴파일 타임(CompileTime)과 런 타임(RunTime) 프로그램을 생성하기 위해 개발자는 소스코드를 작성하고 컴파일이라는 과정을 통해 기계어 코드로 변환돼 실행 가능한 프로그램이 된다. 이러한 편집 과정을 우리는 컴파일 타임(CompileTime) 이라고 한다. 컴파일과정을 마친 프로그램은 사용자에 의해 실행되며 이러한 응용 프로그램이 동작되는 때를 런 타임(RunTime) 이라고 한다. ☑️ Dispat..
[iOS] 왜 UI는 메인스레드에서 업데이트 될까? UI를 업데이트 하는 코드를 메인스레드 없이 작성할 때 우리는 `--- must be used from main thread only` 라는 보라색 경고 문구를 볼 수 있다. 아래와 같이 왜 UI는 메인스레드에서 업데이트 될까? 라는 주제에 대해 생각을 정리해본다. ✓ 1. UIKit이 Thead-Safe하지 않은 이유? 먼저 Tread-Safe 라는 용어를 되짚어보자. Tread-Safe 스레드 세이프는 멀티스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다. 만약 UIKit의 모든 속성이 Thread-Safe하게 설계된다면, 느려짐과 같은 성능저하가 발생할 수 있기 때문에, 대부분의 구성요소는 nonatom..