[iOS/부스트 코스] Cocoa Touch, UIKit, Foundation 정리
안녕하세요. 개발하는 정주입니다.
오늘은 iOS 앱 프로그래밍 - Cocoa Touch, UIKit, Foundation에 대해 포스팅하려고 합니다.
Cocoa Touch Layer
코코아 터치 계층은 iOS 앱 개발에 주 축을 이루는 개발 환경으로, 앱의 기능 구현에 필요한 다양한 프레임워크를 포함하는 최상위 프레임워크 계층입니다.
Cocoa라는 단어는 Objective-C 런타임을 기반으로(동적 작동) 하고, NSObject를 상속받는 모든 클래스나 객체를 가리킬 때 사용합니다. Cocoa Touch는 핵심 프레임워크인 UIKit과 Foundation을 포함합니다.
UIKit
UIKit은 iOS 앱의 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크입니다.
UIKit 프레임워크는 제스처 처리, 애니메이션, 그림 그리기, 이미지 처리, 텍스트 처리 등 사용자 이벤트 처리를 위한 클래스를 포함합니다.
애플리케이션의 화면을 구성하는 테이블 뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등도 포함합니다.
UIKit 클래스 중 UIResponder에서 파생된 클래스나 사용자 인터페이스에 관련된 클래스는 앱의 메인 스레드, 메인 디스패치 큐에서만 사용해야 합니다.
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: 키보드 입력을 처리 및 사용자 정의 메뉴 표시
Foundation
Foundation은 원시 데이터 타입(String, Int, Double), 컬렉션 타입(Array, Dictionary, Set) 및 운영체제 서비스를 사용해 앱의 기본적인 기능을 관리하는 프레임워크입니다.
Foundation 프레임 워크는 데이터 타입, 날짜 계산, 시간 계산, 필터 및 정렬, 네트워킹 등의 기능을 제공합니다.
Foundation 프레임 워크는 iOS, macOS, watchOS, tvOS 등 모든 애플 SDK에서 사용됩니다.
Foundation 기능별 요소
기본
- 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: 로컬 네트워크를 위한 작업
마무리 잡담
감사합니다!
출처
Cocoa Touch https://www.boostcourse.org/mo326/lecture/17994?isDesc=false/
UIKit https://www.boostcourse.org/mo326/lecture/17995?isDesc=false
Foundation https://www.boostcourse.org/mo326/lecture/17996?isDesc=false
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.