Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cocoa Touch Framework, Foundation #5

Open
simoniful opened this issue Feb 28, 2022 · 0 comments
Open

Cocoa Touch Framework, Foundation #5

simoniful opened this issue Feb 28, 2022 · 0 comments
Labels

Comments

@simoniful
Copy link
Owner

simoniful commented Feb 28, 2022

Cocoa Touch Framework

iOS앱을 만드는데 필요한 여러 개발도구를 포함하는 최상위(가장 프로그래머와 가까운) 프레임워크 Object-C 언어로 작성되었으며 Mac OS X에 기반을 두고 있다. 코코아 터치는 MVC 소프트웨어 아키텍처를 기반으로 개발되었다.

내부 계층 구조

위로 향할 수록 가장 사용자 가까운 수준이며, 아래로 향할 수록 기기 및 raw한 기기에 가까운 계층구조
  • Cocoa Touch 계층
    하부 계층의 프레임워크를 사용하여 애플리케이션을 직접 구현하는 프레임워크.
    UIKit, GameKit, MapKit
  • Media 계층
    상부 계층인 코코아 터치 계층에 그래픽 관련 서비스나 멀티미디어 관련 서비스를 제공
    Core Graphics, Core Text, Core Audio, Core Animation, AVFoundation
  • Core Service 계층
    문자열 처리, 데이터 집합 관리, 네트워크, 주소록 관리, 환경 설정 등 핵심적인 서비스들을 제공.
    또한 GPS, 나침반, 가속도 센서나 자이로스코프 센서와 같이 디바이스의 하드웨어 특성에 기반한 서비스도 제공.
    Foundation, Core Foundation, Core Location, Core Motion, Core Animation, Core Data
  • Core OS 계층
    커널, 파일 시스템, 네트워크, 보안, 전원 관리, 디바이스 드라이버 등이 포함
    iOS가 운영 체제로서 기능을 하기 위한 핵심적인 영역

모든 계층이 하부 계층을 상속 받는 것은 아니지만 일반적이며, 같은 계층끼리의 연결 관계도 있다.
예를 들어 같은 계층의 GameKit은 UIkit을 상속하고있고, Foundation은 CoreFoundation을 상속하고 있다.


Q. iOS 앱을 만들고, User Interface를 구성하는 데 필수적인 프레임워크 이름은 무엇인가?

Cocoa Touch Framework

Q. UIKit만 import 해와도 Foundation을 사용할 수 있는 이유는 무엇인가?

UIKit은 가장 위인 Cocoa Touch 계층이고, Foundation은 Core Service 계층이다.
그렇기 때문에 UIkit이 Foundation 프레임워크를 상속했을 가능성이 높다.
결과적으로 UIkit을 상속하는 것 만으로, Foundation도 함께 상속한 결과를 내는 것이다.


Foundation

데이터 저장 및 지속성, 텍스트 처리, 날짜 및 시간 계산, 정렬 및 필터링, 네트워킹을 포함한 앱과 프레임워크의 기본 기능을 제공한다. Foundation이 정의한 클래스, 프로토콜 및 데이터 유형은 macOS, iOS, watchOS 및 tvOS SDK 전체에서 사용된다.

Fundamentals

  • Numbers, Data, and Basic Value: Int, Double 비롯한 기본적인 변수 사용
  • String and Text: String에 관련된 처리들
  • Collections: Array, Dictionary, Set등 list와 관련된 처리
  • Dates and Times: 날짜와 시간 처리
  • Units and Measurement: 도량형
  • Data Formatting: 특정 유형으로 String, Number 등 데이터 형식 커스텀
  • Filters and Sorting: 배열의 검사 및 정렬에 관련된 처리

App Support

  • Task Management: Undo, Scheduling, Activity Sharing 등 앱의 작업(work)와 사용자 및 시스템과의 상호작용 관리
  • Resources: 리소스, 에셋과 관련된 처리
  • Notifications: Notification Center 등에 관련된 처리
  • App Extension Support: 위젯, 외부 다른 앱, 전화 등 다른 앱과 확장 기능 지원
  • Errors and Exceptions: 에러 및 예외 처리
  • Scripting Support: AppleScript 등 Mac OS 서포팅

Files and Data Persistence

  • File System: 파일 및 폴더 구성, 생성, 읽기 관리
  • Archives and Serialization: property list, JSON, 그리고 평면 이진 표현 등의 값을 스위프트에서 사용가능한 객체나 값으로 변환
  • Preferences: 유저디폴트 등 앱 도메인 내 데이터 저장 관리
  • Spotlight: 장치에서 파일 및 기타 항목을 검색하고 검색할 앱의 콘텐츠를 인덱싱
  • iCloud

Networking

  • URL Loading System : URLSession등 네트워킹과 관련된 처리
  • Bonjour

Low-Level Utilities

  • XPC
  • Object Runtime
  • Processes and Threads
  • Streams, Sockets, and Ports

Q. Foundation Kit은 무엇이고 포함되어 있는 클래스들은 어떤 것이 있는지 설명하시오.

애플에서 제공하는 기본 프레임워크 중 하나로 원시 데이터타입과 컬렉션 타입을 제공하는 기본적 기능뿐 아니라 파일 및 데이터를 관리하거나 네트워크 작업을 제공하는 등의 지원 기능도 포함하고 있습니다.
Foundation에 포함된 클래스는 기본적인 Number, Data, String와 같은 원시 데이터 타입, Array, Dictionary, Set와 같은 컬렉션 타입부터 시작해서 애플리케이션을 지원해주는 Resources, Notification등과 파일 및 데이터를 관리하기 위한 클래스들과 네트워킹과 관련한 클래스들이 포함되어 있습니다.

@simoniful simoniful changed the title iOS Framework Cocoa Touch Framework, Foundation Mar 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant