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

<3주차> Foundation Kit은 무엇이고 포함되어 있는 클래스들은 어떤 것이 있는지 설명하시오. #13

Closed
namsoo5 opened this issue Nov 13, 2020 · 7 comments

Comments

@namsoo5
Copy link
Collaborator

namsoo5 commented Nov 13, 2020

No description provided.

@namsoo5
Copy link
Collaborator Author

namsoo5 commented Nov 17, 2020

정의

Foundation 프레임워크는 데이터 스토리지 및 지속성, 텍스트 처리, 날짜 및 시간 계산, 정렬 및 필터링, 네트워킹을 포함한 애플리케이션과 프레임워크에 대한 기본 기능 계층을 제공한다. Foundation에서 정의한 클래스, 프로토콜, 데이터 유형은 MacOS, iOS, watchOS, tvOS SDK 전반에 걸쳐 사용된다.

포함된 클래스
* Collections(Sorting, Type...)
* Strings
* Dates and times
* URLs(Networking)
* XML data
* Ports and sockets
* Notification Center interaction

참고링크

@iJoom
Copy link
Collaborator

iJoom commented Nov 18, 2020

공식문서 정의 및 요약
필수 데이터 유형(String,int,double), 컬렉션 및 운영 체제 서비스에 액세스하여 앱의 기본 기능 계층을 정의
Foundation 프레임 워크는 데이터 저장 및 지속성, 텍스트 처리, 날짜 및 시간 계산, 정렬 및 필터링, 네트워킹을 포함하여 앱 및 프레임 워크에 대한 기본 기능 계층을 제공합니다. Foundation에서 정의한 클래스, 프로토콜 및 데이터 유형은 macOS, iOS, watchOS 및 tvOS SDK 전체에서 사용됩니다.
+) URLSession도 Foundation에 포함
+) UIKit이 Foundation보다 상위 계층으로서 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: 로컬 네트워크를 위한 작업

@iJoom iJoom added the 인준 label Nov 18, 2020
@khyunjiee
Copy link
Member

Foundation Kit

프로그램의 중심을 담당하는 프레임워크.
기본적인 원시 데이터 타입 (String, Integer ...) 부터 네트워킹 (URL Session) 까지 모두 포함되어 있다.
Foundation 내에 포함된 클래스들은 앞에 NS가 붙는다.

Fundamentals

  • Number, Data, String : 원시 데이터 타입
  • Collection : Array, Dictionary, Set 등 컬렉션 타입
  • Date and Time : 날짜와 시간을 계산하거나 비교하는 작업
  • Unit and Measurement : 물리적 차원을 숫자로 표현하거나 관련 단위 변환 기능
  • Data Formatting : 숫자, 날짜, 측정값 등과 문자열 간의 변환
  • Filter and Sorting : 컬렉션 요소들을 필터링하거나 정렬

App Support

  • Resources : 애플리케이션의 에셋과 번들 데이터에 접근
  • Notification : 정보를 퍼뜨리거나 받아들이는 기능
  • App Extension : 확장 애플리케이션
  • Error and Exceptions : API와의 상호작용에서 발생할 수 있는 에러나 예외처리

Files and Data Persistence

  • File System : 파일 또는 폴더 생성, 읽기, 쓰기 등
  • Archives and Serialization : 프로퍼티, json, 바이너리 파일들과 객체 간의 변환
  • iCloud : 사용자의 iCloud 계정을 이용해 데이터 동기화 작업

Networking

  • URL Loading Systeem : 표준 인터넷 프로토콜을 통해 URL과 상호작용, 서버와 통신
  • Bonjour : 로컬 네트워크 작업

Low-Level Utilities
XPC, 객체 런타임, 프로세스와 스레드, 스트림, 소켓, 포트


이렇게 중요한 Foundation, import 안하면 에러가 난다.
하지만, Foundation없이 UIKit을 import하면 에러가 날 것 같지만 에러가 나지 않는다.

why?
image
기본적으로 코코아 프레임워크는 위의 그림의 구조이다.
UIKitCoacoa Touch 계층이고, Foundation은 두단계 아래인 Core Service 계층이다.
그렇기 때문에 UIKitFoundation을 상속하고 있을 확률이 높다.
UIKit을 상속하는 것 만으로도 Foundation을 상속할 수 있는 것이다.

@5anniversary
Copy link
Collaborator

5anniversary commented Nov 20, 2020

Foundation

데이터 타입과, 콜렉션, 운영체제 서비스를 정의하고 기능적인 기본 베이스를 접근 가능하게 해주는 Kit

