https://github.com/uber/RIBs/wiki/iOS-Tutorial-1 Create your first RIB simple TicTacToe game using the RIBs architecture and associated tooling. 소스파일 → here. / 설치 및 오픈프로젝트 리드미 → README Goal RIB의 구성요소를 알고 어떻게 상호 작용하는지 알기 사용자의 이름을 받아서 콘솔에 출력하기 Project Structure boilerplate code에 두개의 RIBs가 포함되어 있습니다. 앱이 실행되면AppDelegate 가 Root RIB을 빌드합니다. Root RIB 은 RIBs 트리역할을 하고 필요한 경우 자식에게 컨트롤을 전달합니다. Root RIB's c..
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(..