생명주기 (4) [ 업데이트 Cycle ]
·
iOS/UIKit
애니메이션과 트랜지션과 같은 조금 더 개선된 UX를 주기 위해 다양한 코드를 적었는데 원하는 대로 동작하지 않는 경우가 자주 발생하고 나는 그게 View Rendenring을 재대로 이해하지 못하고 있는 것 같다. 그래서 이번에는 생명주기의 마지막 시간은Update Cycle에 대해 학습해보자. 앱이 실행되면 어떤 일이 일어날까?1. main 함수가 실행된다. 2. main 함수는 UIApplicationMain 함수를 호출한다. 3. UIApplicationMain은 UIApplication 인스턴스를 생성한다. 4. Info.plist에서 필요한 데이터를 로드한다. main Nib 파일을 여기서 찾아 로드한다. 5. UIApplication은 AppDelegate 인스턴스를 생성하고 UIApplica..
생명주기 (3) [ View 생명주기 ]
·
iOS/UIKit
오늘은 iOS 생명주기의 마지막 단계인 View의 생명주기에 대해 알아보자. 전체적인 생명주기는 다음 그림과 같다. init1) init((coder:))스토리보드나 xib파일은 활용하여 화면을 만들 때 컴파일러가 인식할 수 있게 코드로 변환해주는 과정에서 사용한다.코드 base로 작성했을 때는 required init 형태로 선언만 해줘야한다. 어차피 호출되지 않는다. 2) awakeFromNib()인터페이스 빌더 또는 nib 파일에서 로드된 후 생성되는 메소드이다.Nib/Xib 파일이 언아카이브되고 나서 init(coder: NSCoder)로 모든 객체가 초기화가 완료되었을 때 호출된다.마찬가지로 코드 base로 작성되었을 때는 호출되지 않는다.  3) init((frame: ))View의 인스턴스를..
UIKit 코드 베이스 셋팅
·
iOS/UIKit
이번에는 UIKit으로 코드 베이스 개발 시 불필요한 스토리보드를 제거하는 방법을 학습해보자. Storyboard 제거 코드베이스로 구현을 할 예정이기 때문에 불필요한 스토리보드들을 삭제한다. Main과 LaunchScreen 스토리보드를 제거 한다. Main 스토리보드만 제거한다.LaunchScreen은 앱 시작시점에 스크린 크기 잡는 역할을 한다.만약 LaunchScreen이 없다면 스크린 크기를 아는 시점이 뒤로 밀린다. Info.plist첫번 째는 info.plist에 있는 Scene Configuration에 있는 Storyboard Name을 제거한다. Target타겟의 buildSettingd에서 UIKit Main Storyboard File Base Name 항목을 제거 SceneDel..
생명주기 (2) [ ViewController 생명주기 ]
·
iOS/UIKit
이전 학습은 iOS 앱의 전체적인 생명주기를 봤다면 이번에는 조금 더 작은 단위인 ViewController의 생명주기를 학습할껀데. 각 콜밸 함수의 호출 시기와 역할로 구분해서 학습해보자.  1. loadView역할ViewController는 메모리에 올라온 후, 인스턴스 메서드인 loadView()를 통해 화면(view)을 메모리에 올린다. ⚠️ 스토리보드(Interface Builder)를 통해 View를 생성 및 초기화하는 경우 loadView() 메서드를 재정의해서는 안된다. 만약 view를 수동으로(코드로) 생성했다면 loadView()를 재정의해서 ViewController의 view에 직접 생성한 view를 할당 한다. ( super.loadView() 불필요 )2. viewDidLoad호..
생명주기 (1) [ iOS 앱 생명주기, Scene 생명주기 ]
·
iOS/UIKit
이번 학습부터는 iOS의 여러가지 생명 주기를 학습해보자. 처음은 가장 큰 생명주기인 Scene과 App의 생명주기에 해당되는 단계와그 단계에 포함되는 콜백함수들을 짝지어 학습해보자.App Life CycleiOS 12 이하 버전에서는 scene을 지원하지 않기 때문에 UIkit의 모든 life-cycle 관련 이벤트들은UIApplicationDelegate 객체에서 처리한다. 1. Not Running앱이 실행되지 않았거나 완전히 종료되어 동작하지 않는 상태 // 앱 최초로 실행할 코드 작성// 앱 실행 준비가 끝가지 직전에 호출 // main storyboard 또는 nib 파일이 로드된 후// 실행된 후 InActive 상태가 된다.func application( _ application: ..
UIResponder Chain
·
iOS/UIKit
챌린지 때 간단하게만 보고 지나간 iOS에서 이벤트 처리하는 과정을 다시 한번 학습해보자. 처음은 각 과정에서 등장하는 구성요소의 개념부터 학습해보자. 1. UITouch가장 간단한 이벤트인 터치 이벤트 객체를 먼저 살펴보자. 일단 터치를 하면 iOS는 UITouch라는 인스턴스를 만들어낸 후, 특정 View에 종속되며 Touch가 종료되는 시점에서 사라진다. 여기서 특정 View는 아마 터치 이벤트를 받은 View로 추측된다.  아래 표를 보면 각 이벤트에 해당되는 first Responder를 정리해 놓은 자료가 있다.first Responder는 아래에서 설명할테니 어떤 느낌인지만 보자.이벤트 종류First ResponderTouch events터치가 발생한 뷰Press events포커싱된 객체Sh..