-
[iOS] Core Animation 이란? (2)iOS/🤖 App 2021. 7. 5. 12:12
안녕하세요🐶 이전 글에 이어서 Core Animation Basic 문서를 정리해 보았습니다! 바로 시작해볼게요!! Core Animation 은 뷰와 다른 시각적 요소들을 움직이는데 필요한 범용 목적의 시스템을 제공합니다. Core Animation 은 뷰를 대체하려는 목적으로 사용하는 것이 아닙니다. 오히려 뷰들과 결합되어있는 기술입니다. 그리고 이 기술의 목적은 콘텐츠를 움직이는데 있어서 더 나은 성능과 지원을 제공하는 것입니다. Core Animation 을 통해 뷰의 콘텐츠를 비트맵 형태로 캐싱함으로서, 그래픽 장치에 의해 바로 수정될 수 있도록 하여 위와 같은 목적을 달성합니다.( 비트맵 형태로 캐싱한다는 표현이 자주 등장함... 그 주체는 레이어임) 몇가지 경우에서, Core Animatio..
-
[iOS] Core Animation 이란? (1)iOS/🤖 App 2021. 7. 5. 11:51
안녕하세요🐶 이번 시간에는 Core Animation 에 대해서 간단하게 살펴보겠습니다. 이 프레임워크는 CALayer 를 공부하는 도중 배경지식이 필요하다고 생각하여 관련 문서를 정리하면서 공부하였습니다. 그런데 문서 양이 많아서 다 다루지는 않고, 개요와 Basic 부분까지 정리해보았습니다. 뒤의 부분은 더 이상 사용하지 않는 기술들도 있고, 핵심 개념은 아니여서 다음으로 정리를 미룰게요 ^^ 그럼 시작해볼게요!! Core Animation 에 대하여 원래는 Metal 과 Core Graphics 를 통해 Graphics Harware 에 직접 접근하여 제어할 수 있습니다. 여기서 Metal 은 OpenGL 을 대체하여 애플이 직접 만든 그래픽 제어 인터페이스입니다. Core Animation 은 바..
-
[iOS] CALayer 란?iOS/🤖 App 2021. 7. 5. 10:54
안녕하세요🐶 이번 시간에는 CALayer 에 대해서 공부해보겠습니다. 이 클래스는 피그마에서 생성한 이미지를 코드로 변환할 때 처음 보았는데요,, 어떻게 사용되는 클래스인지 궁금해서 공부하게 되었습니다. 또한 UIVIew 는 기본적으로 layer 속성으로 불리는 root layer 를 가지고 있습니다. iOS 에서 모든 뷰는 layer-backed View 이기 때문입니다. 간단하게 layer 를 사용하는(혹은 레이어의 지원을 받는) View라고 이해하시면 될 것 같습니다. 그럼 시작해볼게요🔥 그.런.데. 공식 문서에 나와있는 CALayer 는 읽으면 무슨 내용인지 잘 이해가 가지 않습니다. (어느 정도의 배경지식이 필요) 그래서 Core Animation Documentaion Archive 의 내용을..
-
[iOS] Dependency Injection (의존성 주입) 이란?iOS/🤖 App 2021. 6. 20. 16:48
1차 수정: 21.08.11 2차 수정: 21.09.27 안녕하세요 🐶 이번 시간에는 흔히 DI 라고 불리는 의존성 주입에 대하여 알아보겠습니다. 그럼 하나씩 알아볼게요!!!🔥🔥🔥 Dependency Injection means giving an objects its instance variable. Really. That's it - James Shore 위 문장은 의존성 주입에 대해 가장 간단하고 명료하게 설명하고 있습니다. 이 개념을 설명할 때 자주 등장하는 인용문인 것 같아요! Dependency Injection 은 A 라는 객체의 속성을 A가 아닌 다른 객체가 초기화해주는 것을 의미합니다. 왜 스스로 하지 않고 다른 객체를 통해서 초기화해야만 할까요?? 결론부터 살펴보자면: 객체간 결합을 느슨..
-
[iOS] About App Development with UIKit (UIKit 으로 앱 개발하기)iOS/🤖 App 2021. 6. 16. 01:01
1차 수정: 21.08.02 안녕하세요🐶 오늘은 'About App Development with UIKit' 라는 문서를 중요한 내용 위주로 정리해보겠습니다 UIKit 의 역할 UIKit 프레임워크는 iOS 앱을 제작할 때 필요한 필수 오브젝트들을 제공해줍니다. 예를 들어서 우리가 만든 컨텐츠를 화면에 표시해 줄 수 있는 오브젝트라던가, 콘텐츠와 상호작용을 하는 기능을 할 수 있는 오브젝트라던가, 마지막으로 시스템과의 상호작용을 관리할 수 있는 오브젝트를 제공해줍니다. 앱들은 UIKit 프레임워크에 의존해서 위와 같이 기초가 되는 동작들을 수행합니다. UIKit 은 이것뿐만 아니라 동작을 커스터마이즈 할 수 있는 방법도 제공합니다. UIKit 과 Foundation 을 합하여 Cococa Touch F..
-
[iOS] DispatchQueue.main.sync { } 는 어떻게 작동할까?iOS/🤖 App 2021. 6. 7. 15:27
선수지식 : [iOS] GCD란? 안녕하세요🐶 이번 시간에는 GCD 를 처음 공부할때 쉽게이해가지 않았던DispatchQueue.main.sync { } 의 동작방식에 대해 다뤄보려고 합니다. StackOverflow 에서 main 쓰레드에 sync 를 전달하면 앱이 강제종료 되는 이유를 찾아보면, `Main queue에 sync로 Task를 전달하면 Deadlock 이 걸린다` 정도의 모호한 이야기만 나와있어서 제대로된 이유를 알고 싶어서 한번 알아보게 되었습니다. 위와 같이 직접 작성한 User Code 에서 DispatchQueue.main.sync(block:) 을 호출하면 앱에 크래시가 발생하고 강제종료 됩니다. 이번 글은 이 현상이 왜 발생하게 되는지 알아보는 글입니다. 결론을 우선 말씀드리면..
-
[iOS] GCD (Grand Central Dispatch) 란? (feat. main & global dispatch queue)iOS/🤖 App 2021. 6. 7. 00:19
안녕하세요. 오늘은 iOS의 동시성 프로그래밍에 자주 사용하는 GCD 에 대해서 공부하겠습니다🐶 그럼 시작해볼게요🥳 GCD GCD 는 iOS 에서 멀티코어 프로세서에 코드를 동시에 실행시키게 해주는 프레임워크입니다. :: 그리고 macOS, watchOS, tvOS 에서도 사용합니다. GCD 에서는 하나의 작업단위인 Task 를 Dispatch Queue 에 전달하기만 하면 나머지는 시스템이 알아서 처리하고 실행시켜 줍니다. Task 의 단위는 블록이나, DispatchWorkItem 의 인스턴스 형태로 존재합니다. :: 블록은 `{ }` 로 감싸진 실행 코드 BSD 하위 시스템이나, Core Foundation, Cocoa API들은 이 프레임워크를 사용함으로서 시스템과 애플리케이션의 실행속도, 효율성..
-
-
[iOS] CodingKey 란?iOS/🍎 Documentation 2021. 5. 25. 01:34
선수 지식 : Codable 안녕하세요🐶 오늘은 Codable 프로토콜에서 커스텀 키 매핑 등의 용도로 사용하는 CodingKey 프로토콜에 대하여 다루어 보려고 합니다. 공식 문서를 살펴보던 중 이 프로토콜에 대한 설명이 나와있어 이것을 정리해보겠습니다. 막상 CodingKey 문서에는 설명이 전혀 없었던... struct Coordinate: Codable { var latitude: Double var longitude: Double var elevation: Double enum CodingKeys: String, CodingKey { case latitude case longitude case elevation } } 위 코드와 같이, Codable 타입은 CodingKeys 라는 이름을 가진 ..