[패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online을 학습하면서 나오는 이론 내용과 공식 문서에서 필요한 내용을 발췌하여 정리한 글입니다.
Part2. Basic 1. 명언 생성기 앱 만들기
코코아 터치(Cocoa touch Framework)
iOS 개발환경을 구축하기 위한 최상위 프레임워크으로 터치와 관련된 어플리케이션을 개발할 때 사용하는 프레임워크이다.
일반적으로 iOS 개발을 위해 Object-C 혹은 Swift에서 상속(import) 하여 사용하는 UiKit, Foundation을 포함한 대부분의 객체들이 모두 Cocoa touch에 포함되며, 가장 많이 사용되는 프레임워크로는 UIKit과 Foundation으로 들수 있다.
UIKit
UIKit은 iOS 앱 개발시 사용자에게 보여질 화면: 사용자 인터페이스를 구성하고 사용자 액션과 같은 이벤트를 관리하는 프레임워크이다.
우리는 Xcode에서 ViewController를 생성하면 상단에 import UIKit
이 기본적으로 명시되어 있는 것을 볼 수 있다.
이것은 ViewController가 UIViewController를 상속받는 것이고, UIViewController는 UIKit에 정의된 클래스로 사용자의 인터페이스와 액션을 관리한다.
-
UIKit 프레임워크는 제스처 처리, 애니메이션, 그림 그리기, 이미지나 텍스트처리 등 사용자 이벤트 처리를 위한 클래스를 포함하며 TableView, Slider, Button, Text Filed, Alert 등 앱의 화면을 구성하는 요소를 포함한다.
-
UIKit 클래스 중 UIResponder에서 파생된 클래스 또는 사용자 인터페이스에 관련된 클래스는 앱의 메인 쓰레드에서만 사용해야 한다.
-
UIKit을 import하면 Foundation은 자동으로 import된다 ( 둘이 동시에 import할 필요 없음 )
UIKit 사용자 인터페이스 클래스
- View and Control: 화면에 콘텐츠 표시
- View Controller: 사용자 인터페이스 관리
- Animation and Haptics: 애니메이션과 햅틱을 통한 피드백 제공
- Window and Screen: 뷰 계층을 위한 윈도우 제공
사용자 액션
- Touch, Press, Gesture: 제스처 인시기를 통한 이벤트 처리 로직
- Drag and Drop: 화면 위에서 드래그 앤 드롭 기능
- Peek and Pop: 3D터치에 대응한 미리보기 기능
- keyboard and Menu: 키보드 입력을 처리 및 사용자 정의 메뉴 표시
UIKit 애플리케이션 코드 구조 (MVC)
- UIKit 앱의 구조는 MVC(Model- View - Controller) 디자인 패턴을 기반
Foundation
Foundation은 가장 기본적인 데이터 타입부터 자료구조, 각종 구조체, 타이머, 네트워크 통신, 파일관리 등 기본적인 프로그램의 중심을 담당하는 프레임워크이다.
Foundation에서 제공하는 데이터 타입과 기능 대부분을 Swift 표준 라이브러리에서 제공한다.
기본 요소
- Number, Data, String: 원시 데이터 타입 사용
- Collection: Array, Dictionary, Set 등과 같은 컬렉션 타입 사용
- Date and Time: 날짜와 시간을 계산하거나 비교하는 작업
- Unit and Measurement: 물리적 차원을 숫자로 표현 및 관련 단위 간 변환 기능
- Data Formatting: 숫자, 날짜, 측정값 등을 문자열로 변환 또는 반대 작업
- Filter and Sorting: 컬렉션의 요소를 검사하거나 정렬하는 작업
애플리케이션 지원
- Resources: 애플리케이션의 에셋과 번들 데이터에 접근 지원
- Notification: 정보를 퍼뜨리거나 받아들이는 기능 지원
- App Extension: 확장 애플리케이션과의 상호작용 지원
- Error and Exceptions: API와의 상호작용에서 발생할 수 있는 문제 상황에 대처할 수 있는 기능 지원
파일 및 데이터 관리
- File System: 파일 또는 폴더를 생성하고 읽고 쓰는 기능 관리
- Archives and Serialization: 속성 목록, JSON, 바이너리 파일들을 객체로 변환 또는 반대 작업 관리
- iCloud: 사용자의 iCloud 계정을 이용해 데이터를 동기화하는 작업 관리
네트워킹
- URL Loading System: 표준 인터넷 프로토콜을 통해 URL과 상호작용하고 서버와 통신하는 작업
- Bonjour: 로컬 네트워크를 위한 작업