Neph's Blog

「Neph의 iOS 공부일지」

escaping 클로저

Escaping Closure를 사용하는 방법 1 func getImages(completionHandler: @escaping (Result<UIImage, Error>) -> Void) 클로저의 타입 앞에 @escaping 키워드를 붙여주면 해당 클로저는 escaping closure로 사용할 수 있다. Escaping vs...

App Bundle의 구조와 역할

Bundle vs Package 번들 알려진 것들로 이루어진 디렉토리, 실행 가능한 코드와 그 코드가 사용하는 자원들을 포함하고 있다. 코드와 자원을 모으는 구조를 제공하여 개발자 경험을 향상시키는 것을 가장 우선시 하는데, 이 구조는 코드나 자원의 예측 가능한 로딩뿐만 아니라 지역화 같은 시스템 차원의 기능도 허용한다. 번들은 크게 앱 번들,...

UIViewController

UIViewController의 역할 View Controller는 앱 내부 구조의 기반으로 모든 앱은 최소 하나 이상의 뷰컨트롤러를 가진다. 뷰컨트롤러는 UI, 인터페이스, 데이터간의 상호작용을 맡으며 UI간의 전환에도 도움을 준다. View의 계층 관리 각각의 View Controller는 View의 계층을 관리한다. 이 계층의 가장 근원이 ...

App Life Cycle

App Life Cycle 앱의 시작 iOS는 C언어 기반을 토대로 작동하기 때문에 앱이 시작되면 가장 처음으로 main 함수가 불린다. main 함수는 UIKit framework이 관리하며 UIApplication 객체를 생성한다. 이를 통해 개발자는 앱의 실행에 부분적으로 관여할 수 있다. Main Run Loop 이벤트의 처리 과정은...

접근 제어자의 종류

Module이란? 접근제어에 대해 이해하기 위해서는 모듈의 개념에 대해 알아야한다. 모듈은 코드의 묶음 단위로 프레임워크, 라이브러리, 어플리케이션처럼 배포할 코드들의 묶음을 나타낸다. 즉, 하나의 프레임워크는 하나의 모듈이고 일반적으로 만드는 프로젝트도 역시 하나의 모듈이다. import를 통해 모듈을 사용할 수 있다. 프로젝트 하위에 위치한 t...

UIWindow의 역할

UIWindow란? UIWindow는 UIView의 하위 클래스로 앱의 배경과 이벤트를 View로 전달하는 객체이다. 눈에 보이는 내용은 없지만 앱의 View에 기본 컨테이너를 제공하여 하며 rootViewController에서 관리하는 하나 이상의 View를 보여주는 역할을 한다. 또한 터치 이벤트를 View와 다른 어플리케이션 객체들에게 전달...

하나의 ViewController에 여러개의 TableView 쓰기

Table View 우선 테이블뷰를 사용하기 위해서는 아래의 작업들이 필요하다. cell 등록 (register) datasource, delegate 지정 cell register는 각각의 tableView 마다 register를 해주면 되기에 문제가 되지 않는다. (스토리보드를 사용한다면 cell을 자동으로 등록해주기 때문에 reg...

스토리보드의 장단점

스토리보드의 장점 빠른 초기화 시각화 낮은 진입장벽 개발 환경에서 화면이 직접 눈에 보인다는게 최대 장점이다. 아무리 가독성 좋은 코드로 UI를 만든다한들 직접 실행해보지 않고도 화면을 정확하게 떠올리는 것은 쉽지않다. 하지만 스토리보드를 통해서는 이것이 가능하다. 또한 View를 만드는 시간이 적게 걸린다고 한다. (사실 이건 잘...

Cocoa Framework

프레임워크는 vs 라이브러리 “소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것” by Ralph Johnson 프레임워크는는 어떤 틀이 결정되어있고 그 틀에 따라 개발을 진행하게 되지만 라이브러리는 원하는 부분을 선택해서 사용한다는 느낌이 강하다. 라이브러리는 필요...

Strong, Weak에 대해 알아보자

Reference Count Strong과 Weak에 대해 알아보려면 우선 Reference Count에 대한 지식이 있어야한다. Swift에서는 Reference Counting을 통해 인스턴스가 살아있음을 보장한다. Reference Count가 올라가 있다는 것은 이것을 사용하고 있는 다른 인스턴스가 있다는 것이고, 이런 경우에 메모리에서 해...