본문 바로가기

분류 전체보기

(19)
스토리보드를 활용한 프로젝트에서의 Dependency Injection 오늘 정리해 볼 내용은 인터페이스 빌더(xib)를 활용하지 않고, 스토리보드를 사용한 프로젝트에서의 의존성 주입(Dependency Injection)에 대해서 정리해보자 한다. 의존성 주입은 크게 3가지 방식이 있고, 다음과 같다. 1. property를 활용하는 방식 2. Initializer를 활용하는 방식 3. method를 활용하는 방식 3번의 방식은 개인적으로 가독성이 떨어진다고 생각하여 주로 1번과 2번의 방식을 사용하고 있으며, 그 중에서도 2번 방식을 즐겨 사용하여 개발하였다. 최근 들어간 프로젝트에서 그간의 프로젝트에서는 인터페이스 빌더(xib)를 통해 개발하였다면, 이번 프로젝트에서는 스토리보드를 활용하여 개발이 되어있어서 이 부분에서 다른 ViewController를 호출하는 방식과..
iOS 면접준비 #3 보호되어 있는 글입니다.
면접 실제 받았던 질문 정리 + 공부 Swift의 장점 안정성 Safe 스위프트는 안전한 프로그래밍을 지향하기 때문에 프로그래머가 저지를 수 있는 실수를 엄격한 문법을 통하여 버그를 비연에 방지하고자 노력한다. 때로는 강제적이라고 느껴질 수 있지만 문법적 제재는 실수를 줄이는데 도움이 된다. 옵셔널이라는 기능을 비롯하여 guard구문, 오류처리, 강력한 타입통제 등을 통해 안전한 프로그래밍을 구현 신속성 Fast 스위프트는 C언어를 기반으로 한 C, C++, Objective- C와 같은 프로그래밍 언어를 대체하려는 목적으로 개발되었습니다 애초에 설계를 성능을 최대한 C언어에 가깝게 맞추려고 했습니다 실행속도의 최적화 뿐만 아니라 컴파일러의 지속된 개량을 통해 더 빠른 컴파일 성능을 구현 더 나은 표현성 Expressive 스위프트는 그간 ..
RIBs + ReactorKit을 활용한 RIBs 노드 中 ViewController 이전 포스팅인 " RIBs + ReactorKit을 활용한 RIBs 노드 中 Builder ", " RIBs + ReactorKit을 활용한 RIBs 노드 中 Router ", " RIBs + ReactorKit을 활용한 RIBs 노드 中 Interactor & Reactor "를 먼저 살펴보고 와야 이해가 됩니다. 5. ViewController import RIBs import RxSwift import UIKit import ReactorKit protocol SamplePresentableListener: AnyObject { func requestToInteractor() // reactor var action: ActionSubject { get } var currentState: Sample..
RIBs + ReactorKit을 활용한 RIBs 노드 中 Interactor & Reactor 이전 포스팅인 " RIBs + ReactorKit을 활용한 RIBs 노드 中 Builder ", " RIBs + ReactorKit을 활용한 RIBs 노드 中 Router "를 먼저 살펴보고 와야 이해가 됩니다. 3. Interactor import RIBs import RxSwift import ReactorKit protocol SampleRouting: ViewableRouting { } protocol SamplePresentable: BasePresentable { var listener: SamplePresentableListener? { get set } } protocol SampleListener: AnyObject { func requestToInteractor() } final cla..
RIBs + ReactorKit을 활용한 RIBs 노드 中 Router 이전 포스팅인 " RIBs + ReactorKit을 활용한 RIBs 노드 中 Builder " 를 먼저 살펴보고 와야 이해가 됩니다. 해당 포스팅을 요약하자면 다음과 같습니다. RIBs란 RIBs가 하나의 Node이고 RIBs Node의 트리 구조를 만들어 나가며(트리에 RIBs 노드를 attach, detach하면서), 앱을 설계해가는 프레임워크(?)라는 이해를 토대로 Builder에 대해서 설명했습니다. 이번엔 Router입니다. 2. Router import RIBs protocol SampleInteractable: Interactable { var router: SampleRouting? { get set } var listener: SampleListener? { get set } } prot..
iOS 준비#2 (~22.01) 보호되어 있는 글입니다.
iOS 준비#1 (~22.01) 보호되어 있는 글입니다.
RxSwift 를 통한 UITableView 사용법에 대한 정리 프로젝트를 진행하면서 네이티브 화면을 구성하며 참 많이 사용하는 것들이 UITableView, UICollectionView 들인것 같다. 하지만 아직 UITableView, UICollectionView 의 기본적인 사용법이야 알지만, 깊게 이해하고 있는것 같지가 않아, 정리를 하며 이해해나가고자 해당 포스팅을 계획하였다. 우선 UITableView 부터! RxSwift 와 함께 사용했을때, 그리고 Section의 갯수를 1개로 고정 OR Section's Row 수를 1개로 고정할 경우 사용하기는 쉬우나, Section의 갯수와 Section 별 Row 의 갯수가 유동적으로 변한다고 할때도 사용할 수 있어야 할것이다. 우선 SampleViewController 가 정의되어 있고, 해당 ViewCont..
Subject, Relay 에 대한 활용 및 이해도 정리 오늘은 프로젝트에서 사용했던, RxSwift 에서 PublishRelay, PublishSubject, BehaviorRelay, BehaviorSubject 에 관한 내용을 정리해보고자 한다. 관련 내용들은 진행했던 프로젝트에서 cmd+C,V 하여 사용했던 것을 토대로 개인적인 이해도를 정리하였으며, 관련 전문성은 현재로선 떨어지는 부분이지만 지금까지 이해한 정도를 정리하고, 추후 보완해 나갈 예정이다. 우선 현재까지 이해한 정도로 정리하자면 BehaviorRelay 는 ObservableType이고 이는 ObservableConvertibleType 으로써 Observable 객체를 쉽게 들고 다니며 초기화, get, set, 변수로서 저장 용도로 사용할수 있는 클래스이다. ⇒ 결국 BehaviorS..