ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [swift] 1탄 : xcode로 프로젝트 만들기
    Swift 개발 2020. 7. 11. 14:22

    1. project 생성하기 

    xcode를 실행하면 제일 처음 뜨는 창은 다음과 같다.

     

    첫번째 항목은 말 그대로 이것 저것을 시도해볼 수 있는 playground이고,

    두번째 항목이 프로젝트를 생성하게 해준다. 

    세번째 항목은 이미 만들어둔 프로젝트를 열거나, git에서 source를 받아서 열 때 사용할 수 있다. 

     

     

    2. Application type 결정하기 

     xcode는 ios뿐 아니라, apple watch, mac, tv를 위해 개발을 할 수 있는 프로젝트 format을 제공한다.

    일단은 ios 개발에 초점을 두고 배워보려고 한다. 

     

    나같은 경우, swift를 배우기로 결심한 계기가, object detection model을 앱에 올리기 위해서기 때문에,

    추후에는 아래 그림의 augmented reality app을 선택하게 되지 않을까 싶다.

     

    우선은 제일 간단한 "hello world"를 띄워볼 것이므로, sigle view app을 선택해 보겠다. 

     

     

    3. 프로젝트 이름 설정하기 

    아래와 같은 화면이 뜨면서, 내가 생성하는 프로젝트의 이름을 지정할 수 있다. 

    간단히 HelloWorld라고 해두고, Team 항목은 아마도 team으로 프로젝트를 진행할 때 사용하는 게 아닐까 싶다. 

    생성자 이름에는 나의 이름을 쓰고, organization identifier는 꼭 써야하는 건지 모르겠지만, 보통 com을 쓴다고 한다. 

     

    현재는 아주 간단한 앱(이라고 하기도 뭐한...)을 만들어 볼 것이므로,

    맨 아래에 있는 두 항목 : Include Unit Tests, Include UI tests는 체크하지 않았다.

    이 둘은 아마도 제작한 앱에 대한 각종 테스트를 할 수 있게 해주는 항목인듯 하다. (차차... 사용하게 되면 더 설명 해보겠다! :-) )

     

     

    4. 프로젝트 속성 결정하기 

    프로젝트를 생성하면 아래와 같은 화면이 등장한다. 가운데 있는 부분에서 프로젝트의 각종 속성을 결정할 수 있다.

    좌측에 분할된 화면은 아래 그림과 같이 구성 되어있다.

    제일 맨 위에 있는 HelloWorld는 실행 파일로써, finder에서 파일을 클릭하면 xcode를 통해서 프로젝트가 open된다. 

     

    그 아래에 있는 노랑색 HelloWorld 디레토리가 있고, 그 안에 다양한 파일이 있다. 

     

    맨 아래에 있는 Products 디렉토리를 누르면, HelloWorld.App 파일이 있는데, 이게 실질적으로 실행되는 앱이다. 

     

    파일은 코드를 볼 수 있는 swift 파일과, 흐름도를 볼 수 있는 storyboard가 있다. 

      

     

    중간 화면에는 Project와 Target 둘 중 한가지를 선택해서 띄울 수 있다.

     

     

    Project에서는 해당 project 내의 모든 파일에 대해 전반적인 관리를 할 수 있다. 

     

     

     

     

     

     

     

     

     

    Targets에서는 project 내에서 여러개의 target을 만들어서, 하나는 ios 용, 하나는 mac 용으로 제작하거나,

    모듈을 하나하나 따로 뺄 수 있게 해준다.

     

    (정확히 무슨 의미인지는 나중에 사용 해 봐야 알 수 있을듯!)

     

     

     

     

     

     

     

    우리가 설정해야 하는 곳은 Targets이고, 다양한 옵션들이 있지만, 일단 General에 대해서 살펴보자. 

    1) General - Identity 

    - Display Name : 프로젝트 명이라고 생각하면 됨

    - Bundle Identifier : app store에 앱을 배포할 때 사용할 이름

    - Version : 사용자가 보게될 나의 앱의 버전

    - Build : 동일한 버전 내에서 업데이트를 할 때 설정함 

     

    2) General - Deployment Info : 배포와 관련된 환경

    - Target : os 버전들이 쭉 나옴, 설정하는 버전 이후의 사용자만 사용할 수 있음.

                (시기마다 좀 다르겠지만, 8.0 ~ 10.0 정도로 설정해줌)

    - Device : 어느 device에서 실행할 수 있는지 설정

    - Device Orientation : 앱 실행 화면을 가로 방향, 세로 방향, 두가지 모두 중에 어떤것으로할지 설정

                Portrait : 세로 / Landscape : 가로

    - Status Bar Style : 디폴트로 두는 것을 추천.

                그 아래에 있는 hide status bar 항목을 누르면, 앱 실행 시 화면 맨 위의 상태바가 사라진다. 

     

    3) General - App icons and Launch Images : 아이폰에서 앱을 선택할 때 나오는 아이콘 종류가 다양함

    - App Icons Source : 우측 화살표를 누르면, 전체 화면 우측에 있는 프로젝트 계층 구조 중, Assets.xcassets로 이동한다. 

                상황별로 보이는 아이콘이 다 다르고, 하나라도 비어 있으면 apple 측에서 검수 할 때 reject 하는 사유 중 하나가 된다. 

                상황별로 넣어야 하는 아이콘의 pixel size도 다 다르다 ㅎㅎ...(귀찮...)

    -Launch Screen File : 앱 실행 시 나오는 splash 화면을 의미. 

     

     

    4) General - Frameworks, Libraries, and Embedded Content

        앱에서 사용하는 라이브러리를 embedded 시킬 지, 시키지 않을지에 대한 설정

        embedded 시킬 시에는, 앱에 library가 포함 된 채로 배포 되는 것이고,

        embedded 시키 않을 시에는, 앱 실행 시에 library가 참조된다. 

     

     

    이렇게 Targets에서 General 부분에 관한 설정을 마칠 수 있다. 

    5) Signing & Capabilities

    xcode version10까지는 signing이 general에 있었던거 같은데, 내가 사용하는 11에서는 capability와 함께 빠져 있다.

    Signing은 애플에서 받은 개발자 인증관련 항목인데, Automatically manage signing 을 해두면, 

    내 인증과 관한 자료를 xcode가 서버에서 알아서 가져온다고 한다. 

     

    capability는 내 앱이 사용하는 기본적인 권한을 설정할 수 있다. 위에 있는 + Capability를 클릭해서 여러 권한을 설정할 수 있다. 

     

    6) Info

    또 하나 봐야하는 Targets 의 설정 중 하나는 Info이다.

    Info는 HTTP 접속을 허용하거나, 권한 허용에 관한 노티를 줄 때 왜 Push를 해야하는 가에 대한 설명을 적어야 하는 곳이다. 

     

    7) Build Settings

    다음으로 볼 Targets 설정은 Build Settings이다. (ios 개발 시 가장 까다로운 부분이라고 한다)

    설정해야할 항목이 너무 많다 ㅠㅠ,,, 그래서 설정 하나를 잘못 건드리면 아예 build가 안된다고 한다. 

     

    8) Build Phases

    Build Phases는 내 앱이 어떤 file들을 갖고 배포가 되는지를 보여준다. (Build Rules는 우리가 다룰 일이 거의 없다고 한다.)

     

     

    댓글

Written by Geulleun