면접질문은 https://github.com/JeaSungLEE/iOSInterviewquestions 참고
Frame: SuperView의 좌표시스템 안에서 View의 위치와 크기를 나타낸다.
Bounds: 자신만의 좌표시스템 안에서 View의 위치와 크기를 나타낸다.
superView을 기준으로 좌표가 찍힌다.
자신만의 좌표시스템이 있기 때문에 superView,subView가 각자의 0,0을 갖고있다.
-> Bound의 위치좌표를 바꾸면 해당위치에서 view를 다시 그린다.
-> 스크롤 뷰를 사용할 때에 Bounds x축을 양수값으로 바꾸면 스크롤 뷰가 이동하는게 아니라 그 안의 객체들이 움직이는 것처럼 보인다!
시뮬레이터 사용시
API
etc
UIViewController
-> UIKit 앱의 뷰 계층구조를 관리하는 객체이다.
주요역할로는
1. 기본 데이터의 변경에 대한 응답으로 뷰 콘텐츠 업데이트
2. 뷰의 사용자 상호작용에 응답
3. 뷰 크기조정 및 전체 인터페이스의 레이아웃 관리
4. 앱에서 다른 뷰 컨트롤러를 포함한 다른 객체와 조정
어플리케이션을 디바이스에 설치 시, 디바이스의 운영체제와 앱스토어가 특성에 맞게 설치되게하는 설치 최적화 기술을 의미한다.
1. 슬라이싱
- 앱이 지원하는 여러 디바이스에 대해 각 조각 애플리케이션 번들 생성, 해당 디바이스에 가장 적합한 조각을 전달하는 기술
2. 비트코드
- 기계언어로 번역되기 이전 단계의 코드로 업로드하면, 애플리케이션을 재컴파일하여 앱 바이너리를 생성. 요기서 최적화를 할 수 있다.
3. 주문형 리소스
foreground mode
not Running : 앱이 실행되지 않은 상태
Foreground : 앱이 실행되어 클라이언트에게 보여지는 상태
Suspened : 앱이 백그라운드에 있고 실행되는 코드가 없는 상태
(앱은 여전히 메모리에 존재, suspend 상태가 될때의 정보를 저장, cpu 배터리 소모하지않는다)
UI의 상태변화를 메소드들을 통해 application에게 알리는 역할
기존 appdelegate 메소드들과 1:1 맵핑이 거의 가능하다.
window의 개념이 scene 개념으로 대체되었다.
앱에서는 2개이상의 scene이 존재 할 수 있으며 이제 Scene은 앱의 사용자 인터페이스 및 콘텐츠 배경으로 사용한다.
UIKit
Cocoa Touch framework에 포함되어있는 프레임워크 중 하나
String, Int 등 원시데이터타입, 컬렉션타입, 운영체제 서비스를 이용해 앱의 기본적인 기능을 관리하는 프레임워크
ios 개발환경, 애플리케이션의 다양한 기능구현에 필요한 여러 개발도구를 포함하는 최상위 레벨 프래임워크
API와 비슷한 개념으로 어떤 기능에 관련된 함수들을 모아놓은 것
In-active는 앱이 실행중이지만 이벤트를 받지 않는 상태이다.
보통 이 상태에 잠시 머물렀다가 다른 상태로 변경된다.
앱의 실행 : Not-Running -> InActive -> Active
백그라운드로 이동: Active -> InActive -> Background(-Suspended)
포그라운드로 이동: Background -> InActive -> Active