iOS/iOS

[iOS, Swift] 초기 프로젝트 세팅 (MVC, UIKit)

검은참깨두유vm 2022. 6. 2. 20:05
반응형

Swift 언어를 사용하여 iOS 앱을 개발하게 되었는데, 프로젝트를 준비하면서 차후에도 쓰일 공통적인 프로젝트 세팅을 기록하였습니다.내용은 iOS 13.0 이상, XCode 13.31, Swift 5버전, UIKit을 기준으로 작성하였습니다.

 

1. MVC 패턴 프로젝트 구조잡기


iOS 프로젝트를 진행할 때에 MVVM 패턴에 대해 공부할 시간이 모자르고, Observer 패턴이나 Combine에 대하여 능숙하게 사용하지 못하기 때문에 익숙한 MVC패턴으로 프로젝트 구조를 짰습니다.

 

1. 패키지명 이름 짓기

보통의 명명규칙으로는 "com.회사이름.프로그램이름"으로 패키지명을 구성합니다.

 

2. 프로젝트 상단에 MVC를 나눌 Group을 만들기

Models, Views, Controllers의 그룹을 만들어줍니다.

또한 Extension, Resources, AppDelegate 그룹을 만듭니다.

Extension에는 "클래스명+메소드명.swift"의 명명으로 클래스에 Extension할 메소드를 넣는 공간입니다.

Resources에는 Assets.xcassets, Info.plist 파일을 넣어줍니다. 

-> 이 때에 info.plist의 파일 위치가 바뀌어 앱이 빌드가 안 됩니다. 

해결방법 : Info.plist 위치 설정

https://bksesame.tistory.com/24

 

[Swift] Info.plist 위치 설정

Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다.

bksesame.tistory.com

AppDelegate 그룹에는 AppDelegate.swift 파일과 SceneDelegate.swift 파일을 넣어줍니다.

 

2. 라이트 모드 설정하기


iOS 13이후로 라이트모드와 다크모드를 지원하지만, 테마 설정이 들어가지 않는 앱을 개발하기 때문에, 라이트모드 설정을 하겠습니다.

 

라이트테마 설정하기

https://bksesame.tistory.com/25

 

[Swift] 라이트모드 설정하기(Info.plist)

iOS 13이후로 라이트, 다크 테마를 제공하지만, 라이트모드에서만 앱을 실행하기 위한 세팅입니다. Xcode 13.31, Swift 5, UIKit 프로젝트 환경으로 진행했습니다.

bksesame.tistory.com

 

3. 타겟 설정하기


어플을 두가지 종류로 만들고 이에 따라 타겟을 두어 출시할 때, 버전을 다르게 두어 출시하고자 합니다.

 

프로젝트 타겟 설정하기

https://bksesame.tistory.com/26

 

[iOS, Swift] 타겟 설정하기

앱을 두가지 버전으로 관리할 필요성을 느껴 타겟을 설정했습니다. Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. TARGETS 이름 변경은 클릭 후 Return(Enter)를 눌러 변경할 수 있습니다.

bksesame.tistory.com

 

 

4. 폰트 설정하기


Xcode에서 기본적으로 제공하는 시스템 폰트도 이쁘긴하지만, 폰트 추가 설정으로 다양한 폰트를 사용할 수 있도록 세팅하겠습니다.

 

폰트 설정하기

https://bksesame.tistory.com/27

 

[iOS, Swift] 폰트 설정하기

기본적으로 제공되는 폰트 이외에 다른 폰트를 추가하겠습니다. Xcode 13.31, Swift 5에서 진행했습니다.

bksesame.tistory.com

 

 

반응형

'iOS > iOS' 카테고리의 다른 글

[iOS, Swift] UIGesture 기능 모음  (0) 2022.08.25
[iOS, Swift] UIView 기능 모음  (0) 2022.08.21
[iOS, Swift] UIImageView 기능 모음  (0) 2022.08.21
[iOS, Swift] LocalNotification 기능 모음  (0) 2022.08.21
[iOS, Swift] UILabel 속성 모음  (0) 2022.08.20