본문 바로가기

iOS

(3)
[iOS] 네트워크 연결은 코드로 어떻게 확인할까? 앱 사용 도중 네트워크가 끊긴다면 우리는 이런 화면을 볼 수 있다. iOS 에선 네트워크 통신을 하고있는지, 하지 않는지 확인할 수 있는 프레임워크가 있다. import Network 위 프레임워크는 실시간으로 네트워크 연결을 감지하여 현재 기기의 인터넷 연결상태와 연결타입을 알 수 있도록 알려준다. ☑️ 싱글톤 클래스로 네트워크를 연결하는 클래스 import Foundation import Network final class NetworkCheck { static let shared = NetworkCheck() private let queue = DispatchQueue.global() private let monitor: NWPathMonitor public private(set) var isCon..
[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..
[iOS] 왜 UI는 메인스레드에서 업데이트 될까? UI를 업데이트 하는 코드를 메인스레드 없이 작성할 때 우리는 `--- must be used from main thread only` 라는 보라색 경고 문구를 볼 수 있다. 아래와 같이 왜 UI는 메인스레드에서 업데이트 될까? 라는 주제에 대해 생각을 정리해본다. ✓ 1. UIKit이 Thead-Safe하지 않은 이유? 먼저 Tread-Safe 라는 용어를 되짚어보자. Tread-Safe 스레드 세이프는 멀티스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다. 만약 UIKit의 모든 속성이 Thread-Safe하게 설계된다면, 느려짐과 같은 성능저하가 발생할 수 있기 때문에, 대부분의 구성요소는 nonatom..