전체 글
-
[iOS] View Controller Hierarchy - 뷰 컨트롤러 계층 구조iOS 2022. 8. 9. 00:34
이 글은 애플의 "View Controller Programming Guide for iOS" 공식문서에서 View Controller Hierarchy 글을 번역, 의역한 것이다. Root view controller, container view controller에서의 view controller의 계층을 이해하는데 도움이 된다. View Controller Programming Guide for iOS: The View Controller Hierarchy View Controller Programming Guide for iOS developer.apple.com The View Controller Hierarchy 앱에서는 view controller 간의 관계를 설정해서 각 view contr..
-
[Swift] Hashable 프로토콜Programming Language/Swift 2022. 7. 1. 16:42
개발하다보면 Hashable 프로토콜을 정말 많이 사용하게 된다. Hashable과 옵셔널 값을 같이 사용하면서 생긴 궁금증도 있고, Hashable을 굉장히 많이 사용하지만 깊이 알고 있지 않은 상태로 사용하고 있는 것 같아 Hashable 이 어떤 프로토콜인지 좀 더 자세히 공부해보려고 한다. Hashing Hasing(해싱)은 주어진 key나 문자열을 다른 값으로 변환시키는 작업이다. 해싱을 통해 고정 길이의 더 짧은 key, value로 표현되고, 이 key-value를 사용해서 원래의 값을 더 쉽고 빠르게 찾을 수 있다. 해싱은 데이터를 특정 정수 값으로 매핑하는 함수, 알고리즘을 사용한다. 즉 hash function을 사용해서 데이터에서 새로운 값을 만드는 것이다. 이 새로운 값을 hash ..
-
[WWDC19] Advances in UI Data SourcesiOS 2022. 6. 27. 11:48
Advances in UI Data Sources - WWDC19 - Videos - Apple Developer Use UI Data Sources to simplify updating your table view and collection view items using automatic diffing. High fidelity, quality... developer.apple.com Current state-of-the-art 당시 UICollectionView data source를 구현하기 위해서는 위와 같이 구현해야 했다. 섹션의 수 각 섹션 내의 아이템의 수 를 제공하고 있다. 만약 1차원 혹은 2차원 data source를 가지고 작업한다면 특징은 아래와 같다. Simple : 단순히 배열 ..
-
[WWDC22] Design App ShortcutsiOS 2022. 6. 20. 16:10
Apple Developer Documentation developer.apple.com Design App Shortcuts - WWDC22 - Videos - Apple Developer Learn how you can surface great features from your app directly in Siri, Spotlight, and the Shortcuts app. We'll introduce you to App... developer.apple.com 사람들은 Siri와 Spotlight를 통해 기기에서 특정 작업을 수행할 수 있다. Shortcuts는 OS를 통해 사람들이 내 앱에서 작업을 수행할 수 있게 해준다. 모든 shortcut은 action이라 불리는 기본적인 요소에서 시작하는..
-
[Swift] 22. Generics - 제네릭Programming Language/Swift 2022. 6. 19. 09:14
Generics — The Swift Programming Language (Swift 5.7) Generics Generic code enables you to write flexible, reusable functions and types that can work with any type, subject to requirements that you define. You can write code that avoids duplication and expresses its intent in a clear, abstracted manner. Gener docs.swift.org Generic 코드는 어떤 타입에도 유연하게 대응할 수 있는 재사용 가능한 함수, 타입을 작성할 수 있게 해준다. 깔끔하고 추상화..
-
[Swift] 21. Extension - 익스텐션Programming Language/Swift 2022. 6. 19. 09:11
Extensions — The Swift Programming Language (Swift 5.7) Extensions Extensions add new functionality to an existing class, structure, enumeration, or protocol type. This includes the ability to extend types for which you don’t have access to the original source code (known as retroactive modeling). Extensions docs.swift.org Extension은 클래스, 구조체, 열거형, 프로토콜에 새로운 기능을 추가한다. 원래 소스 코드에 접근할 수 없을 때 타입을 확장..
-
[WWDC22] Complications and widgets: ReloadediOS 2022. 6. 17. 14:43
Complications and widgets: Reloaded - WWDC22 - Videos - Apple Developer Our widgets code-along returns as we adventure onto the watchOS and iOS Lock Screen. Learn about the latest improvements to WidgetKit... developer.apple.com Complication timeline Complications는 watchOS 플랫폼의 핵심으로, 워치 화면에 빠르게 한눈에 알아볼 수 있는 정보를 출력한다. watchOS 2에서 ClockKit은 나만의 complications를 생성할 수 있게 했다. watchOS 5에서 그래픽이 발전된 comp..
-
[WWDC22] Design protocol interfaces in SwiftiOS 2022. 6. 16. 18:08
Design protocol interfaces in Swift - WWDC22 - Videos - Apple Developer Learn how you can use Swift 5.7 to design advanced abstractions using protocols. We'll show you how to use existential types, explore how... developer.apple.com Understand type erasure 연관 타입을 가진 프로토콜이 existential 타입과 어떻게 상호작용하는지 볼 것이다. Animal 프로토콜에 produce() 메서드를 추가해서 음식을 생산하는 것을 추상화했다. 다른 동물마다 달라지는 produce()의 리턴 타입을 추상화하는 가..