IOS 프로젝트 생성시 생기는 것들

Sunho·2022년 9월 20일
0

ios공부

목록 보기
2/8


초기에 프로젝트를 생성하면 자동으로 생기는 파일들이다.

What is appDelegate.swift

  • 앱의 가장 중요한 데이터 구조 초기화
  • 앱의 SCENE을 환경설정하는 것
  • 앱 밖에서 발생한 알림(배터리 부족등)에 대응
  • 특정한 scenes, views, viewdelegate에 한정되지 않고 앱자체 타겟하는 이벤트에 대응하는 것
  • session life-cycle을 어플리케이션에게 알려줌.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        return true
    }

어플리케이션의 셋업을 이 메소드 안에서 진행. multiple window를 ios13부터 지원한다.

 func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

어플리케이션이 새로운 scene/window 제공하려 할 때 불리는 메소드 ㅃ!!최초아님!!

func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {}

사용자가 scene 버릴때호출.

What is SceneDelegate.swift

UI상태변화를 메소드들을 통해 어플리케이션에게 알리는 역할.화면에 무엇을 보여줄지 관리하는 역할

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
 guard let _ = (scene as? UIWindowScene) else { return }
    }

UISceneSession lifecycle에서 제일 처음 불리는 메소드.

 func sceneDidDisconnect(_ scene: UIScene) {
    }

scene이 background로 들어갔을 때 시스템에서 자원을 확보하기 위해 disconnect하려 할수 있는데 여기서 필요없는 자원을 돌려주는 것이다. 예를들면 네트워크를 통해 쉽게 불러올 수 있거나 생성 쉬운 데이터 돌려주고 사용자의 정보같은 것들은 갖고 있게 하는것.

    func sceneDidBecomeActive(_ scene: UIScene) {
    }

scene이 setup 되고 화면에 보여지면서 사용될 준비가 완료 된상태.

    func sceneWillResignActive(_ scene: UIScene) {
    }

active한 상태에서 inactive상태로 빠질때 호출. 이 방법을 사용하여 백그라운드로 들어갈 때 변경한 내용을 실행취소가능.

   func sceneWillEnterForeground(_ scene: UIScene) {
    }

scene이 foreground로 전환될때. 처음 active상태되었을때

    func sceneDidEnterBackground(_ scene: UIScene) {
    }

scene이 foreground에서 > background로 전환될때호출. 다시 foreground에 돌아와 할수 있도록 데이터, 공유리소스 저장하는 역할.

what is Assets?

어플리케이션을 개발할때 다양한 디바이스들에서 사용하기 위해 여러 파일로 이루어져있다. 에셋을 통해 같은 사이즈의 이미지를 사용할수 있게 된다.

  • App Icon Type : 다양한 크기와 해상도의 애플리케이션 아이콘 원본 이미쥐
  • Catalog Type : 에셋 카탈로그 폴더구조의 최상위 폴더입니다. 한 개의 에셋 카탈로그에 하나만 존재할 수 있습니다.
  • Image Set Type : 이미지 에셋에서 UIImage와 NSImage의 인스턴스에 사용되는 이미지 파일입니다.
  • Data Set Type : 장치 실행 가능 코드(device-executable code)를 제외한 Xcode에 의해 생성된 모든 종류의 데이터를 포함하는 파일들의 집합입니다.
  • Launch Image Type : 애플리케이션 실행화면 이미지입니다. (iOS 7.0 이하 버전에만 필요합니다. iOS 8.0 버전 이상은 기본적으로 실행화면 스토리보드(launch screen storyboard)를 사용합니다.)

what is info.plist

프로젝트 설정을 담당하는 파일이다.
• 번들을 식별. 키와 value로

Bundle name

• 사용자가 보는 애플리케이션의 실제이름.

Bundle identifier (CFBundleIdentifier)

• 애플리케이션의 고유식별자

infoDictionary version

• 프로퍼티 리스트 구조의 현재버전, 자동으로 키를 더하기 때문에 값을 수정X

Main storyboard file base name: 메인 스토리보드파일이름.

Bundle version

• 번들의 빌드 버전. 배포용이 아닌 내부 빌드용으로 사용.

Launch screen interface file base name: 런치스크린파일이름

Executable file(CFBundleExecutbable)

• 실행 가능한 번들의 이름

Application requires iPhone environment

• Ios에서만 실행하는지 여부 yes면 ㅇㅇ

supported interface orientations : 앱에서 지원하는 회전 처리 설정.

Application supports indirect input events : 간접 입력장치 지원 유무 선택하는 속성

Application Scene Manifest

• 앱의 Scene 기반의 생명주기 관련 정보 설정

  • Enable Multiple Windows: 여러 Scene을 설정 할 수 있는지 체크하는 속성

  • Scene Configuration : 새로운 Scene을 만들 때 UIKIT의 기본 설정 값 설정

    • Application Session Role : 2가지 역할(Application/External Display)
      • item 0 : configuration Name : 설정 이름,
        Delegate class Name : 대신코드 실행해줄 클래스 이름,
        Storyboard Name: 스토리보드 이름

Bundle OS Type code

• 번들의 유형을 설정, 코드 - AAPL / 프레임워크- FMWK/ 번들 - BNDL

Localization native development region

• 번들이 만들어진 주지역 설정. 기본언어가 해당 나라 언어에 맞게 나온다.

Bundle version string(Short)

• 번들의 릴리즈 버전

Required device capabilities : 사용 가능한 장치를 설정.

App Project속성.

: 빌드에 필요한 모든 정보 저장소

info

  • Deployment Target: 지원하는 최소 OS version
  • Configurations : Debug/Release build setting. 다양한 환경에서 테스트 하기 위해 더 추가하며 다양하게 가능. 하나의 타겟에 다양한 빌드로 테스트 가능
  • localizations : 지원하는 지역(언어)

Build Settings

앱 빌드하는데 필요한 정보 제공. swift 코드 컴파일 등 빌드 프로세스중에 수행되는 각 작업에 대해 빌드설정을 통해 수행방법 제어.

Package Dependencies

Swift package들이 여기서 관리된다.

TARGET

: 빌드할 제품을 지정,프로젝트 또는 작업 공간의 파일 세트에서 제품을 빌드하기 위한 지침을 가지고 있다.

타겟별로 버전의 프로덕트 분리가능. 설정 달리하며

General

  • 프젝이름, 식별자, 장치 버전, ios버전,연결된 프레임워크 및 아이콘 소스파일과 같은 설정 포함.
    • Deployment Info
      • Device Oriention : 앱이 지원하는 가로,세로에 대한 회전여부
      • Status bar style : 상태바 스타일 지정(dark, light)
    • App icons and Launch Image : 기기에 설치되는 앱의 아이콘에 대한 설정과 초기페이지 설정 관리

Signing & capabilities : 유효성과 출처 보장하기 위해 디버그 또는 프로덕션 인증서로 서명

Resource tags : tag를 사용하여 주문형 배포를 위해 자산을 그룹화. 앱의 일부로 모든 이미지를 배송하는 것과 달리 필요할 때 앱서 다운로드할수 있는 이미지그룹정의.

info : http 접속을 허용혹은 권한 허용에 관한 알림.

Build Settings/ phase / rules: 제품 빌드를 위한빌드설정 및 빌드 단계형태의 지침,프로젝트 빌드설정 상속.

profile
앱개발자

0개의 댓글