ios
-
'authorizationStatus()' was deprecated in iOS 14.0ios/개발하다가 2022. 4. 9. 21:48
접근 권한 사용자의 위치 정보 서비스에 접근하려면 다음과 같이 작성하면 된다. switch CLLocationManager.authorizationStatus() { case .notDetermined: // blah blah case .restricted: // blah blah case .authorizedAlways: // blah blah case .authorizedWhenInUse: // blah blah @unknown default: break } 하지만 'authorizationStatus()' was deprecated in iOS 14.0 라는 경고가 뜨는데 이 경고는 iOS 14부터 authorizationStatus를 사용하지 않아 수 없어 위 코드가 작동이 안된다는 것을 말한다...
-
Concurrency & Threadingios/Etc 2022. 4. 8. 14:37
모든 작업들은 스레드라고 불리는 곳에서 실행되고 있다. 스레드는 고속도로와 같다고 생각하면 될 것 같다. 차선들은 스레드이고, 이동 중인 차량은 실행되는 작업이다. 1차선은 비교적 깔끔하고 빠르게 이동해야 하는 곳이고 나머지 차선들은 1차선에 비해 그렇지 않다. 1차선은 메인 스레드이고 나머지 차선은 백그라운드 스레드라고 생각하면 될 것 같다. 메인 스레드를 빠르고 깨끗하게 유지해야 하는 이유는 UI가 수행되는 곳이기 때문이다. 만약 메인 스레드가 시간 집약적인 작업으로 막히게 되면 사용자는 앱이 제대로 동작하지 않다고 생각하게 될 것이다. 따라서 우리는 무거운 작업들을 백드라운 스레드에서 수행해서 메인 스레드를 여유롭게 두어 UI가 응답할 수 있도록 해야 한다. 이 조건들을 만족하기 위해서 메인 스레드..
-
Swift 메모리 관리: ARCios/Etc 2022. 3. 22. 15:06
ARC(Automatic Reference Counting) 자동으로 참조 카운팅을 해주는 것 (+MRC(Manual Reference Counting): 수동으로 참조 카운팅을 하는 것) // 일반적인 클래스 선언 class Person { let name: String init(name: String) { self.name = name } } //ARC 클래스 선언 class Person { let name: String init(name: String) { self.name = name } deinit { print("\(name)은 디이니셜됩니다.") } } ARC는 어떻게 동작할까 강한 참조를 자동으로 카운트한다. 강한 참조는 프로퍼티, 상수 또는 변수에 클래스 인스턴스를 할당하는 것을 강한 참..
-
GoF Design Patternios/Etc 2022. 3. 6. 15:47
프로그래밍 디자인 패턴이란? GoF(Gang of Four의 약자로 "디자인 패턴"의 저자들 Erich Gamma, Richard Helm, Ralph Johnson, John Vlisside) "특정한 상황에서 일반적 설계문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명이다." 라만(C. Larman) "숙련된 객체지향 개발자 및 기타 소프트웨어 개발자는 소프트웨어 개발의 가이드라인이 되는 일반적인 원칙들과 관용적인 해결책들의 레퍼토리를 구축한다. 패턴은 이러한 원칙들과 관용적 해결책들이 문제와 해결책을 기술하는 구조적인 형태로 체계화되고 명명된 것이다." 소프트웨어를 설계할 때 특정 상황에서 자주 사용하는 패턴을 정형화한 것이며, 좋은 소프트웨어 설계를 위한 개발자들의 경험적..
-
Cocoa란?(Feat. iOS, macOS)ios/Etc 2022. 3. 5. 23:37
'Cocoa'라는 단어는 objc(Objective-C) 런타임을 기반으로하고, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용 코코아 터치 계층(Cocoa Touch Layer) Cocoa Touch Layer는 iOS 애플리케이션 개발에 주 축을 이루는 개발환경으로, 애플리케이션의 다양한 기능 구현에 필요한 여러 프레임워크(UIKit, Foundation 등)를 포함하는 최상위 프레임워크 계층이다.(Cocoa Layer는 macOS 애플리케이션 제작에 사용) iOS용 애플리케이션 개발 환경 Objective-C 런타임과 두 가지 핵심 프레임워크가 포함되어 있음 MVC 소프트웨어 아키텍처를 따름 iOS APP *Cocoa Touch* Media Core Service Core OS ..
-
Life Cycleios/Etc 2022. 2. 23. 00:09
Life Cycle 생명주기 생명주기란 앱의 실행부터 종료까지의 주기를 말하며 시스템 알림에 응답하는 등 여러 시스템 관련 이벤트를 처리하는 단계들이다. 앱과 관련된 생명주기는 AppDelegate에서 처리하고, Scene과 연관된 생명주기는 SceneDelegate에서 처리한다. iOS 13 이전 버전에서는 App-Based Life-Cycle을 가지고 13 이후 부터는 Scene-Based Life-Cycle을 가진다. iOS 13 이전의 App-Based Life-Cycle willFinishLaunchingWithOptions 델리게이트에게 실행 프로세스가 거의 완료되었으며 앱 실행 준비가 거의 완료되었음을 알린다. (https://leehonghwa.github.io/blog/applicatio..