
개요
- 해당 글에서는 xcode를 사용하여 ios 개발하기 위한 기본적인 사용 방법을 정리한다.
- 본 글은 온라인 강의 플랫폼 "인프런"에서 제공하는 유료 강의 "UIKit-iOS14 실무 가이스 <iOS앱 진짜 개발자 되기>"를 정리함을 밝힌다.
프로젝트 생성하기.
Xcod를 실행하면 다음과 같은 창이 나온다.

해당 창에서 "Create a new Xcode project" 를 클릭한다.

클릭하면 위 사진과 같이 어떤 앱을 만들것인지 선택할 수 있다. 하지만 대부분 App을 통해서 만들수 있기 떄문에 App을 자주 사용한다고 한다. App을 클릭하면 다음과 같은 화면이 온다.

각 항목들의 설명은 다음과 같다.
- Product Name: 해당 프로젝트의 이름
- Team: 개발자 프로그램에 등록된 ID 또는 Team
- Orgganization Identifier: 조직의 식별자 입력. 개인이나 조직의 도메인 주소를 역순으로 입력.
- Bundle Identifier: 식별자
- Interface: SwiftUIdhk Stroyboard중 Stroyboard을 선택
- Language: 프로그램에서 사용할 언어
해당 란을 입력하고 프로젝트를 생성했다면 다음 화면을 볼 수 있다.

Identitiy
- Display Name : 프로젝트의 이름을 설정한다
- Bundle Identifier : 앞서 설명한 것과 같다.
- Version : 프로젝트의 버전을 나타낸다.
- Build : 빌드 횟수를 나타낸다.
Deployment Info
앱이 배포될 때 필요한 항목을 설정한다.
- iOS 버전 : 최소 버전을 설정하며 보통 8.0으로 설정한다.
- Main Interface : 앱이 처음 실행될 때 기본 인터페이스를 설정한다.
- Device Orientation : 기기 회전 가능 여부를 설정한다.
- Status Bar Style : 앱 실행시 보여지는 상태바(Status Bar)의 스타일을 설정한다.
App Icons and Launch Images
- App Icons Source : 앱 아이콘에 대해 설정한다. Assets.xcassets 폴더에 모든 사이즈의 이미지를 등록해야 한다.
- Launch Screen File : 초기 로딩 페이지를 설정한다.
Frameworks, Libraries, and Embedded Content
- 프레임워크, 라이브러리 등을 추가할 수 있다.
Development Assets
- 개발에 사용할 파일들을 추가할 수 있다.
다음 파일들이 생성되어있음을 확인할 수 있다.
├── reviewProject
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Info.plist
│ ├── SceneDelegate.swift
│ └── ViewController.swift
├── reviewProject.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ └── yoon-yeoungjin.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ └── yoon-yeoungjin.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
├── reviewProjectTests
│ └── reviewProjectTests.swift
└── reviewProjectUITests
├── reviewProjectUITests.swift
└── reviewProjectUITestsLaunchTests.swift
위 파일들 중 중요 파일들에 대한 설명은 다음과 같다.
1. AppDelegate.swift
- [ IOS 12 ~ ] : 앱의 실행주기(Lift Cycle)를 관리하는 내용의 스위프트 소스 코드가 들어 있는 클래스 파일, 앱을 실행하거나 종료 또는 백그라운드를 실행 할 때 하는 일을 관리
- [ ~ IOS 12] : Session Lifecycle 역활 추가
- 앱의 가장 중요한 데이터 구조를 초기화
- 앱의 scene을 환경설정
- 앱 밖에서 발생한 알림에 대응( 베터리부족, 다운로드 완료 )
- 특정산 scenses, views, view controllers에 한정되지 않고 앱 자체를 타깃하는 이벤트에 대응
- 애플 푸쉬 알람 서비스와 같이 실행시 요구되는 모든 서비스를 등록
- SceneDelegate.swift → [ IOS 12 이후 생김 ] AppDelegate의 UI의 상태를 알 수 있는 UILifeCycle의 부분을 담당
- Scene의 고유의 런타임 인스턴스 관리, 사용자가 앱에 새로운 scene을 추가하거나 프로그래밍적으로 scene을 요청하면, 시스템은 그 scene을 추적하는 session 객체를 생성 그 session에는 고유한 식별자와 scene의 구성 세부사항(Configuration details)가 들어있음.
- ViewController.swift →화면에 보이는 뷰에서 처리하는 내용의 스위프트 소스 코드를 담고. 있는 클래스 파일, 일반적으로 프로그래머는 이 파일에서 코딩을 하게 되고 뷰 하나당 클래스 하나가 대응된다.
- 스토리보드에서 여러개의 뷰를 추가하면 뷰의 갯수만큼 뷰 컨트롤러 클래스 파일이 필요하다.
- Main.storyBoard →앱의 내용을 시작적으로 쉽게 이해하고 프로그래밍을 할 수 있도록 그림으로 표현한 파일, 스토리보드를 통해 화면에 보이는 내용 및 뷰와 뷰간의 연결 관계를 표현 및 가능
- Assets.xcassets →앱의 아이콘/이미지 를 보관하는 저장소
- LaunchScteen.storyboard →앱이 실행될 때 잠시 나타나는 스플레시 화면을 만드는 스토리보드
- info.plist →앱이 실행되는데 필요한 정보를 저장하고 있는 파일