본문 바로가기

iOS121

mutating 정의 - 스위프트에서 클래스는 참조 타입이고 구조체와 열거형은 값 타입입니다. - 값 타입의 속성은 기본적으로 인스턴스 메서드 내에서 수정할 수 없습니다. - 값 타입의 속성을 수정하기 위한 목적으로 mutating 키워드를 사용합니다. 예제 - 인스턴스 메서드에서 mutating 키워드를 사용해야 합니다. - mutating 키워드를 사용하지 않는다면, error가 발생합니다. struct mutatingTest { var x = 0.0, y = 0.0 mutating func TestOne(x testX: Double, y testY: Double){ print("testX: ",x) print("testY: ",y) x += testX print("testX: ",x) y += testY print.. 2022. 3. 17.
App Bundle Bundle? - 실행 가능한 코드와 관련 리소스(이미지, 사운드, 등)를 한 공간에 묶는 파일 시스템에 있는 디렉터리입니다. - iOS나 OS X 환경에서는 애플리케이션, 프레임워크, 플러그인 그리고 다른 타입의 소프트웨어들이 번들이라고 할 수 있습니다. - 즉, 번들이란 실행가능한 코드와 코드에 의해 사용되는 리소스를 갖는 standardized, hierarchical 디렉터리 구조입니다. Application Bundles - Application Bundles은 개발자에 의해 생성되는 가장 흔한 번들입니다. - 앱 번들은 앱을 성공적으로 실행시키기 위한 모든 것을 저장합니다. Application Bundle의 file 유형 Info.plist file : (필수) 응용 프로그램에 대한 구성 정.. 2022. 3. 16.
UIWindow 정의 - 사용자 인터페이스에 배경을 제공하고, 중요한 이벤트 처리 행동을 제공하는 객체입니다. - Windows는 자신의 형태(시각적 모습)을 가지고 있지 않지만, 앱 View의 프레젠테이션에 중요합니다. - 스크린에 나타나는 모든 View는 Window로 묶여 있으며, 각 Window는 앱의 다른 View와 독립적입니다. - Window는 Viewcontroller를 사용하여 방향 변경을 구현하고, 앱 작동의 기본 요소인 다른 많은 작업을 수행합니다. - Windwos는 앱의 기본요소이지만, 코드에서 최소한의 방식으로 상호작용합니다. - UIKit은 대부분 Window 관련된 상호작용을 처리하며, 필요에 따라 많은 객체와 동작하여 많은 앱의 행동을 구현합니다. - 그러나 다음 조건을 수행한 경우에만 W.. 2022. 3. 15.
KVO [ Key Value Observing ] 정의 - A객체에서 B객체의 키의 값이 변화됨을 감지할 수 있는 패턴입니다. - 객체의 프로퍼티의 변경사항을 다른 객체에 알리기 위해 사용하는 프로그래밍 패턴입니다. - 객체와 객체 사이의 관계를 다룰 때 적합합니다. - 메서드나 다른 액션에서 나타나는 것이 아닌, 프로퍼티의 상태에서 반응하는 형태입니다. 예제 - NSObject를 상속받은 SomeClass 클래스 정의합니다. - value라는 프로퍼티 앞에 dynamic키워드 사용해 dynamic dispatch를 활성화시킵니다. - 옵저버를 넣기 위한 observe( ) 메서드를 사용합니다. - 해당 오브젝트에서 키패스로 지정된 프로퍼티의 값이 바뀌면 클로져가 호출됩니다. - observe( ) 명령으로 someObject의 value 프로퍼티의 값.. 2022. 3. 14.
tableView, collectionView 테이블 뷰 [ tableView ] - 단일 열에 배열된 행을 사용해 데이터를 표시하는 뷰입니다. - 아이폰 연락처 목록의 plain과 아이폰 설정 앱 목록인 grouped 두 가지 스타일이 있습니다. - 테이블 뷰를 사용하려면 datasource, delegate가 필요합니다. datasource : 테이블 뷰가 테이블을 만들 때 필요한 정보를 제공하고, 테이블 행의 추가/삭제/재 정렬할 때 데이터 모델을 관리합니다. delegate : 화면에 보이는 모습과 행동을 담당합니다. 특징 UIScrollView를 상속 받고 있다. 목록을 구현할 때 사용하며, 수직 스크롤만 가능하다. 테이블의 개별 항목을 구성하는 cell은 UITableViewCell이다. indexPath값을 통해 cell을 구분한다. 여.. 2022. 3. 12.
앱 시닝 [ App thinning ] 정의 - 애플리케이션이 디바이스에 설치될 때, 앱 스토어와 운영체제가 디바이스에 특성에 맞도록 설치하는 설치 최적화 기술 - 앱의 크기를 줄이기 위해 사용하며 슬라이싱(slicing), 비트코드(bitcode), 주문형 리소스(on-demand resource) 세 가지 프로세스 중 하나 또는 조합하여 사용합니다. 슬라이싱 [ slicing ] - 앱이 지원하는 여러 디바이스에 대해 각각 조각 애플리케이션 번들을 생성하고, 해당 디바이스에 가장 적합한 조각을 전달하는 기술입니다. - 개발자가 App store connect에 업로드하면, 앱 스토어에서 디바이스 특성에 따라 다양한 버전의 조각들을 생성합니다. - 그리고 사용자가 그 조각 중에서 가장 알맞은 조각(app variant)을 다운로드하는 것입니.. 2022. 3. 11.