itisjustK
코딩과 사람 사는 이야기
itisjustK
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠.. (0)
    • Web (43)
      • html & css (9)
      • django & python (15)
      • java script (9)
    • iOS (51)
      • Swift (42)
      • SwiftUI (5)
    • CS (25)
      • 자료구조 (6)
      • 운영체제 (3)
      • 데이터베이스 (9)
      • 네트워크 (7)
    • PS (34)
      • 알고리즘 & 자료구조 (0)
    • Life (36)
    • Retrospective (15)
    • Book (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • crud
  • 생활코딩
  • CS
  • CoreData
  • binding
  • 어플
  • ios
  • AppleDevloperAcademy
  • mongodb
  • POSTECH
  • SwiftUI
  • 점주
  • 킨디
  • 개발자
  • 세그멘테이션
  • 생활코딩 #이고잉 #HTML #코딩 #개발자
  • SWIFT
  • 연결리스트
  • 독립서점
  • nosql

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
itisjustK

코딩과 사람 사는 이야기

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 3. Foundation과 UIKit 그리고 Cocoa Touch
iOS/Swift

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 3. Foundation과 UIKit 그리고 Cocoa Touch

2021. 8. 4. 18:02

Cocoa Touch Layer (코코아 터치 계층)

-iOS 애플리케이션 개발 환경 토대 및 주축

- 코코아 터치의 개념과 핵심을 이해하는 일은 iOS 애플리케이션 개발할 때 큰 그림을 그릴 수 있는 바탕이 되는 중요한 일!

- 애플리케이션의 다양한 기능 구현에 필요한 여러 프레임워크를 포함하는 최상위 프레임워크 계층

- '코코아' : Objective-C 런타임 기반, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용

- 코코아 계층은 macOS 애플리케이션 제작에 사용

- '코코아 터치' or '코코아' : iOS or macOS의 전반적인 기능을 활용해 애플리케이션 제작 시 사용하는 프레임워크 계층

- '코코아 터치' : 핵심 프레임워크인 UIKit, Foundation 포함

코코아 터치

 

 

UIKit 프레임워크

- iOS 애플리케이션의 사용자 인터페이스 (User Interface)를 구현, 이벤트 관리하는 프레임워크

- UIKit은 이벤트 처리를 위한 다양한 클래스 포함 (제스처 처리, 애니메이션, 그림 그리기, 이미지 처리, 텍스트 처리 등)

- 화면 구성 요소 포함 (테이블 뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등)

- UIKit 클래스 중 UIResponder에서 파생된 클래스 or 사용자 인터페이스에 관련된 클래스 : 애플리케이션의 메인 스레드 또는 메인 디스패치 큐에서만 사용

- iOS 또는 tvOS 플랫폼에서 사용

 

기능별 요소

사용자 인터페이스(User Interface)

  • 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 프레임워크

- 원시 데이터 타입(String, Int, Double), 컬렉션 타입(Array, Dictionary, Set) 및 운영체제 서비스를 사용해 애플리케이션의 기본적인 기능을 관리하는 프레임워크 

더보기

뭔가 swift 언어의 문법적인 기능들을 구현하게 해주는 프레임워크라는 느낌이 든다.

그래서 찾아봤더니 Foundation 자체가 Objective-C 의 확장성을 위해 만들어졌다고 한다.

어느 정도 맞는 셈이다.

 

"Foundation에서 제공하는 데이터 타입 및 컬렉션 타입의 대부분은 Objective-C 언어의 기능에서 지원하지 않는 것이기 때문에 언어기능을 보완하기 위한 구현이며, Swift에서는 이에 해당하는 데이터 타입과 기능 대부분을 Swift 표준 라이브러리에서 제공합니다."

- 기본 기능 제공 (데이터 타입, 날짜 및 시간 계산, 필터 및 정렬, 네트워킹)

- Foundation에서 정의한 클래스, 프로토콜, 데이터 타입 등은 iOS 뿐만 아니라 모든 종류의 OS에서 사용

 

 

기능별 요소

기본

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

 

 

+)

import UIKit 코드를 입력하면 자동으로 import Foundation이 된다. (import Foundation 이라는 코드를 치지 않아도) 

이유는 import UIKit 정의 자체에 import Foundation이 있기 때문이다.

커멘드 + import UIKIt을 누르면 UIKit의 정의를 볼 수 있다. 

 

저작자표시 (새창열림)

'iOS > Swift' 카테고리의 다른 글

[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 5. iOS의 View 체계  (0) 2021.08.08
[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 4. 오토 레이아웃 (1)  (0) 2021.08.05
[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 2. 애플리케이션 만들기 (2)  (0) 2021.08.04
[iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 애플리케이션 만들기 (1)  (0) 2021.08.04
[iOS 프로그래밍을 위한 스위프트 기초] Ch3. 오류처리 및 고차함수 - 29. 고차함수  (0) 2021.08.01
    'iOS/Swift' 카테고리의 다른 글
    • [iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 5. iOS의 View 체계
    • [iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 4. 오토 레이아웃 (1)
    • [iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 2. 애플리케이션 만들기 (2)
    • [iOS 앱 프로그래밍] 음원 재생기 애플리케이션 - 애플리케이션 만들기 (1)
    itisjustK
    itisjustK

    티스토리툴바