[SeSAC] 1일차 수업 정리

velog_ghost·2022년 7월 4일
0

[SeSAC] TIL📚

목록 보기
1/19
post-custom-banner

1. About Application

앱의 구조와 동작 원리

  • 화면 : 사용자 입장에서 보는 것
  • 기능 : 편리하게 사용하기 위한 것.
  • 데이터
    데이터가 앱 내부에 저장되어 있을 경우 : 백업 / 복구 필수 (ex: 카카오톡 용량, 영화 관리 앱 등)
    데이터가 서버에 저장되어 있을 경우 : 네트워크 연결 필수 (ex: 인스타, 유튜브, 웹툰 등)

iOS의 특성

  • 패쇄성
    XCode는 맥북에서만 개발 가능, Appstore 정책 등
  • 업데이트
    iOS 버전 점유율을 보면 대부분 사용자가 최신 버전을 사용!
  • 레이아웃
    HIG, SFSymbols 등 애플이 추구하는 디자인 존재
  • 하드웨어
    GPS, 카메라, 조도센서 등

2. Create a new XCode Project

  • Product Name
    프로젝트의 이름을 의미함. 출시될 앱의 이름과는 무관함
    (iOS, UIKit) 등 애플의 고유한 정의나 한글은 오류가 발생할 가능성 존재

  • Team
    애플에 등록된 개발자 계정이며, Appstore에 앱의 소유자가 표시됌
    None인 경우 시뮬레이터는 가능하나 실제 기기에서는 빌드가 불가능하며 앱 출시 불가

  • Organization Identifier
    Bundle Identifier에 조합되는 식별자로, 암묵적으로 웹의 도메인을 거꾸로 적는 형태로 작성
    개인개발에서는 주로 com.nickname을 작성

  • Bundle Identifier
    앱을 구분할 수 있는 고유한 식별자로, 한 번 앱스토어에 출시하면 변경 불가능!

Project Editor

여기서는 위 앱이 작동되는 iOS 최소 지원 버전, 디바이스 모드, 가로모드 해제 등을 설정할 수 있음

Deployment Info 에서 iOS 버전과 iPhone, iPad 지원 등을 설정할 수 있음

  • 실제 앱에서는 iOS 13.0 , iPhone 만 체크하는 경우가 많음
    iOS 12 버전에서 13버전 올라올 때 많은 업데이트가 있었기 때문에 12.0 버전을 지원하면 코드 수정을 많이 해줘야 하는 불편함 증가

iPad까지 지원하게 되면 iPad 관련 업데이트도 해주어야 하기 때문

  • 참고
  • iPhone + iPad 지원 : 모두 적합한 레이아웃 형태의 앱. 단 개발 시 고려 요소 증가
    출시하면 둘 다 계속 개발을 해주어야 함

  • iPhone 만 지원 : iPad에서도 사용은 가능하지만 iPad에서는 iPhone 레이아웃으로만 보임
    출시 이후 iPhone + iPad 형태로 전환 가능

  • iPad 만 지원 : iPhone에서 다운 및 사용 불가능
    출시 이후 iPhone + iPad 형태로 전환 가능

UIKit & Interface Builder

  • appDelegate.swift & SceneDelegate.swift
    디바이스에 설치된 수 많은 앱이 작동하기 위해 앱 라이프사이클을 관리하는 부분이자 앱의 실행과 종료를 담당함.
    iOS 13 미만의 버전에서는 AppDelegate를 사용하고, iOS 13 이상의 버전에서는 SceneDelegate를 주로 사용

  • ViewController.swift
    씬(Scene)에 대한 로직을 담당하는 파일로, 코드가 작성될 영역
    주로 씬이 많아질수록 .swift 파일이 많아짐

  • Asset.xcassets
    앱 내 아이콘 / 이미지 소스를 관리함
    아이폰 기종 별 적합한 해상도가 달라 앱에 제대로 적용하기 위해선 3개의 파일명을 가진 이미지 리소스 필요
    -> 개발자가 신경쓰는게 아니라 디자인 영역이 담당하는 부분!
    참고 : 안드로이드는 5가지로 구분

  • main.storyboard
    User Interface를 구성하는 곳

  • LaunchScreen.storyboard
    앱이 구동될 때 처음에 보여주는 시작 씬
    일반적으로 앱을 로딩하는 동안 비어있는 씬을 보여주지 않기 위해 노출함

  • info.plist
    프로퍼티 리스트로, 앱의 정보를 가지고 있음.
    개인 정보 보호 및 하드웨어 권한 획득을 위한 부분을 설정하기도 함.

App Thinning

  • 애플리케이션이 디바이스에 설치될 때, 앱스토어와 운영체제가 디바이스에 맞게 최적화되는 기능

컴파일

  • 소스코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 과정

빌드

  • 소스코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 과정 및 결과물
    여러과정 중, 컴파일이 가장 중요
post-custom-banner

0개의 댓글