나의 발자취

XCode 파일 구조(Project navigator File lists) 설명 본문

앱 개발/iOS

XCode 파일 구조(Project navigator File lists) 설명

달모드 2023. 6. 14. 00:22

 

The .xcodeproj file

실제적으로는 장소인데, 파인더에서 보면 앱의 설정을(configuration settings) 포함한 하나의 파일로 확인된다. 앱의 정보를 업데이트할 때, 또는 앱스토어에 앱을 제출하기 전에 특정한 세부사항들을 볼 때 사용되는 설정들이다. 앱 이름, 앱 버전, 앱이 지원하는 기기 종류, 배포할 타겟 등 

 

Code_HistoryApp.swift

프로토콜에 따르는 구조체를 포함한다. 지금은 앱의 동작(behavior)이나 구조를 나타내는 것으로 생각하면 된다. 제일 위 구조체의 @main 속성은 이것이 앱의 entry point라는 것을 나타낸다. 앱 최초 실행 시 처음으로 실행되는 .swift 파일이라는 것이다.

 

UIKit로 짜여진 앱은 AppDelegate 클래스에 의해  entry point가 핸들링되는데, SwiftUI로 짜여진 앱에서도 AppDelegate를 이용할 수 있다. 하지만! 지금처럼 앱 프로토콜을 사용하는 것이 최신+제일 간결한 접근법이다.

 

ContentView.swift

이 파일은 ContentView 구조체를 가진다. 이 파일은 Code_HistoryApp.swift 파일이 생성될 때 자동으로 생성되는 파일인데, 기본값으로 ContentView는 앱을 최초 실행할 때 유저가 처음으로 보게 되는 화면이다. XCode에서는 ContentView가 비면 안되도록 처음에 실행했을 때 헬로월드가 뜬다.ㅋ

 

프로젝트 네비게이터에서 파일목록에 보면 Preview Content 폴더가 있을건데, 이것은 PreviewProvider 프로토콜을 따르는 ContentView_Previews 구조가 목록에 있는 것이다. ContentView_Previews는 에디터 영역에서 보이는 프리뷰를 생성하는 역할을 한다. 보통 프리뷰는 샘플 데이터로 생성되므로 한 개의 뷰에 여러 개의 뷰가 있을 수 있다.

 

Assets.xcassets

앱스토어에 올리기 전에 들어가야 할 파일들을 저장하는 폴더. 앱 아이콘 등

또한 여기서 앱의 테마 컬러인 AccentColor를 명시할수도 있다. 

 

Info.plist

그리고... 젤 중요하다고 생각하는 Info.plist. 이건 Information Property List 를 뜻하는데, 번들을 식별하기 위한 키-밸류쌍들이 구조적으로 들어있는 텍스트 파일이라고 할 수 있다. 근데 Xcode 신버전들은 이제 이 파일의 경로를 다른 곳으로 이동시켜서, 안보여도 걱정안해도 된다.

 

Preview Content

이 폴더와 Preview Assets.xcassets 카탈로그는 프리뷰를 위한 샘플 데이터를 가지고 있는 것이다. 위에서 언급했듯이 프리뷰는 UI적으로 코드가 변경되었을 때 개발자가 확인하기 쉽게끔 즉각적인 피드백을 주는 역할을 하는데, 최소한의 데이터로 프리뷰를 만들 수도 있지만, UI를 더 효율적으로 테스트하기 위해 다양한 샘플 데이터를 가지고 있는것이 더 낫다. 그래서 이런 샘플 데이터셋(dataset)들이 Preview Assets.xcassets 카탈로그에 존재한다.

Products folder

이 폴더는 .app 파일을 가지고 있는데, 이 파일은 시뮬레이터나 기기에서 앱이 돌아갈 수 있도록 실행가능한 버전 파일이라고 생각하면 된다. 예를 들어 지금의 경우는 이름이 Code History.app 일 것이다.

 

출처: codecademy

Comments