IOS 7

[UIKit] UINavigationBar

Overview Navigation Bar는 화면의 꼭대기에 표시되며 화면의 탐색(Navigation)을 표현하는 객체이다. 주로 아래와 같이 Left Button, Title, Right Button으로 구성된다. Navigation Bar는 단일 객체로 사용하거나, Navigation Controller와 함께 사용한다. UINavigationBarAppearance Navigation Bar의 외형을 수정하는 객체이며 UIBarAppearance의 SubClass이다. UINavigationBar 내의 item들의 외형을 변경하거나 Navigation Bar의 배경, 그림자 등을 설정한다. NavigationBar의 UINavigationBarAppearance 프로퍼티는 아래와 같이 세가지가 존재..

IOS/UIKit 2021.10.24

[UIKit] UINavigation Controller

Overview Navigation Controller는 하나 이상의 View Controller를 관리하는 View Controller의 Container 객체이다. Navigation Controller는 Child View Controller들을 Navigation Stack을 사용해 관리한다. Navigation Controller의 첫 화면인 Root View Controller는 Stack의 최 하단에 위치한다. 새로운 View Controller를 Stack에 Push 할 경우 화면에 나타나며 이전의 View Controller는 그 아래에 숨겨진다. Back 버튼을 누르면 Stack의 최 상단의 View Controller가 POP 되며 아래 있던 View Controller가 나타난다. ..

IOS/UIKit 2021.10.23

[UIKit] App's Life Cycle

App State App의 State에는 크게 두 가지가 있다. Foreground State App은 사용자의 주목을 받으며 많은 시스템 리소스를 차지한다. Background State App은 화면에 나타나지 않으며 최소한의 일을 한다. App은 State가 변화함에 따라 그에 맞는 동작을 해야 한다. UIKit은 App의 State가 변화할 때 Delegate 객체의 함수를 호출하여 State의 변화를 알린다. Scene-Based App Scene-Based의 App은 IOS 13 이후에서 지원된다. App에서 Scene Support를 Enable 할 경우 App은 Life Cycle Event에 반응하기 위해 UISceneDelegate 객체를 사용한다. Scene은 Device에서 동작하는..

IOS/UIKit 2021.10.13

[UIKit] UIApplication

UIApplication @MainActor class UIApplication : UIResponder IOS에서 실행하는 App을 Control하는 객체이다. 모든 IOS앱은 오직 하나의 UIApplication(혹은 UIApplication의 SubClass)의 객체를 가진다. 앱이 실행될때 System이 UIApplicationMain 함수를 호출하고 UIApplicationMain 함수는 UIApplication Class내의 shared라는 class 변수를 사용해 UIApplication 객체를 만든다. open class var shared: UIApplication { get } # 참고 # UIApplicataion은 싱글턴 패턴 방식을 이용해 shared를 통해 객체를 접근하지만 생성..

IOS/UIKit 2021.10.08

[Swift] Main Attribute

Entry Point 포스팅을 통해 설명했듯이 @main, @UIApplicationMain 등의 Attribute를 통해 Entry Point를 지정할 수 있다. 이 포스팅은 각 Attribute가 어떻게 Entry Point를 지정하는지에 대해 설명한다. @UIApplicationMain Xcode에서 App 프로젝트를 생성하면 자동으로 생성되는 AppDelegate 파일에서 아래와 같은 코드를 확인할 수 있다. @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { ... 생략 ... 공식 문서를 통해 @UIApplicationMain Attribute에 대해 알아보자. Using this attribute is equi..

IOS/Swift 2021.10.08

[Swift] Top-Level Code란?

Top-Level 정의 Apple의 공식 문서에 따르면 Top-Level의 정의는 다음과 같다. Any executable statement not written within a function body, within a class, or otherwise encapsulated is considered top-level. 해석하면 함수, 클래스 또는 다른 무언가로 감싸지지 않은 모든 구문은 Top-Level로 간주된다. Top-Level에서 선언된 모든 것들은 같은 모듈 내에서 자유롭게 접근이 가능하며 접근 제어 문법을 통해 이를 제한할 수 있다. Top-Level Code Top-Level Code에는 선언문(Top-Level Declarations)과 실행 구문(Excutable Top-Level ..

IOS/Swift 2021.10.07

[Swift] Entry Point란?

Entry Point란? Entry Point는 말 그대로 '진입점'이라는 의미로 프로그램이 시작하는 지점이다. 모든 프로그램에는 Entry Point가 존재한다. CPU가 Entry Point를 통해 해당 프로그램을 시작하기 때문이다. OS 환경에서 응용프로그램을 실행하면 Dispatcher는 해당 프로그램을 CPU에 적재한다. 그러면 CPU의 PC(Program Counter)는 응용프로그램을 실행하기 위한 특정 주소로 Branch 해야 한다. 이때 PC(Program Counter)는 어떤 값을 가져야 할까? 바로, 응용프로그램의 시작 주소를 가리켜야 한다. 즉, 응용프로그램이 시작될 때 PC(Program Counter)는 Entry Point의 주소로 Branch 한다. Script언어나 간단한..

IOS/Swift 2021.10.05
1