Fundamentals

  • Numbers, Data, and Basic Values
  • Strings and Text
  • Collections
  • Dates and Times
  • Units and Measurement
  • Data Formatting
  • Filters and Sorting

App Support

  • Task Management
  • Resources
  • Notifications
  • App Extension Support
  • Errors and Exceptions
  • Scripting Support

Files and Data Persistence

  • File System
  • Archives and Serialization
  • Preferences
  • Spotlight
  • iCloud

Networking

  • URL Loading System
  • Bonjour

Low-Level Utilities

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

@choidam
Copy link
Member

choidam commented Nov 20, 2020

Foundation

프로그램의 중심을 담당합니다. Foundation 내에 포함된 클래스들은 앞에 NS 가 붙습니다.

기본

  • Number, Data, String
  • Collection : Array, Dictionary, Set
  • Date and Time
  • Unit and Measurament
  • Data Formatting
  • Filter and Sorting

애플리케이션 지원

  • Resouces
  • Notification
  • App Extension
  • Error and Exceptions

파일 및 데이터 관리

  • File System
  • Archives and Serialization
  • iCloud

네트워킹

  • URL Loading System
  • Bonjour

@choidam choidam added the label Nov 20, 2020
@Juhyeoklee
Copy link
Collaborator

Juhyeoklee commented Nov 20, 2020

Foundation Kit

Foundation은 iOS 어플리케이션의 운영체제 서비스와 기본 기능을 포함하는 프레임워크 입니다.

  • Foundation은 원시 데이터 타입(String, Int, Double), 컬렉션 타입(Array, Dictionary, Set)및 운영체제 서비스를 사용해 어플리케이션의 기본적인 기능을 관리하는 프레임워크입니다.
  • Foundation 프레임워크에서 정의한 클래스,프로토콜 및 데이터 타입은 iOS 뿐만 아니라 macOS, watchOS, tvOS 등 모든 애플 SDK에서 사용됩니다.

클래스

  • 기본

    • 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 : 로컬 네트워크를 위한 작업

@elesahich
Copy link
Collaborator

Foundation

https://developer.apple.com/documentation/foundation
지금은 한번 정리하지만 나중에 나오면 크게 대분류 말하고 대분류에서 기억나느거 몇개 말하면 될듯

Fundamentals

  1. Numbers, Data, and Basic Values
    Cocoa 전반에서 사용되는 기본 밸류이거나 기본 타입 (원시적 타입)

  2. Strings and Text
    유니 코드 문자의 문자열을 생성 및 처리하고, 정규식을 사용하여 패턴을 찾고, 자연어를 분석을 수행

  3. Collections
    Collection Type -> Array, Dictionary, Set 혹은 특별한 컬렉션 타입

  4. Dates and Times
    date와 time을 비교, 달력과 time zone 계산을 수행합니다.

  5. Units and Measurement
    Label numeric quantities with physical dimensions to allow locale-aware formatting and conversion between related units.
    단위 관련

  6. Data Formatting
    숫자, 날짜, 측정값 등 다른 값들을 locale 기반의 표현값으로 대치

  7. Filters and Sorting
    predicates, expressions, and sort descriptors 를 사용해서 collection들의 요소를 검사하거나 정렬

App Support

  1. Task Management
    Handoff나 Shortcus같은 시스템 서비스에 나의 앱의 반응(상태를_ 결정

  2. Resources
    Access assets and other data bundled with your app.
    에셋과 번들을 포함한 Resources Assets 맞다

  3. Notifications
    Notification 구조체와 NotificationCenter 클래스 등

  4. App Extension Support
    앱 확장과 hosting하는 app과의 interaction 담당

  5. Errors and Exceptions
    API와의 인터랙션에서의 에러들 (NSError, fatalError 등)을 제공, better debugging을 위한대요

  6. Scripting Support
    앱 내에서 스크립트를 사용할 수 있게 지원

Files and Data Persistence

  1. File System
    파일이나 폴더를 Create, read, write 할수 있도록 함

  2. Archives and Serialization
    plist, JSON, 플랫 바이너리 표현의 값들을 객체로, 혹은 반대로 변환 지원

  3. Preferences
    앱을 구성하는 데 사용되는 도메인 범위 정보를 지속적으로 저장

  4. Spotlight
    스팟라잇

  5. iCloud
    아이클라우드

Networking

  1. URL Loading System
    우왕 URLSession

  2. Bonjour
    Advertise services for easy discovery on local networks, or discover services advertised by others.

Low-Level Utilities

프로세스 및 스레드, 스트림, 소켓 XPC 등
로 레벨 유틸도 있답니다......제가....퇴근을 해야해가지고.....가봅니다.....

@elesahich elesahich added the 승호 승호 label Nov 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment