UserDefaults
간단한 데이터를 저장
하는데 사용되는 인터페이스
- 주로 앱 설정, 사용자의 선호도, 텍스트 필드의 마지막 값 같은 소량의 데이터를 저장하는 데 사용
- 휘발성이 아닌
영구적인 저장소
로, 앱을 종료하거나 기기를 재부팅해도 저장된 데이터가 사라지지 않음
- 싱글톤 인스턴스로 사용
데이터 형태
문자열(String)
: 텍스트 데이터를 저장 ex) 사용자 이름, 이메일 주소 등 NSString
정수형(Int)
: 정수 데이터를 저장 ex) 나이, 숫자 등 NSNumber
부동소수점형(Float, Double)
: 실수 데이터를 저장 ex) 키, 몸무게 등 NSNumber
불형(Bool)
: 참(True) 또는 거짓(False) 값을 저장 ex) 알림 활성화 여부, 소리 재생 여부 등 NSNumber
날짜(Date)
: 특정 날짜와 시간 정보를 저장 ex) 생일, 이벤트 일정 저장 NSDate
배열(Array)
: 여러 데이터를 모아서 저장할 수 있는 배열 형태로 저장 ex) 사용자가 선택한 항목들의 목록 등 NSArray
사전(Dictionary)
: 키-값 쌍으로 구성된 데이터를 저장 ex) 사용자의 프로필 정보를 저장할 때, 각 속성에 대한 키와 값을 저장 NSDictionary
저장하기
let defaults = UserDefaults.standard
defaults.set(25, forKey: "age")
defaults.set(true, forKey: "useFaceID")
defaults.set(CGFloat.pi, forKey: "pi")
불러오기
let defaults = UserDefaults.standard
let age = defaults.integer(forKey: "age")
let useFaceID = defaults.bool(forKey: "useFaceID")
let pi = defaults.float(forKey: "pi")
Dependency
- 소프트웨어 개발 및 프로그래밍에서 광범위하게 사용되는 용어
- 한 요소가 다른 요소에 의존하거나 다른 요소가 필요로 하는 상태를 나타냄
- 외부 라이브러리나 프레임워크를 사용할 때 의존성이 발생
- 의존성 관리 도구를 사용하여 협업 및 생산성 증대
라이브러리 / 프레임워크
라이브러리
- 프로그램에서 재사용이 가능한 코드 조각
- 특정 기능을 수행하는 함수나 클래스 모음
프레임워크
- 앱 개발을 위한 기본 구조를 제공하는 라이브러리 집합
- UIKit 프레임워크는 iOS 앱의 UI를 구현하는데 필요한 클래스와 함수를 제공
모듈
- 프레임워크와 비슷한 의미
- 특정 기능을 수행하기 위한 코드 조각
- 하나 이상의 파일로 이루어져 있음
많이 사용되는 라이브러리
Alamofire
: Swift를 위한 HTTP 네트워킹 라이브러리. RESTful API 호출을 용이하게 해줌
SwiftJSON
: Swift에서 JSON 데이터를 다루기 위한 간편하고 빠른 라이브러리
Kingfisher
: Swift에서 웹 기반 이미지를 다운로드하고 캐시하는 데 사용되는 라이브러리
SDWebImage
: iOS에서 비동기로 이미지를 다운로드하고 캐시하는 데 사용되는 라이브러리
SnapKit
: Swift에서 Auto Layout 제약 조건을 간편하게 추가하기 위한 DSL
Realm
: 모바일 데이터베이스로, SQLite나 Core Data 대신 사용되는 빠르고 간단한 대안
RxSwift
: Swift에서 반응형 프로그래밍을 위한 라이브러리. Observable 시퀀스와 함수형 연산자를 제공