-
Notifications
You must be signed in to change notification settings - Fork 6
Combine
S004_강현준 edited this page Nov 29, 2021
·
2 revisions
Combine
- Swift는 Notification Center, escaping closure, GCD 등 다양한 비동기 처리 API를 지원하지만, 이렇게 다양한 API를 이곳저곳에 사용하면 디버깅 과정에서의
추적과 수정이 어려워진다는 단점
이 존재합니다. - Combine은 비동기 처리를
publisher
라는 동일한 인터페이스를 사용해서 구현하기 때문에재사용이 편리
하고 코드의구조도 깔끔
해진다고 판단하여 사용하였습니다. - 또한 Combine을 사용하면 발행자가 구독자를 모르게 하여
의존성을 제거
할 수 있습니다. - Reactive 프로그래밍을 위한 다른 framework들도 고민하였지만 Combine이
built-in-framework
이기 때문에 성능과 안정성 면에서 좋다고 판단하여 사용하기로 결정하였습니다.
Combine
- 변화를 발행하기 원하는 속성에
@Published
PropertyWrapper를 이용하여 Publisher로 만듭니다. - ViewModel에서 변화가 감지되기 원하는 속성을 Publisher로 만들고 ViewController에서 해당 변화
sink
함수를 이용해 감지하고 원하는 동작을 하도록 구현하였습니다. - 뿐만 아니라 각 ViewModel에
Error
프로퍼티를 생성하고 Publisher로 만들어 Error 발생 시 ViewController에서 Error를 감지해 처리하도록 구현하였습니다.
S004_강현준 | S012_김우재 | S033_유한준 | S047_이청수 |
---|---|---|---|
@mandeuk26 | @kimwj9792 | @hj56775 | @bestowing |
2주차
3주차
4주차
5주차
6주차
더보기
- CollectionView + Diffable & Compositional 사용 이유
- App Target iOS13+ 인 이유
- Storyboard를 채택한 이유
- 뒤로가기 버튼에 특정 액션을 넣으면 Swipe back이 되지 않는 문제
- 메모리 누수 발생 문제
- 맵뷰가 주기적으로 리프레쉬되는 문제
- UserLocation 화면을 빠져나와도 업데이트 해야하는 문제
- Compositional Layout의 estimated가 정상 동작하지 않는 문제
- Keyboard에 의해 TextField가 가려지는 문제
- 사용자가 권한을 거절했을때 생길 수 있는 문제
- 이미지를 불러올때 프레임 드랍이 발생하는 문제
- PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제
- 관광명소 검색화면에서 빠르게 스크롤 시 적합한 관광명소 이미지를 보여주지 못하는 문제
- 무한스크롤 캘린더 구현과 VoiceOver 적용시 문제