[TIL / 25.10.11] Combine,, 실습과 함께 훑어봤어요 2
·
iOS/Swift
1. 목표https://jsonplaceholder.typicode.com/users유명한 open api 중 하나인 해당 주소에서 얻어온 users를 테이블뷰에 띄우는 실습을 해봤다. 제대로 구현이 된다면 아래와 같은 결과가 나올 것이다.2. Presentation Layer 우선, 프로젝트 내 아키텍처는 새로 들어가는 프로젝트와 일부 유사하게 clean architecture 기반으로 가져가고 그 외 네트워크는 urlsession 사용한다. 전체적으로 퍼스트파티 위주로 구현한다. 우선 View에 대해선 반응형을 쓰지 않을때와 같았다.Rx를 썼을 때엔 RxCocoa를 사용해 UI 컴포넌트에 대해 여러 기능들을 제공받았는데, Combine엔 RxCocoa같은 게 없다고 한다..!사실 있는데 아직 처음 공..
[TIL / 25.10.11] Combine,, 실습과 함께 훑어봤어요 1
·
iOS/Swift
새 프로젝트에서 Combine을 도입해보기로 결정했기 때문에, 마침 배워보고 싶던 부분이라 공부해봤어요반응형 프로그래밍을 왜 쓰는건지 다시 되짚어보고,, 기존 RxSwift할 때와 어떻게 다른지 중심으로 보고 간단한 open api 받아와서 tableView에 바인딩하는거까지 해보겠습니다~ 1. 반응형 프로그래밍(Reactive Programming)반응형 프로그래밍은 값의 변화(데이터, 이벤트 스트림)가 마치 데이터 흐름처럼 연결/구독되고, 변화가 생길 때마다 자동으로 반응이 흘러가는 것. 비동기들은 기본적으로 예측 어려운 시점에 발생(입력, 네트워킹, 타이머, 센서 등)하기에, 많은 이벤트, 콜백, 비동기 작업을 하나의 Stream으로 간단히 체인/구독해서 관리하려는 개념이다. 퍼스트 파티 기준으로는..
[25.06.24] MOUP 트러블슈팅 - Listener와 Rx의 timeout
·
iOS/Swift
1. 문제 상황홈 내 테이블뷰에 들어갈 데이터를 불러오는 과정에서 combineLatest를 호출한다.extension HomeViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { guard let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: HomeHeaderView.identifier) as? HomeHeaderView else { return UIView() } Observable...
[TIL / 25.05.08] RxSwift.. 처음 공부해볼게요 1
·
iOS/Swift
RxSwift란?RxSwift는 Swift에서 비동기 이벤트를 선언형으로 처리할 수 있게 해주는 프레임워크.쉽게 말해, 값의 변화와 비동기 흐름을 스트림처럼 다룰 수 있게 해준다. RxSwift Github에선 Reactive Programming in Swift라고 나와 있는데,, 그게 뭐신디요; 반응형 프로그래밍 (Reactive Programming) 반응형 프로그래밍이란, 데이터의 흐름 및 변경사항을 전파하는 데 중점을 둔 프로그래밍 패러다임.이 패러다임을 사용할 경우, 주변 환경 / 데이터에 변화가 생길 때 연결된 실행 모델들이 이 이벤트를 받아 동작하도록 설계하는 방식 a = 10, b = 20이고, c = a + b일 때 c는 30이 될테고 그 뒤에 a를 20을 하던 100000을 하던 c..