swift 172

[iOS] UICollectionView에 대해서 알아보기 6편 (Realm, async, await, Delegate)

UICollectionView에 대해서 알아보기 6편 (Realm, async, await, Delegate) 드디어 6편이다! 올해 봄, 기본기의 부족함을 너무 크게 느껴서, 기본기부터 다시 돌아보는 시간을 가졌는데, 이번에 Realm과 FelxLayout, PinLayout 등을 학습하면서 확실히 이전보다 더 빠르고 잘(?) 이해가 되는 것 같다. 모든 코드는 SPM으로 빌드가 가능한 상태로 올려드립니다. (주요내용) 이번에는 Realm과 Delegate를 활용해서 어떻게 처리하는지 알아보고 async, await을 활용해서 클로저를 없애고, RxSwift랑 잘 묶어보자! 🌿 UI 결과물 🌿 셀 내에 업데이트 버튼이 위치한다. 즉, 셀 내에서 CRUD작업 중 UD에 해당하는 작업을 처리한다. (CR은..

apple/iOS 2022.09.04

[iOS] 내가 보려고 기록하는 Realm 구조 설계하기 및 @escaping

내가 보려고 기록하는 Realm 구조 설계하기 및 @escaping 해당 포스팅은 제 기본 지식에 자주하는 실수를 기록하기 위해 작성했습니다. @escaping과 @nonescaping가 정말 궁금하다면 다른글을 찾아봐주세요. 자 이번에 Realm을 사용하는데 @escaping을 사용하기로 함. 설계를 UML로 하는데, 간단하게 UML을 사용해서 Static이나 Property Wrapper는 어떻게 표현해야하는지 고민이 되었다. Realm을 UML로 표현해보았다. (참고)를 보면 static의 경우에는 밑줄로 표현한다고해서 우선 이렇게 작성해 보았다. Realm을 학습을 하고있어서 어떻게 설계해야하는지 잘 모르지만, 해당 모델에서 처리하고자 했다. 셀에서 지워진 정보가 CollectionView에 반영..

apple/iOS 2022.09.02

[iOS] UICollectionView에 대해서 알아보기 3편 (동적 Cell)

UICollectionView에 대해서 알아보기 3편 ✅ 이번에는 CollectionView를 이용하여 height을 동적으로 구성하는 방법에 대해서 알아보자. 이 부분에 있어서는 여러개의 구글링을 하면서 여러개의 포스팅을 찾아보았다. - dummyCell 방법이 가장 흔한 것 같은데, 잘 안되었다. - 그래서 이 방법 사용 고고! - dummyCell의 경우에는 내 코드를 가져가서 리팩토링해서 알려주면 좋겠다,, 누군가 소스코드 🌿 결과물 🌿 ✅ 코드 /// 셀의 레이아웃 정보를 구성 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt ..

apple/iOS 2022.08.22

[iOS] UICollectionView에 대해서 알아보기 2편

UICollectionView에 대해서 알아보기 2편 이번에 해볼 작업들 1. 여러개의 섹션 헤더 및 푸터 만들어보기 2. 헤더에 이미지 넣기 3. 리프레시 컨트롤 넣기 4. 우측에 리프레시 넣기 5. 페이지네이션 (해결하지 못한 부분) - 헤더의 배너 부분을 pageViewController처럼 구현하고자 하였으나 아직 방법을 못찾음 - collectionView에 refreshControl을 달아서 사용자가 손을 떼는 순간에 이벤트가 들어가게 하려고 했으나 실패 입니다. 자료에 대한 소스코드 입니다. 사용한 Swift Package - RxSwift 6.5.0 - Snapkit 5.6.0 - RxGesture 4.0.4 1. 여러개의 섹션 헤더 및 푸터 만들어보기 컬렉션 뷰에서 섹션 헤더와 푸터를 만..

apple/iOS 2022.08.12

[ReactorKit] ReactorKit 공부하기 #2

ReactorKit 공부하기 #2 📌 해당 문서는 ReactorKit 3.2.0을 기준으로 하고 있습니다. ReactorKit은 SPM을 지원하지 않습니다. 해당 프로젝트를 위해 RxTest, RxBlocking을 추가적으로 사용하였습니다. 코드 파일은 글 제일 하단에서 확인하실 수 있습니다. 이번에는 ReactorKit 테스트에 대해서 알아볼 예정이다. 한 이틀을 환경문제로 삽질을 했는데, 그 해결법을 여기에 담고 있다... ✅ RxTest는 꼭 Tests쪽으로 타겟을 잡아주세요! 그렇지 않으면 앱이 죽습니다 ㅠ ✅ 1편 포스팅 코드를 그대로 사용했습니다. ReactorKit의 경우에는 테스트를 위한 함수가 내장되어 있다. 손쉽게 view와 reacotr 둘 다 테스트 할 수 있다!! 그렇다면 무엇을 ..

[Swift] Coodinator Pattern

Coodinator Pattern ✅ Coodinator Pattern 아래의 문서를 구입하여 영어 문서를 번역하고 이해한 것을 바탕으로 글을 작성하고 있습니다. https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/23-coordinator-pattern Design Patterns by Tutorials, Chapter 23: Coordinator Pattern The coordinator pattern is a structural design pattern for organizing flow logic between view controllers. This pattern can be adopted for only..

[XCTest] XCTest에 대해서 알아보기 1편

XCTest에 대해서 알아보기 1편  XCTest를 공식문서를 통해 정리Nimble Quick 등도 다시볼겸 정리해보자.사이드 프로젝트에서 테스트코드 작성하면서 점차 더 다양한 테스트를 시도하고 있는데, 정리가 한번 필요할 것 같았음 유닛테스트는 여러 형태로 자주 사용하고 있고,UI테스트는 아직까지 다채롭게 사용하지는 못하는 것 같은데, 자동 완성 기능이 꽤나 쏠쏠해서 특정 플로우에 QA용으로 빠르게 작성해서 테스트 용으로 사용 중임. 퍼포먼스 테스트는 해본 적은 없지만 인스트루먼트 보면서 그냥 거기서 hang걸리거나 부족한 부분 없는지 체크중인데, 성능 최적화 부분에 대해서 컴파일러 최적화 등에 의존하지 않고, 직접 사용하고자 할 경우 특정 핫스팟을 발견해서 작성이 필요하다고는 알고 있음.  ✅ 공식문..

[Swift] Composite Pattern

Composite Pattern ✅ Composite Pattern 아래의 문서를 구입하여 영어 문서를 번역하고 이해한 것을 바탕으로 글을 작성하고 있습니다. https://www.raywenderlich.com/books/design-patterns-by-tutorials/v3.0/chapters/20-composite-pattern Design Patterns by Tutorials, Chapter 20: Composite Pattern This is a structural pattern that groups a set of objects into a tree so that they may be manipulated as though they were one object. If your app's ..