본문 바로가기

iOS

(115)
[iOS] [Swift] UIKit Framework Swift UIKit 본 문서에는 UIKit 에 대한 기본기를 공부하며 정리한 내용을 기재하였습니다. UIKit UIKit 프레임워크는 iOS 앱의 UI 구성에 필요한 인프라를 제공합니다. 또한, 인터페이스 구현을 위한 window, view 아키텍처, 애플리케이션에 멀티 터치 및 기타 유형의 입력등을 제공하는 이벤트 처리 인프라, 사용자, 시스템 간 상호 작용을 관리하기 위한 기능을 제공합니다. 이외에도 프레임워크가 제공하는 다른 기능으로는 애니메이션, 문서, 그리기 및 인쇄, 현재 장치에 대한 정보, 텍스트 관리 및 디스플레이, 검색 지원, 접근성 지원, 앱 확장 지원 등의 관리가 있습니다. UIKit이 무엇인지 알아보았으니 주로 이용되는 클래스들에 대하여 알아보도록 하겠습니다. UILabel UIL..
[iOS] [Swift] RxCocoa 맛보기 RxCocoa 맛보기 RxCocoa는 애플 환경의 애플리케이션을 제작하기 위한 도구들을 모아놓은 Cocoa Framework를 Rx와 합친 기능을 제공하는 라이브러리입니다. RxCocoa는 RxSwift를 기반으로 만들어진 라이브러리이므로 사용하기 위해서는 CocoaPod과 같은 의존성 관리 도구에 별도로 추가해주어야 합니다. RxCocoa UI Control과 다른 SDK 클래스를 wrapping 한 커스텀 extension set iOS, tvOS, macOS 등 다양한 플랫폼에서 동작 ObserverType 과 ObservableType ObserverType: 값을 주입시킬 수 있는 타입 ObservableType: 값을 관찰할 수 있는 타입 ControlProperty Subject 와 같이 프..
[iOS] [Swift] RxSwift Operators Example Operators Example Create Operators Just just 연산자는 하나의 이벤트를 방출하는 Observable을 생성하는데 이용합니다. let disposeBag = DisposeBag() Observable.just("Hello") .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) Observable.just([1, 2, 3, 4, 5], scheduler: MainScheduler.instance) .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) /* Hello [1, 2, 3, 4, 5] */ 위 예시와 같이 just는 단 하나의 이벤트를 생성하여 방출하고자 할..
[iOS] [Swift] RxSwift Subject & Relay & Driver Subjects & Relays 이번 시간에는 Subject와 Relay 에 대하여 알아보도록 하겠습니다. 앞서 저희는 이벤트를 방출하는 Observable 과 이를 구독하여 이벤트를 처리하는 Observer에 대하여 알아보았습니다. Observable과 Observer는 역할이 확실하게 구분되어져 있습니다. Observable은 Observer와 달리 다른 Observable을 구독하지 못합니다. 마찬가지로 Observer는 다른 Observer에게 본인이 받은 이벤트를 전달하지 못하죠. 둘의 역할이 명확히 구분되어 있는 만큼 이로 인한 유연성에 대한 한계도 존재합니다. 이러한 부분에 대한 편의성을 제공하고자 나온것이 Subject 입니다. Subject는 Observable 이면서 Observer 역..
[iOS] [Swift] RxSwift Observable & Observer, Disposable Observable & Observer, Disposable 이번 시간에는 RxSwift의 기초를 보다 자세히 알아보도록 하겠습니다. 1. Observable & Observer Observable 은 이름에서 알 수 있듯, 관찰가능한 상태를 유지하며 Event를 전달합니다. 해당 Event를 Observer 관찰자에게 전달하고 이벤트를 전달받으면 이를 Observer 에서 처리합니다. 이러한 행위를 Rx에서는 구독(Subscribe) 한다고 표현하기에 Observer 를 "구독자" 라고도 부릅니다. 요즘 매우 많이 사용하는 Youtube 서비스에 빗대어 표현하자면 크리에이터가 Observable 역할을 하여 영상(이벤트)를 발행하고 해당 크리에이터를 구독하던 Observer 구독자가 영상을 시청하는 흐..
[iOS] Blur Effect in iOS Blur Effect in iOS 아이폰을 사용하다 보면 심심치 않게 Blur 효과를 확인하실 수 있습니다. 이번에는 Blur 효과 적용방법에 대해 간단히 알아보도록 하겠습니다. Setting 앱의 배경화면으로 이용할 이미지 Asset을 프로젝트에 넣어준 뒤 아래와 같이 기본 셋팅을 진행합니다. // 이미지 생성 private let imageView: UIImageView = { let imageView = UIImageView(image: UIImage(named: "background")) imageView.contentmode = .scaleAspectFill imageView.clipsToBounds = true return imageView }() override func viewDidLoad..
LLVM (Low-Level-Virtual-Machine) LLVM(Low Level Virtual Machine) 최근 LLVM 이라는 키워드에 대하여 관심을 갖게되었던 계기가 있었습니다. 오늘은 평소에 들어는 봤으나 몰랐던 LLVM에 대하여 간단하게 이게 무엇이며 어떠한 역할을 하는지 살펴보도록 하겠습니다. LLVM 은 오픈소스 컴파일러 개발용 종합 패키지라고 합니다. 이름에는 Virtual Machine이 들어가 있으나 실제로는 가상 머신과는 거의 관련이 없이 그냥 프로젝트 이름이라고 합니다. GCC 등의 기존 컴파일러들의 경우, 컴파일 과정 내부에서 코드의 파싱, 파스 트리, 기계어 변환, 코드 최적화 등 명확한 구분 없이 모놀리하게 설계되어있습니다. 이 말은 곧, 유지보수가 쉽지 않다는 의미입니다. 이러한 고질적 문제들을 해결하기 위해 LLVM 이 탄생..
[iOS] [Swift] Moya - Networking Library Moya - Networking Library 이번 시간에는 추상화 네트워킹 라이브러리 Moya에 대하여 알아보도록 하겠습니다. Moya 라이브러리는 urlSession, Alamofire를 한 번 더 감싼 통신 API입니다. Moya를 사용하면 아래와 같이 깔끔한 네트워크 레이어 구성이 가능합니다. Moya는 열거형을 이용하여 타입이 안전한 방식으로 네트워크 요청을 캡슐화하여 사용하는 것에 초점이 맞추어져 있습니다. Provider : Moya의 MoyaProvider는 모든 네트워크 서비스와 상호작용시 사용할 주요 객체입니다. 이를 초기화 할 때 Moya Target을 가지는 일반적인 객체입니다. Target : Moya Target은 일반적으로 전체 API를 의미하며 TargetType 프로토콜을 ..