본문 바로가기

2022/07/06

(3)
203. Display Web Contents Display Web Contents WebKitView는 Scene에 delegate로 연결한다. WebContentViewController.swift > viewDidLoad() override func viewDidLoad() { super.viewDidLoad() navigationItem.largeTitleDisplayMode = .never webView.navigationDelegate = self urlField.text = "https://www.apple.com" } Scene에 진입하면 애플 홈페이지의 주소로 urlField를 채운다. WebContentViewController.swift > UITextFieldDelegate extension WebContentViewContro..
202. Networking Networking 일반적인 작업들이 기기 내부에서만 이뤄지는 것과는 달리. 네트워킹은 데이터가 외부로 전송되고, 외부에서 전송받기도 하기 때문에 여러 외부적 요인을 고려해야 한다. 특히 한 곳에 고정되어 사용되지 않는 모바일은 더더욱 중요하다. Gideline 가능한 한 High-Level Api를 사용할 것 필요한 데이터만 전송할 것 Cache를 적극적으로 활용할 것 비동기 방식으로 구현할 것. 만약 동기 방식으로 구현해야 한다면 mainThread를 점유하지 않도록 할 것 Hostname을 사용할 것 HTTPS를 사용할 것. IPV4를 사용하지 않도록 하고, 특정 HW를 위해 사용해야 한다면 관련된 정보를 함께 제출할 것 API URLSession 일반적인 네트워크 기능 URLSession은 기존의..
201. Migration Migration CoreData는 Stack을 초기화할 때마다 데이터 모델을 검증한다. Light Weight Migration (Automatic Migration) LWM은 Core Data의 기본 기능이며, 아래의 방식으로 동작한다. 실제 저장소에 저장된 파일과 데이터 모델이 동일하면 Stack을 초기화한다. 실제 저장소에 저장된 파일과 데이터 모델이 동일하지 않다면 차이점을 분석한 후 mapping 모델을 생성한다. 자동으로 생성한 mapping 모델을 사용해 데이터 구조를 바꿀 수 있다면 적용해 기존의 데이터를 새로운 모델로 이전하고, Stack을 초기화한다. 또한 이전 방식에 따라 다음의 조건을 따른다. Non-Optional Attr에서 Optional Attr로 이전하는 경우 제약이 존재..