Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- uitableview
- Observable
- UICollectionView
- uiscrollview
- clean architecture
- UITextView
- Protocol
- Xcode
- 애니메이션
- map
- Human interface guide
- swift documentation
- Clean Code
- 리팩토링
- 리펙터링
- tableView
- HIG
- 리펙토링
- 클린 코드
- ios
- rxswift
- RxCocoa
- SWIFT
- MVVM
- ribs
- swiftUI
- combine
- Refactoring
- collectionview
- 스위프트
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 번들과 패키지(Bundle, package), Framework 개념 본문
Bundle이란
- 실행 가능한 코드와 그 코드가 사용하는 자원을 포함하고 있는 디렉토리
- 가지고 있는 내용 - info.plist, assets, string 파일 등
- 프레임워크 번들은 dynamic library에서 사용하는 코드와 자원을 포함
- 모든 앱 Bundle은 앱에 대한 정보가 담긴 info.plist파일을 갖음
Package란
- Finder가 사용자에게 단일 파일로 보여주는 디렉토리
- package는 macOS에서 디렉토리를 추상화하는 방법 중 하나
- 가지고 있는 내용 - .app, .playground, .plugin 등
- Bundle Display Name: Bundle은 사용자에게 보여지는 이름과 실제 Bundle이 사용하는 File System의 이름을 따로 관리
- Finder에서 이름을 변경하는 것은 Display Name만 변경하는 것
- 대표적으로 .app이 생략된 Display Name을 사용
NSBundle이란
- Bundle에 포함된 코드와 리소스에 대한 표현
- NSBundle은 ObjectiveC를 통해 만들어진 Foundation Class이며 Bundle 디렉토리 안에 포함된 리소스에 쉽게 접근할 수 있도록 제공되는 객체
Main Bundle이란
- Bundle은 여러가지가 있지만, mainBundle은 앱이 실행되는 코드가 있는 Bundle 디렉토리에 접근할 수 있게 도와주는 bundle
- 접근
print(Bundle.main.bundleURL) // main bundle의 위치
print(Bundle.main.bundleIdentifier)
// Bundle에 있는 이미지에 접근
Bundle.main.url(forResource: "ImageName", withExtension: "jpg")
Copy Bundle Resource
- mainBundle에 들아가 있는 리소스 파일들은 빌드할 때 추가가 됨
- Xcode의 Build Phase에 존재 - "Copy Bundle Resources"
- 해당 항목에서 앱에 추가할 리소스를 결정
- 해당 항목에 없는 리소스는 Project Navigator에 추가되어 있어도 실제로 Bundle에서는 접근할 수 없음
Framewrok
- 공유자원 (dynamic library, nib 파일, 이미지 파일)을 단일 패키지 형태로 담고 있는 디렉토리
- framework는 library와 달리 리소스를 포함할 수 있고 framework을 모듈 배포에 있어서 더 많은 활용이 가능
- framework는 파일 시스템의 Bundle로 패키징되어 Core Foundation Bundle Service를 이용할 수 있음
- NSBundle class로 접근 가능
* 참고
nshipster.co.kr/bundles-and-packages/
hcn1519.github.io/articles/2019-11/framework_basic
hcn1519.github.io/articles/2018-12/bundle
'iOS 기본 (swift)' 카테고리의 다른 글
[iOS - swift] print vs NSLog (0) | 2021.02.24 |
---|---|
[iOS - swift] @discardableResult (0) | 2021.02.19 |
[iOS - swift] enumerated() 함수 (0) | 2021.02.09 |
[iOS - swift] HitTest 개념 (first responder, responder chain) (0) | 2021.02.09 |
[iOS - swift] semantic, 버튼안의 내용 정렬 (0) | 2021.02.06 |
Comments