iOS
-
Accessibility - VoiceOveriOS 2022. 4. 12. 18:40
안녕하세요. 오늘은 Accessiblity, 그중에서도 VoiceOver에 관하여 알아보겠습니다. 1. Accessibility https://developer.apple.com/design/human-interface-guidelines/accessibility/overview/introduction/ Introduction - Accessibility - Human Interface Guidelines - Apple Developer Accessibility People use Apple’s accessibility features, such as reduced transparency, VoiceOver, and increased text size, to personalize how they inte..
-
SwiftUI - StackiOS 2022. 3. 24. 23:31
안녕하세요. 오늘은 SwiftUI에서 View들을 배치하는 데 사용되는 Stack에 관해서 알아보겠습니다. SwiftUI는 세 종류의 Stack을 제공하고 있습니다. 수직으로 뷰들을 배치하는 VStack, 수평으로 뷰들을 배치하는 HStack, 그리고 Z축으로 뷰들을 배치하는 ZStack이 있습니다. (LazyVStack과 LazyHStack은 나중에 다루도록 하겠습니다.) UIKit에서 StackView를 다루어봤던 분들이라면 어떤 식으로 뷰들이 배치가 되는지 상상이 되실거라 생각합니다. 지금부터 하나씩 살펴보도록 하겠습니다. 1. VStack https://developer.apple.com/documentation/swiftui/vstack Apple Developer Documentation de..
-
동시성 프로그래밍(8) OperationQueueiOS 2022. 3. 22. 00:46
안녕하세요. 오늘은 OperationQueue에 대해서 알아보도록 하겠습니다. 1. OperationQueue https://developer.apple.com/documentation/foundation/operationqueue Apple Developer Documentation developer.apple.com 지난 시간까지 Operation에 대해서 알아보았는데요. OperationQueue는 이름 그대로 Operation들의 실행을 제어하는 Queue입니다. DispatchQueue를 생각하면서 OperationQueue는 어떤 속성들을 가지고 있는지 하나씩 확인해보겠습니다. 1) Serial or Concurrent? https://developer.apple.com/documentatio..
-
UIResonder & Responder ChainiOS 2022. 3. 17. 17:58
안녕하세요. 오늘은 UIResponder와 Responder Chain에 대해서 알아보겠습니다. 1. UIResponder https://developer.apple.com/documentation/uikit/uiresponder/ Apple Developer Documentation developer.apple.com Responder Chain을 이해하기 위해서는 먼저 UIResponder에 대해서 알아야 합니다. UIResponder는 이벤트에 반응하고 처리하기 위한 추상 클래스입니다. UIKit이 제공하는 대부분의 객체들이 UIResponder를 상속받고 있습니다. UIResponders는 다양한 이벤트들을 처리하기 위한 메서드들을 제공하고 있습니다. 자주 사용해본 touchesBegan(_:wi..
-
동시성 프로그래밍(7) OperationiOS 2022. 3. 15. 20:49
안녕하세요. 지난 시간까지는 GCD를 이용한 동시성 프로그래밍에 대해서 배웠습니다. 이제부터는 동시성 프로그래밍을 위한 또 다른 방법, Operation에 대해서 알아보겠습니다. 1. GCD와의 차이 GCD를 이용해 동시성 프로그래밍을 할 수 있는데 Operation은 왜 필요할까요? Operation도 내부적으로는 GCD를 이용해 동작합니다. 하지만 Operation은 GCD가 할 수 없는 조금 더 복잡한 일을 할 수 있습니다. 우선 Operation은 데이터와 기능을 캡슐화한 클래스입니다. 따라서 작업의 재사용성이 향상됩니다. 이미지 다운로드와 같이 반복되는 작업의 경우 Operation으로 정의해놓으면 Operation을 인스턴스화 하는 것만으로 작업을 생성할 수 있는 것이죠. 또한 Operatio..
-
동시성 프로그래밍(6) Race Condition(경쟁 상태) 해결 방법iOS 2022. 3. 9. 20:14
안녕하세요. 저번 시간에는 동시성 프로그래밍을 하면서 발생할 수 있는 문제들에 대해서 알아보았는데요. 이번 시간에는 그러한 문제들을 해결하여 Thread-Safe한 코드를 작성하는 방법을 알아보겠습니다. TSan(Thread Sanitizer) Xcode는 Thread Sanitizer라는 기능을 제공합니다. Sanitizer라는 단어가 낯설어서 찾아보니 살균제, 불쾌한 부분을 제거하다라는 뜻을 가지고 있더군요. 이름처럼 Thread Sanitizer는 Thread를 사용함에 있어서 불쾌한 부분, 즉 경쟁 상태가 발생하는 부분을 찾아줍니다. 사용 방법은 매우 간단합니다. Product -> Scheme -> Edit Scheme -> Run -> Diagnostics에서 Thread Sanitizer를 ..
-
동시성 프로그래밍(5) Concurrency Problems(동시성과 관련된 문제들)iOS 2022. 2. 17. 16:06
안녕하세요. 오늘은 동시성 프로그래밍을 하면서 발생할 수 있는 문제들에 대해서 알아보겠습니다. Thread-Safety https://en.wikipedia.org/wiki/Thread_safety Thread safety - Wikipedia Thread safety is a computer programming concept applicable to multi-threaded code. Thread-safe code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design specifications without unintended en.w..
-
동시성 프로그래밍(4) DispatchGroup, DispatchWorkItem, DispatchSemaphoreiOS 2022. 2. 14. 22:56
안녕하세요. 저번 시간까지 DispatchQueue에 대해서 알아보았습니다. GCD = DispatchQueue라고 생각하시는 분들이 많은 거 같아요. 하지만 DispatchQueue는 Dispatch(GCD) 프레임워크의 하위 클래스 중 하나입니다. Dispatch 프레임워크에는 이외에도 많은 클래스가 있는데요. 오늘은 그중에서 DispatchGroup, DispatchWorkItem, DispatchSemaphore에 대해서 알아보겠습니다. 1. DispatchGroup https://developer.apple.com/documentation/dispatch/dispatchgroup Apple Developer Documentation developer.apple.com 작업들을 DispatchQu..