[TIL] 2022-04-14

2382 단어 TILTIL

📌 ViewController 생명주기


viewWillAppear / viewDidAppear
viewDidLoad()는 Disappeared에서 viewWillAppear로 넘어가기 직전에 실행된다. 그리고 어플리케이션이 실행되는 동안 딱 초기 1회만 실행되기 때문에, viewDidLoad()에 코드를 작성할 때에는 이 코드가 앱 실행시의 1회만 실행되도 문제가 없는 코드인지 고려하고 작성해야 한다.

가령, 화면 ①에 보이는 정보를 수정하기 위해 특정 버튼을 눌러 화면 ②로 이동할 경우 화면 ①은 Disappearing 상태에 들어간다. 그리고 화면 ②에서 정보 수정을 마치고 다시 화면 ①로 돌아오면 화면 ①은 Appeared 상태가 된다.

이 때, 수정된 정보를 뷰에 반영해주는 작업을 viewDidLoad에 작성했었다면 이렇게 수정 작업이 일어나도 다시 돌아온 화면 ①에서는 수정된 정보를 볼 수 없다. viewDidLoad는 이미 뷰가 처음 보여질 때 실행되었기 때문에 다시 실행되지 않고, 이로 인해 수정된 정보를 뷰에 갱신하는 작업이 일어나지 않기 때문이다.


📌 CocoaPods

외부 라이브러리를 사용하기 위해 Android에 Gradle이 있는 것처럼 iOS에는 CocoaPods가 있는데,

Android Studio에서는 repositories에 라이브러리의 아카이브인 jCenter() 혹은 mavenCentral()을 추가하고 나면 build.gradle 파일에서 dependencies 추가로 간단하게 라이브러리를 import해서 쓸 수 있다.

allprojects {  
    repositories {  
        jcenter()
        mavenCentral()
    }  
}  

하지만 iOS에서는 XCode상에서 이렇게 간단히 CocoaPods를 이용할 수 있는 방법이 없다. 터미널상에서 프로젝트 폴더 경로에 따로 CocoaPods를 설치해주면 Podfile이 생성되고, 이 Podfile에 필요한 라이브러리를 추가해야 XCode상에서 라이브러리를 import해서 쓸 수 있다.


📌 설정 뜯어보기

프로젝트 설정이다.

Deployment Info

  • iOS 15.2 라고 쓰여있는 부분을 누르면 프로젝트가 구동될 OS 버전을 채택할 수 있다.
  • 그 옆의 iPhone iPad Mac Catalyst 는 이 어플리케이션을 실행시킬 기기를 체크박스를 통해 선택할 수 있다.
  • Main interface 는 LaunchScreen (Android에서 Splash) 이후에 가장 먼저 나올 스토리보드를 지정하는 부분이다. 여기에서만 지정한다고 되는 건 아니고,
    Main 스토리보드를 열어보자. Navigation Controller에 포커스를 주었을 때 Inspector > View Controller > Is initial View Controller 에 체크된 뷰컨트롤러가 담당하는 스토리보드(여기선 Main)와 일치해야 한다.
  • Device Orientation 은 기기의 화면 방향을 설정한다.
    • Portrait: 기기의 방향이 어느 방향이든 앱의 실행 방향이 세로로 고정된다.
  • Status Bar Style 은 상태바의 색상을 지정한다. Default는 검은색이다.

아나 분명히 사수님께 설명 많이 들었는데 하루 지나고 쓸라니까 기억이 안 나네 ;;;;; 매일 써야겠다

좋은 웹페이지 즐겨찾기