swift를 이용한 iOS 앱 개발 입문 1: 각 파일들의 역할
swift를 이용한 iOS 앱 개발 입문 1: 각 파일들의 역할
Xcode로 프로젝트를 생성하고 난 뒤, 친절한 튜토리얼을 찾기 어려워서 스스로 정리해 보기로 결심했다.
프로젝트를 생성하면, AppDelegate.swift, SceneDelegate.swift, LaunchScreen.storyboard, ViewController.swift 와 같은 파일들이 같이 생성된다. 각 파일들의 역할을 간략하게 짚고 넘어가자.
1. AppDelegate.swift
'AppDelegate.swift' 파일은 앱의 생명 주기를 관리하는 핵심 파일이다. 앱의 시작, 상태 전환, 종료 등의 주요 이벤트를 처리한다.
주요 역할
1. 앱이 시작될 때 초기 설정
2. 푸시 알림 처리
3. 백그라운드 및 포어그라운드 상태 전환 처리
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
// 앱 시작 시 호출
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 초기화 코드
return true
}
// 앱이 백그라운드로 전환될 때 호출
func applicationDidEnterBackground(_ application: UIApplication) {
// 백그라운드 전환 시 작업
}
// 앱이 포어그라운드로 돌아올 때 호출
func applicationWillEnterForeground(_ application: UIApplication) {
// 포어그라운드 복귀 시 작업
}
}
2. SceneDelegate.swift
'SceneDelegate.swift' 파일은 iOS 13 이후 도입된 멀티 윈도우 및 멀티 씬 지원을 위한 파일로 각 씬의 생명 주기를 관리한다.
주요 역할
1. 씬 생성 및 파괴 처리
2. 씬의 활성화 및 비활성화 상태 관리
3. UI 상태 복원 및 유지
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
// 씬이 활성화될 때 호출
func sceneDidBecomeActive(_ scene: UIScene) {
// 씬이 활성화될 때 작업
}
// 씬이 비활성화될 때 호출
func sceneWillResignActive(_ scene: UIScene) {
// 씬이 비활성화될 때 작업
}
}
3. LaunchScreen.storyboard
'LaunchScreen.storyboard' 파일은 앱이 실행될 때 처음으로 보여지는 화면을 정의한다. 이 화면은 앱이 실제로 로드되기 전에 사용자에게 표시되며, 스플래시 화면으로 사용됨.
주요 역할
1. 앱이 로드될 때 사용자에게 보여지는 초기 화면 디자인
2. 초기 로딩 시간을 감추기 위해 간단한 이미지나 로고 표시
4. ViewController.swift
'ViewController.swift' 파일은 기본적으로 생성되는 뷰 컨트롤러로, 앱의 첫 번째 화면을 관리한다. 뷰의 로드 및 사용자 인터페이스 이벤트를 처리.
주요 역할
1. 뷰 로드 시 초기화 작업
2. 사용자 상호작용 처리 및 UI 업데이트 관리
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 뷰가 로드될 때 초기화 작업
}
}
간단히 정리하면, .storyboard 파일은 UI를 그리는 html+css 같은 역할을, viewcontroller.swift 파일은 액션을 정의하는 javascript와 유사하다고 이해하였음.