apple 216

[XCTest] 🧑🏻‍💻 Xcode 기존 프로젝트에 XCTest 작성 파일 추가하기!

✅ 에러에 대해서 알아보자. 🟠 Library not loaded: @rpath/XCTest.framework/XCTest Xcode 파일을 만들 때, test를 include하지 않고 만들었다가 이후에 테스트를 해야해서 테스트 코드 파일을 만들고 돌리는데, 앱이 죽어버리는 상황이 발생. 그래서 로그 훑어 보니까 저런 에러라 어떻게 할까 찾아봄. ✅ [해결법] 결국은 기존 프로젝트에 테스트 코드 작성을 위한 파일을 만들어야 하는데 아래의 사진처럼 저 버튼을 클릭하고 저기 하단에 플러스 모양을 클릭 그럼 그 플러스 모양에 막 이렇게 뜰탠데, 여기에 Unit Test 랑 UI Test를 선택할 수 있음 Target이라고 써져있는 파일 선택하고 내 프로젝트 파일을 보면 테스트 파일이 만들어진 것을 확인할 수 ..

Swift Protocol (@objc, extension 기본 구현)

Swift Protocol (@objc, extension 기본 구현) 프로코콜을 작성할 때 @objc 키워드를 이용하면 optional 처리하여 채택하는 쪽에서 기본 구현을 하지 않아도 되었음. 근데 개발을 하다 보니까 @ojbc를 사용하지 않으면서 처리할 수 있는 방법이 없을까 찾아보기 시작근데 UITableViewDelegate를 까보니까 내부 구현이 Swift인데, 기본 구현을 강제하지 않음. 그러니까 프로토콜 구현에 @objc 없이 사용 가능 해결Swift로 작성할 때는 protocol의 extension을 추가해 메서드를 구현해주면 됨 관련 개념으로는 Mixin이 있음 참고에 링크 추가protocol MyInterface { func add() func remove()}exten..

iOS RxAction (RxSwift Community)

iOS RxAction (RxSwift Community) RxSwift를 사용하면서 모든 챕터를 다 알아두면 좋을 것 같아서 보게 되었음.이거 좀 유용할 것 같다는 생각이 든달까? RxSwift Communtiry에 Pinned도 되어있음 깃헙 위치- https://github.com/RxSwiftCommunity/Action  샘플 예시 아주 간단한 예시이고, RefreshControl에서도 사용할 수 있음RxCommunity - Action 부분에서 Tests를 가보면 다른 예시도 볼 수 있으니까 궁금하면 확인해보기!!import UIKitimport RxCocoaimport RxSwiftimport SnapKitimport Thenimport Actionclass ActionViewControl..

RxSwift ch 18. Table & Collection views

