https://github.com/uber/RIBs/wiki What are RIBs For? 우버에서 만든 크로스 플랫폼 아키텍처 프레임워크로, 복잡한 상태를 관리하는 큰 모바일 앱을 위해 만들어집니다. 크로스플랫폼 지원 글로벌 state 최소화 테스트용이, 독립성 개발자 생산성을 위한 Tooling Open-Closed Principle 구조화된 비지니스 로직 명시적인 계약(?) Parts of a Rib VIPER아키텍처와 비슷 Interactor 비지니스 로직을 포함 Rx 구독을 하는 곳이며, 상태 변화를 만들고, 데이터를 어디에 저장할지 정함, 어떤 RIBs가 children으로 붙을지 정합니다. 인터렉터가 수행하는 모든 작업은 해당 라이프사이클로 제한되어야합니다. 인터렉터가 살아있을 때만 비지..
Operation 관련 이전 포스팅 https://baechukim.tistory.com/36 [iOS] Operation 알아보기 https://developer.apple.com/documentation/foundation/operation Apple Developer Documentation developer.apple.com Operation 싱글 tast와 관련된 코드와 데이터를 나타내는 추상 클래스 Overview Operation.. baechukim.tistory.com Operation 작업을 객체화 -> 재사용의 이점 기본적으로 동기적(sync) 인스턴스화 -> 한번만 실행 기능 취소 순서지정 상태 체크 (isReady, isExecuting, isCancelled, isFinished..
iOS 15에서 버튼이 새롭게 바뀌었는데 예시를 들면서 살펴보겠습니다. 일단 간단하게 버튼을 만들어줍니다. private let anyButton: UIButton = { let button = UIButton() // 1) var attString = AttributedString("AnyButton") attString.font = .systemFont(ofSize: 16, weight: .bold) attString.foregroundColor = .systemPink // 2) var configuration = UIButton.Configuration.filled() configuration.attributedTitle = attString configuration.image = UIImage(..
코드베이스로 UI를 만들다가 버튼이 안먹히는 케이스가 있어서 잘 모르던 부분을 공유합니다. 화면은 다음과 같습니다. 여기서 C버튼이 제대로 안눌리는 문제가 있었는데요. 회색뷰 위에 노란 뷰를 만들고 노란뷰 안에 a b c 버튼을 추가했습니다. 사실 노란뷰가 색이 없어서 안보이는상태였는데요. 노란뷰에 addSubview를해서 C버튼이 그려진상태인데 C의 아랫부분은 노란뷰에 들어가지 않습니다. 아래 코드를 통해서 터치 이벤트를 확인할 수 있는데요. override func touchesBegan(_ touches: Set, with event: UIEvent?) { print(#function) } C버튼의 아랫부분을 터치하면 touchesBegan(_:with:) 가 출력됩니다. 버튼이 아니라 Custom..