UIView 알아보기
ios 면접 질문 2022. 7. 10. 10:48

UIView 애플 공식문서에 따르면, UIView 는 다음과 같은 역할을 한다. 내부 bounds rectangle 에 content 를 그리고, content 와의 상호작용을 관리한다. 복잡한 content 를 그리기 위해 UIView 를 subclassing 할 수도 있다. Drawing and Animation Core Graphic 또는 UIKit 프레임워크를 사용해 내부 직사각형 영역에 콘텐츠를 그린다. 특정 view properties (frame, bounds, radius, rotate Angle) 등을 animate 를 사용해 새로운 값으로 변경할 수 있다. (Animation 의 정의 -> 일정한 시간 동안 값을 새로운 값으로 변경시키는 것) Layout and subview manag..

Adapter Pattern (swift)
디자인 패턴 2022. 7. 9. 23:19

Adapter Pattern 아이폰을 생각해보자. 지금의 아이폰은 오디오 단자가 따로 없으며, 만약 유선 헤드폰을 연결하려고 할 경우 유선 헤드폰이 라이트닝 단자를 가지고 있어야 한다. 그러나 상당 수의 유선 헤드폰은 라이트닝 단자를 가지고 있지않다. 이런 상황을 해결하기 위해 오디오 단자를 입력으로 받아 라이트닝 단자로 출력해주는 어댑터란 제품이 존재하며, 서로 호환되지 않는 두 개의 단자를 연결해주는 역할을 한다. 소프트웨어에서의 Adpater Pattern 도 마찬가지로 위와 같은 상황을 해결하기 위해서 고안된 디자인 패턴이다. 예시와 함께 이해해보자. Authenticate Service 현재 어떤 애플리케이션을 개발 중이고, 이 애플리케이션은 유저 인증을 위해 Firebase Authentica..

Strategy Pattern
디자인 패턴 2022. 7. 4. 23:44

Strategy Pattern Strategy Pattern 은 런타임 동안 계속해서 변경될 수 있는 객체들의 인터페이스를 정의하는 디자인 패턴이다. Strategy Pattern 의 클래스 다이어그램을 살펴보자 Object using a strategy - iOS 개발을 진행할 때면 주로 View Controller 가 된다. Strategy Protoocl, 즉 전략을 직접 사용하는 객체가 된다. Strategy Protocol - 프로토콜을 준수하는 모든 객체가 구현해야 할 메소드, 혹은 프로퍼티를 정의한다. Strategies - Strategy Protocol 을 준수한 모든 Concrete object (구현체) 언제 Strategy Pattern 을 사용해야 할까? 두 개 혹은 그 이상의 같..

Struct 와 Class, Enum 의 차이점
ios 면접 질문 2022. 7. 3. 18:54

개요 Swift 에서 지원하는 자료형인 class 와 struct 의 차이점에 대해서 알아보자. 또한 enum 에 대해서도 알아보자. 객체지향 언어를 다루는 많은 개발자들은 이미 class 의 개념에 대해서 익숙하다. 하지만 필자는 struct 라는 자료형을 swift 에서 처음으로 접해봤는데 (c언어를 제외하고), 이 두 가지 타입의 차이점이 극명하고 장단점이 명확하다보니, 다양한 상황에서 적절한 타입을 사용하는 것이 성능 개선을 위해 필요한 능력이 되었다. Class, Struct 의 공통점 관련있는 값을 저장하거나 계산할 수 있는 프로퍼티를 선언할 수 있다. 함수를 선언할 수 있다. 내부에 선언된 프로퍼티나 메소드에 (타입이름).(프로퍼티 이름) 과 같이 . 을 사용해 접근할 수 있다. Protoc..

실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.
ios 면접 질문 2022. 7. 3. 16:18

Xcode의 시뮬레이터 Xcode 의 시뮬레이터를 활용해 개발을 진행하는 경우, 시뮬레이터는 Mac 의 자원을 소비하기 때문에 필연적으로 실제 ios 디바이스보다 성능이 뛰어나다. 또한 실제 기기에서 가지고 있는 각종 하드웨어 센서들을 사용할 수 없다. 지금부터 실제 디바이스가 없는 경우 어떤 것들이 불가능한지 알아보자 하드웨어 가속도 센서, 가압계 센서, 주변광 센서, GPS 센서 기능 사용 불가 실제 디바이스에만 있는 마이크와 카메라 사용 불가 전화기능 사용 불가 API 푸시 알림 받기, 보내기를 지원하지 않음 사진, 연락처, 캘린더에 액세스하기 위해 개인 정보 보호 알림을 지원하지 않음 Handoff 기능을 지원하지 않음 -> 동일한 아이클라우드 계정으로 로그인한 디바이스 간 작업을 이어서 계속할 ..

Notification Center - Publisher
IOS 개발일지 2022. 5. 24. 22:45

NotificationCenter.Publisher name publish 할 Notification 의 이름 object 위 name 을 가지는 Notification 을 post 할 object, 만약 nil 이면, 해당 이름을 가지는 모든 노티피케이션을 sender 에 상관없이 publish 한다. Return Value Notification 을 publish 하는 Publisher 를 리턴한다. Notification Publisher 예시 UITextField 는 기본적으로 text 프로퍼티가 바뀔 때마다, UITextField.textDidChangeNotification 을 post 한다. 즉 Notification Center 를 통해 해당 텍스트 변경 이벤트를 구독하는 옵저버를 만들거나..

Notification Center - 옵저버 등록과 제거
IOS 개발일지 2022. 5. 24. 21:18

var observer: NSObjectProtocol? observer = NotificationCenter.default.addObserver(forName: UIApplication.userDidTakeScreenshotNotification, object: nil, queue: nil) { notification in print("user take screenshot!") NotificationCenter.default.removeObserver(observer!) } Notification Center 등록된 옵저버들에게 노티피케이션을 보낼 수 있는 클래스이다. 모든 애플리케이션은 default Notification Center 를 가지고 있다. 노티피케이션을 그룹화하기 위해 새로운 Notif..

UIKit- Custom View 생성 & 재활용
UIKit 2022. 5. 21. 22:40

개요 복잡한 TableView 의 Cell 을 구성하거나, 여러 곳에서 활용하는 복잡한 뷰를 구성할 때, 계속해서 해당 뷰를 스토리보드나 코드를 통해 작성하는 것은 매우 귀찮은 작업이다. SwiftUI 를 활용하면 아주 쉽게 재활용할 수 있는 View 를 구성 가능하다. UIKit 에선 어떻게 Custom View 를 사용해 적절히 재활용을 하고 코드를 줄일 수 있을까? xib 파일을 활용해 Custom View 를 생성해보자. 1. Xib를 활용한 방법 Xib 는 Xcode Interface Builder 의 줄임말으로, Storyboard 와 똑같이 캔버스를 활용해 View 를 구성 가능하다. 먼저 새로운 파일을 View 템플릿을 활용해 생성하자. 그러면 xib 확장자를 가진 파일이 생성된 것을 확인..