RxSwift ch 18. Table & Collection views이번 글은 RxSwift ch18을 공부하고 이를 기록하고자 함 목차BaseView 만들어보기 modelSelected 사용법Mutiple Cell Types BaseView 만들어보기 개발을 하다 보니 같은 UI도 여러개의 뷰에서 사용하는 경우가 있음하지만 이전에는 이 방법을 몰라서 그냥 복사 붙여넣기로 사용했었는데, BaseView를 사용해보고자 함.코드 샘플import UIKitimport RxCocoaimport RxSwiftimport SnapKitimport Thenstruct BaseView { var tableView = UITableView().then { $0.backgroundColor = .blu..

Extension Reactive (RxSwift)

Extension Reactive (RxSwift)RxSwift는 커스터마이징을 확장하여 사용할 수 있음.RxSwift 내부 코드를 분석하다보면 Reactive.swift 파일에 custom포인트로 사용하라고 안내하고 있음 연관포스팅[iOS RxStarScream 총정리](https://rldd.tistory.com/271)[iOS Starscream 총정리](https://rldd.tistory.com/272)[iOS RxDelegateProxy 만들어보기 #1](https://rldd.tistory.com/273)[iOS RxDelegateProxy 만들어보기 #2 - StarScream + RxProxy](https://rldd.tistory.com/274)[Extension Reactive (Rx..

iOS RxDelegateProxy 만들어보기 #1

iOS RxDelegateProxy 만들어보기Delegate를 RxSwift에 통합하여 사용하기 위해 Proxy를 만드는 방법을 학습  연관포스팅[iOS RxStarScream 총정리](https://rldd.tistory.com/271)[iOS Starscream 총정리](https://rldd.tistory.com/272)[iOS RxDelegateProxy 만들어보기 #1](https://rldd.tistory.com/273)[iOS RxDelegateProxy 만들어보기 #2 - StarScream + RxProxy](https://rldd.tistory.com/274)[Extension Reactive (RxSwift)](https://rldd.tistory.com/275)  샘플코드목차Pro..

iOS Starscream 총정리

iOS Starscream 총 정리 Starscream을 통해서 소켓통신을 하는 방법에 대해서 알아보고자 함.Starscream이란 iOS에서 소켓 통신을 도와주는 오픈소스웹소켓 기반으로 사이드프로젝트에서 사용해보았고, 인턴에서도 또 사용하는데 자주 사용하는 것 같아서 공부 연관포스팅[iOS RxStarScream 총정리](https://rldd.tistory.com/271)[iOS Starscream 총정리](https://rldd.tistory.com/272)[iOS RxDelegateProxy 만들어보기 #1](https://rldd.tistory.com/273)[iOS RxDelegateProxy 만들어보기 #2 - StarScream + RxProxy](https://rldd.tistory.co..

iOS RxStarScream 총정리

iOS RxStarScream 총정리 iOS 개발에서 Socket 통신을 위해서 Starscream을 사용하고 있음.Starsream을 RxSwift에서 편하게 사용할 수 있게 만들어주는 오픈소스 라이브러리. Starscream을 사이드프로젝트 및 회사에서 사용하는데, 인턴 작업에서 이를 도입하기로 해서 리드해서 작업하기로 함.Starscream 자체를 RxSwift로 Proxy를 활용해 감싸서 사용할 수도 있지만, 오픈소스부터 분석해서 추후에 기여도 가능한 방향으로 설계하고자 분석   연관포스팅[iOS RxStarScream 총정리](https://rldd.tistory.com/271)[iOS Starscream 총정리](https://rldd.tistory.com/272)[iOS RxDelegateP..

iOS Snapkit 나만의 정리 모음

iOS Snapkit 나만의 정리 모음 내가 스냅킷 공부하면서 정리하고자 작성한 자료추후에 사용하면서 점차 업데이트하기 히스토리(init) 2021. 8. 25. 13:21 : 최초 포스팅 (목차 5까지)(update) 2022. 1. 14. 21:04 : (목차 6번 추가)(update) 2022. 2 .18 20:52 : (목차 7~ 10 추가, LayoutTraining.zip 코드 추가)(update) 2022. 9 .22 19:00 : (코드 스타일에 대한 첨언)(update) 2022. 9. 25 00:11: (FlexLayout, PinLayout추가) 및 포스팅 코드 스타일 변경예제 파일을 업데이트 하려고 했으나, 너무 해야할 일들이 많아서 포스팅에 나온 코드의 일부를 정리(update) ..

iOS Snapkit 10 | CollectionView 코드로 구성하는 법 03

✅ 이번 시간에는 rx 적용 및 컬렉션 뷰 Flow의 값을 줄 때, 상하 간격도 주는 것을 함께 해보았다. 결과와 코드를 보면서 함께하자. ⭐️ 진짜 핵심은 제일 아래쪽에 위치하고 있습니다:) ✅ 코드리뷰 // // File.swift // SnapKit_practice // // Created by Hamlit Jason on 2021/08/22. // import UIKit import RxDataSources import RxSwift import RxCocoa import CoreLocation import Foundation import Differentiator import Then // Cell class MyCollectionViewCell3 : UICollectionViewCell { s..