-
[iOS] Responding to the Launch of Your App (공식문서 정리)iOS/🤖 App 2021. 1. 28. 12:05
1차 수정: 2021/06/16 안녕하세요🐶 이번 시간에는 'Responding to the Launch of Your App', 즉 앱 시작시 발생하는 일들에 대응하는 내용을 담은 공식문서를 정리해보려고 합니다. 이전 글을 먼저 읽고 보시는 것도 좋을 것 같아요😉 "앱의 자료 구조를 초기화하고, 앱을 실행시키기위해 준비하고, launch-time 에 오는 시스템 요청들에 대응합니다." 간략한 개요 사용자가 홈 화면의 앱 아이콘을 탭할 때, 시스템은 우리의 앱을 시작시킵니다. 만약 앱이 특정한 이벤트를 요청했다면, 시스템은 마찬가지로 그 이벤트를 처리하기 위해 `background`에서 앱을 시작시킵니다. :: Scene-based 앱에서, 시스템은 위와 비슷하게 앱을 시작합니다. :: 화면 상에 나타날..
-
Adopting a Protocol Using a Synthesized Implementation - ProtocolsiOS/🟠 Swift 2021. 1. 27. 23:40
스위프트는 여러 간단한 클래스들에게 자동적으로 `Equatable`, `Hashable` 그리고 `Comparable` 프로토콜 순응(conformance) 을 제공합니다. `conform to protocol`을 하기 위한 구현이 자동으로 제공된다는 의미입니다. 여러 간단한 클래스: Numbers, String 등이 있습니다. +) Numbers. String 은 Foundation Framework 의 primitive type 입니다. 이 통합된 구현을 사용한다는 것은 프로토콜 채택을 위한 별도의 반복적인 상용코드(boilerplate) 구현이 필요 없다는 것을 의미합니다. 통합된 구현 : synthesized implementation 프로토콜의 선언과 구현이 모두 되어있어서 채택하려는 타입에 선..
-
[iOS] Managing Your App's Life Cycle (공식문서 정리)iOS/🤖 App 2021. 1. 26. 21:17
1차 수정: 2021/06/16 안녕하세요🐶 이번 시간에는 'Managing Your App's Life Cycle', 즉 앱의 생명주기를 다룬 공식문서를 정리해보려고 합니다. 앱의 생명주기를 관리하는 것은 앱의 상태에 따라 발생하는 `system notification` 에 응답하고, 다른 중요한 시스템 관련 이벤트들을 처리하는 것이라고 볼 수 있습니다. 앱의 상태 앱은 현재 상태(state) 에 따라 할 수 있는 동작들이 정해져있습니다. 예를 들어 `foreground` 상태의 앱은 사용자의 주의를 끌고 있으므로, CPU를 포함한 시스템 자원에 대한 우선권을 가지고 있습니다. 반대로 `background`상태인 앱은 작업을 아예 하지 않거나, 가능한 적게 해야 합니다. :: 화면에서 보이지 않는 상태..
-
App and Environment - UIKitiOS/🍎 Documentation 2021. 1. 26. 20:42
Life-cycle 이벤트와 앱의 씬들을 관리하고, 우리의 앱을 실행하는 `traits` 와 환경에 대한 정보를 얻을 수 있습니다. Overview iOS 13 과 그 이후 버전에서, 사용자는 우리의 앱의 UI 인스턴스를 동시에 다수 생성하고 관리할 수 있습니다. 그리고 `App switcher` 를 사용하여 인스턴스를 교체할 수 있습니다. 아이패드에서, 사용자는 양 옆에 우리의 앱의 인스턴스를 화면에 여러 개 띄울 수 있습니다. 각각의 인스턴스에서 UI 인스턴스는 다른 콘텐츠를 보여주거나, 같은 콘텐츠를 다른 방식으로 보여줄 수 있습니다. 예를 들어 사용자는 특정 날짜를 보여주는 Calendar 앱의 인스턴스와, 한 달 전체를 보여주는 앱의 인스턴스를 화면에 띄울 수 있습니다. UIKit 프레임워크는 ..
-
[Swift] DelegationiOS/🟠 Swift 2021. 1. 26. 09:35
Delegation 은 `class` 나 `struct` 가 자신의 책임 중 일부를 다른 타입의 인스턴스에게 위임 (hand-off or delegate) 하는 디자인 패턴입니다. 이 디자인 패턴은 위임된 책임을 캡슐화하는 프로토콜을 정의하는 것으로 구현할 수 있습니다. 그 결과로 프로토콜을 채택한 타입 ( 이 타입을 delegate 라고 부릅니다 ) 은 위임받은 기능들의 제공을 보장합니다. 즉, 위임한 타입 (delegating objcet) 의 기능을 위임받은 타입 (delegate) 이 제공합니다. Delegation은 다음과 같은 상황에 사용합니다: 1. 특정 action에 대한 반응을 하기 위해 사용되거나, 보통 ~Delegate 라는 이름을 가진 프로토콜입니다. 2. 소스의 타입을 알 필요없이..
-
Cocoa (Touch) 란iOS/🍎 Documentation 2021. 1. 25. 11:35
참고자료 : developer.apple.com `Cocoa` 는 OS X 에서 실행되는 앱을 개발하기 위한 도구인 Foundation 과 AppKit 프레임워크를 포함합니다. `Cocoa Touch` 는 iOS 에서 실행되는 앱을 개발하기 위한 도구인 Foundation 과 UIKit 프레임워크를 포함합니다. N O T E `Cocoa`는 Objective-C 런타임을 기반으로하고 NSObject 를 상속한 어떠한 클래스나 오브젝트를 가리키기 위해 보통 사용되었습니다. 추가적으로 `Cocoa` 혹은 `Cocoa Touch`는 프로그램에 입각한 인터페이스를 사용하는 앱 개발을 가리키기 위하여 사용되기도 합니다. 코코아 터치 기반 앱 개발 이라던가 The Frameworks Foundation 프레임워크는..
-
Bundle - FoundationiOS/🍎 Documentation 2021. 1. 25. 00:05
참고 자료 : developer.apple.com/documentation/foundation/bundle 찾아보게 된 이유 Apple 에서 제공하는 Food Tracker 앱을 구현하는 도중 @IBDesignable 을 사용하여 custom control을 Interface Builder가 실행할 수있게 해주었습니다. 그런데 Asset Catalog 에 저장한 이미지를 Interface Builder가 올바르게 불러올 수 있게 하려면 Catalog의 번들을 명시적으로 지정해주어야 한다고 합니다. 그래서 UIImage(named:) 대신 UIImage(named:in:compatibleWith:) 메서드를 사용하는데, 여기서 Bundle 의 개념을 몰라서 정리하게 되었습니다. Overview 디스크 내의..
-
Review of Implement a Custom Control (2) - Food TrackeriOS/🤖 App 2021. 1. 22. 19:05
Add Support for Interface Builder @IBDesignable Interface Builder는 view와 연결된 커스텀 코드에 대해서 전혀 모릅니다. 그래서 커스텀 코드를 반영하지 않은 채 인스턴스화하여 canvas에 그립니다. 커스텀 코드를 반영하게 하는 방법은 custom control code 앞에 @IBDesignable attribute 를 추가하는 것입니다. 이 Attribute 을 통해 Interface Builder 가 canvas에 view를 그릴때, 커스텀 코드를 올바르게 반영하여 그릴 수 있게 해줍니다. " This lets Interface Builder instantiate and draw a copy of your control directly in th..