[패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online을 학습하면서 나오는 이론 내용과 공식 문서에서 필요한 내용을 발췌하여 정리한 글입니다.

Part2. Basic 1. 명언 생성기 앱 만들기

코코아 터치(Cocoa touch Framework)

iOS 개발환경을 구축하기 위한 최상위 프레임워크으로 터치와 관련된 어플리케이션을 개발할 때 사용하는 프레임워크이다.
일반적으로 iOS 개발을 위해 Object-C 혹은 Swift에서 상속(import) 하여 사용하는 UiKit, Foundation을 포함한 대부분의 객체들이 모두 Cocoa touch에 포함되며, 가장 많이 사용되는 프레임워크로는 UIKitFoundation으로 들수 있다.

UIKit

UIKit은 iOS 앱 개발시 사용자에게 보여질 화면: 사용자 인터페이스를 구성하고 사용자 액션과 같은 이벤트를 관리하는 프레임워크이다.

우리는 Xcode에서 ViewController를 생성하면 상단에 import UIKit이 기본적으로 명시되어 있는 것을 볼 수 있다.

이것은 ViewControllerUIViewController를 상속받는 것이고, 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: 로컬 네트워크를 위한 작업
profile
새해 목표 : 1일 1 깃, 블로그, 프로그래머스 2문제

0개의 댓글