본문 바로가기

Tech/iOS

[iOS] Day 1 - 수업 정리

728x90

iOS의 특성

1. 폐쇄성

  • 앱을 받을 수 있는 곳이 AppStore뿐이다
  • 애플의 정책이 변경되면 서비스에 제한이 걸릴 수 있다 -> 앱을 만들 때 애플의 정책 확인 필수

2. 업데이트 

 

App Store - 지원 - Apple Developer

App Store 사용자는 App Store에서 iPhone, iPad, Mac, Apple TV 및 Apple Watch용 앱을 쉽게 찾고 구입하고 다운로드할 수 있습니다. Apple Developer Program에 등록하여 앱을 디자인 및 개발하고 App Store에 앱을 배포

developer.apple.com

 

  • 다양한 iOS 버전을 지원하는 경우 개발 시간 증가 하지만 많은 사용자가 이용이 가능하다
  • 최신 iOS 버전만을 지원하는 경우 개발 시간 감소 하지만 사용자의 수가 다양한 iOS 버전을 지원하는 경우 보다 적다 

3. 레이아웃

  • HIG(Human Interface Guidelines

App개발을 할 때 필요한 디자인과 동작을 포함한 여러 규칙을 통하여 사용자 인터페이스를 어떻게 구성하는 방법에 대한 지침을 제시한다

 

https://developer.apple.com/design/human-interface-guidelines/platforms/designing-for-ios/

 

Designing for iOS - Platforms - Human Interface Guidelines - Design - Apple Developer

Designing for iOS People depend on their iPhone to help them stay connected, play games, view media, accomplish tasks, and track personal data in any location and while on the go. As you begin designing your app or game for iOS, start by understanding the

developer.apple.com

 

왜 읽어야할까?

  • App을 설계할 때 사용자와 상호작용에 관해 생각하고 설계할 수 있다
  • 개발자가 아닌 사용자 입장에서 App을 바라보고 설계할 수 있다
  • App의 일관성을 유지할 수 있으며 협업에 있어서 기준점을 제시할 수 있다

  • SF Symbols(San Fransisco Symbols)

https://developer.apple.com/sf-symbols/ 

 

Apple Developer

There’s never been a better time to develop for Apple platforms.

developer.apple.com

iOS 13 이상부터 사용 가능하다

4000여개의 기본 제공 아이콘을 사용 가능하다 하니 사용해보도록 하자

 

4. 하드웨어

  • 아이폰에 들어있는 기능들을 활용해서 개발을 할 수 있다
  • ex) GPS,카메라, 조도센서 등

Bundle Identifier

앱의 고유 주소값이다 (인간의 주민등록번호라고 생각하면 이해하기 쉽다!)

 

앱을 출시할 때 다른 앱과 Bundle Identifier가 겹치면 안된다 즉, 고유한 Bundle Identifier 설정이 필수다

Xcode 내의 Bundle Identifier

앱 출시 후에 Bundle Identifier는 변경 가능하지만 다른 앱이 된다(출시 전 몇번이고 확인하자!)


Project Editor

Xcode Project Editor

iOS 9 ~ 10 / iOS 12 ~ 13 변경 사항이 많아서 주의할 필요가 있다

 

iPhone, iPad 선택할 경우 -> 아이폰 아이패드 모두 적합한 레이아웃 형태의 앱이다.

 -> 단 개발시 고려요소가 증가하고 출시 이후 iPhone 단일 선택 혹은 iPad 단일 선택으로 전환 불가능하다.

iPhone 선택 -> iPad에서도 사용가능한 앱 but iPhone 레이아웃으로 보인다. 출시 이후 iPhone, iPad 용으로 전환 가능

iPad 선택 -> iPad에서만 사용 가능한 앱 아이폰에 다운로드 및 사용 불가능하다. 출시 이후 iPhone, iPad 용으로 전환 가능

 


Assets

  • 앱 내의 아이콘, 이미지 소스를 관리한다.
  • 디바이스 사이즈가 다르기 때문에 각자 맞는 해상도가 다르다. -> 이미지가 깨지는 경우가 있다
  • 아이폰에 대한 화질은 1배수, 2배수, 3배수로 나뉘어 있다
  • ex) 1배수에만 이미지가 들어가 있어도 2배수 3배수 부분은 비어있는 것이 아니라 1배수에 있는 이미지를 가져와서 사용한다

-> slicing : 디바이스에 가장 적합한 조각을 전달하는 기술(App thinning에 포함됨)

-> App thinning : App이 디바이스에 설치 될 때 앱 스토어와 운영체제가 디바이스의 특성에 맞게 설치되고록 하는 설치 최적화 기술

 


Lauch Screen

Launch Screen

필수 파일이다!!!! Main이 있다고 지우면 안된다.

 

Storyboard에 열심히 작업을 했다. 시뮬레이터에  잘 나오다가 갑자기 사라진다 대체 왜?

-> main이 아닌 Launch Screen에서 작업할 경우 앱이 실행될 때 보여지는 화면을 보여주고 사라진다.

Main과 Launch screen 영역은 햇갈리면 안된다 확인 필수!

 


Entry Point

Entry Point

앱을 시작할 때 처음에 보여지는 UI 설정이다

Entry Point를 ViewController을 지우면서 함께 지운다면?

-> 빈 공간이 재생된다

 

?

-> 어떤 파일을 맨처음에 재생할지 몰라서

 

지운다면 어떻게 해결할까?

Entry Point를 지운 경우 해결 방법

Entry Point를 지운 경우, UIViewController 드래그 후 속성에서 Is Initial View Controller 체크하면 된다


 

Version

동일한  프로젝트여도 iOS version에 따라 다른 UI가 나타날 수 있다. 이런 차이가 생기는 이유는?

-> iOS version이 향상 됐을 때 업데이트 과정에서 UI 변경이 이루어질 경우 다른 UI가 나타난다. 

 

iOS 14.0 버전의 Button과 iOS 15.0 버전의 Button은 어떤 차이가 있을까?

1) button의 style 지정 가능

2) subtitle 추가 기능 

3) ConfigurationUpadteHandler 사용하여 추가 기능 설정 가능

 

최소 버전을 iOS 12.0 이상으로 설정하면 정상적으로 빌드가 되지 않고 오류가 발생한다 왜 그럴까?

-> version update로 인하여 현재 버전과 달라지는 부분이 많아져서 오류가 발생한다