iOS) 개발을 위한 Xcode 익히기

CHAEYOUNG SONG·2022년 11월 30일
0

iOS

목록 보기
1/2
post-thumbnail

Bundle identifier

  • 애플리케이션의 고유 식별자.
  • 번들을 구분하기 위한 유일한 식별키이므로 중복되어선 안된다.

Storyboard

  • 시각적으로 화면을 구성하는 곳으로 앱의 흐름을 확인할 수 있다.
  • 화면의 내용과 화면과 화면의 전환을 보여준다.
  • viewControllerview로 이루어진 scene의 집합으로 이루어져 있다.

Storyboard 단점

설명과 더불어 팀프로젝트인 경우에 storyboard를 사용하면서 느낀 단점을 적어보고자 한다.

storyboard를 사용하면 팀 프로젝트를 할 때 git에서 merge conflict가 굉장히 자주 발생한다.
이 때문에 프로젝트 초반 엄청난 깃 충돌로 몇번이고 프로젝트를 갈아엎었다.
storyboard를 들어가기만 했을 뿐인데도 내부적으로 xml코드가 변경되어 다른 팀원이 storyboard를 약간 편집하거나 들어가기만 해도 동시에 같은 부분을 수정했기 때문에 merge 할 때 conflict가 쉽게 발생한다.

이때문에 snapkit을 사용하여 스토리보드 기반 개발이 아닌 코드기반 개발로 변경하였다. 하지만 여전히 navigationController를 이용하거나 각자 개발하는 부분에 대한 앱의 흐름을 확인하기 위해서는 storyboard를 사용하지 않을 수가 없어서 작업자 별로 storyboard를 나누었다.
나눈 다음 다른 팀원의 storyboard에는 접근하지 않는 방식을 택하여 해결하였다.

ViewController

  • UIkit을 사용하는 앱의 인터페이스를 관리하기 위한 도구이다.
  • 하나의 루트 뷰만을 관리하고, 해당 루트 뷰가 여러 개의 서브 뷰들을 가지는 방식으로 한 화면을 여러 개의 뷰로 구성할 수 있다.

View

  • iOS앱 사용자 인터페이스의 기본 구성 요소이다.
  • 이를 사용하여 앱의 컨텐츠 화면에 그리거나 구성할 수 있다.

Info.plist

  • Info.plist파일은 실행 패키지에 관한 필수 설정 정보가 포함된 구조화된 텍스트 파일이다.
  • 일반적으로 유니코드 UTF-8로 인코딩되며 내용은 XML을 사용한다.
  • key, value로 구성된 dictionary 형태이며, 이 키값을 이용하여 앱의 설정을 가져온다.

Asset

어플리케이션을 개발할 때 수 많은 리소스(resource)파일들이 필요한데 이 리소스 파일들을 그대로 사용할 수는 없다. 디바이스마다 필요로 하는 크기나 비율이 다르기 때문이다. Xcode에서는 이를 해결하기 위해 에셋(asset)을 사용한다.

Asset Catalog(에셋카탈로그)

에셋을 관리하기 위한 폴더이다. Xcode에서 처음 프로젝트를 생성하면 Assets.xcassets 폴더가 생성되는데, 이 폴더를 에셋 카탈로그라고 하며, 다양한 에셋들을 관리할 수 있다.

  • App Icon Type : 다양한 크기와 해상도의 애플리케이션 아이콘 원본 이미지.
  • Catalog Type : 에셋 카탈로그 폴더구조의 최상위 폴더입니다. 한 개의 에셋 카탈로그에 하나만 존재가능.
  • Image Set Type : 이미지 에셋에서 UIImage와 NSImage의 인스턴스에 사용되는 이미지 파일.
  • Data Set Type : 장치 실행 가능 코드(device-executable code)를 제외한 Xcode에 의해 생성된 모든 종류의 데이터를 포함하는 파일들의 집합.
    이와같이 이미지나 파일을 드래그를 통해 추가할 수도 있다.

AppDelegate.swift

  • 앱의 실행 주기(Life Cycle)를 관리하는 내용의 스위프트 소스 코드가 들어있는 클래스 파일. 앱을 실행하거나 종료 또는 백그라운드를 실행할 때 하는 일들을 관리한다. 일반적으로 초보 단계일 때는 프로그래머가 직접 코딩하지 않아도 된다.

SceneDelegate.swift

  • 사용자 인터페이스의 사용주기(Life Cycle)를 관리하는 내용의 스위프트 소스코드가 들어있는 클래스 파일. 초보 단계일 때는 프로그래머가 직접 코딩하지 않아도 된다.

ViewController.swift

  • 화면에 보이는 뷰에서 처리하는 내용의 스위프트 소스 코드를 담고 있는 클래스 파일. 일반적으로 프로그래머는 이 파일에서 코딩을 하게 되며 뷰 하나당 클래스 하나가 대응된다. 그러므로 스토리보드에서 여러 개의 뷰를 추가하면 뷰의 개수만큼 뷰 컨트롤러 클래스 파일이 필요하다.

Main.storyboard

  • 앱의 내용을 시각적으로 쉽게 이해하고 프로그래밍할 수 있도록 그림으로 표현한 파일.
  • 이 스토리 보드를 통해 화면에 보이는 내용 및 뷰와 뷰 간의 연결 관계 등을 표현할 수 있다.

LaunchScreen.storyboard

  • 앱이 실행될 때 잠시 나타나는 스플래시 화면을 만드는 스토리 보드.

참고

https://beepeach.tistory.com/435
https://kingso.netlify.app/posts/boostcourse-project1-assets/

0개의 댓글