apple 216

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

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

[iOS] FlexLayout을 Cell에서 사용할 때 주의할 점

FlexLayout을 Cell에서 사용할 때 주의할 점  나만 안되더라 ㅠflexlayout이 뭔가 rootContainer를 사용하는 형태의 일종의 rule? 명확한 코드 스타일에 대한 가이드라인이 없어서 스타일을 맞춰가는 과정에서 휴먼에러 .. 발생  해결방법🌿 flex를 cell에 잡을 때 contentView에 잡아주어야 한다.  🚨실패한 코드//// NoteCell.swift// AppleCollectionView//// Created by Hamlit Jason on 2022/09/01.//import UIKitimport FlexLayoutimport PinLayoutimport RealmSwiftimport RxSwiftimport RxCocoaclass NoteCell: UICo..

[iOS] UICollectionView에 대해서 알아보기 5편 (북마크 구현 및 모델 관리)

UICollectionView에 대해서 알아보기 5편 (북마크 구현 및 모델 관리) 이번에는 bookmark 기능을 구현해 볼 예정이다. 이전에도 북마크를 구현했었고, 모델을 잘 만들어서 관리하고 있었다. 그러니까 기록용의 의미가 더 큼! UI 우선 모델을 변경했다. 서버에서 내려오는 데이터는 id, name, avatar, job, age뿐이지만, isBookmark를 추가해서 북마크 여부를 나타내는 프로퍼티를 만들었다. Equtable을 채택해서 멤버의 구조체의 5가지 정보가 다 같으면 같은 객체로 판단하게 했다. 여기 MemberAPI가 Member에 해당하는 조합을 일정하게 주는게 아니라, id, name, avatar, job, age를 랜덤하게 조합해서 주는것 같았다. id는 고유값이 아니라 ..

[iOS] UICollectionView에 대해서 알아보기 4편 (Rx + FlexLayout + PinLayout)

UICollectionView에 대해서 알아보기 4편 (Rx + FlexLayout + PinLayout)  이번에는 RxSwfit + MVVM + FlexLayout + PinLayout을 사용해서 구성해보자. FlexLayout 및 PinLayout이 성능도 좋고, 대세인 감이 있어서 학습하고자 함.이미지 라이브러리도 Kingfisher와 SDWebImage 주로 사용하는데 Nuke가 대세인 것 같아서 이것도 병행해서 학습 SwiftUI + Combine만 사용하다가 RxSwift 오랜만에 사용하니까 확실히 뭐가 많아서 좋다 pin + flex사용할 때 viewDidLayoutSubviews() 호출해야 하는데, 이것만 반드시 주의 내가 보려고 남기는 샘플코드  오픈소스 링크https://gith..

FlexLayout 'YGEnums.h' file not found Error

FlexLayout 'YGEnums.h' file not found Error 위 제목으로 이슈가 발생한다면 매우 간단하게 처리할 수 있음.SPM으로 사용할 때 발생  해결 방법1. 프로젝트 build setting으로 가서 2. 공식문서에서 안내하는 형태로 수정   요즘 cocoapod에서 SPM으로 넘어가면서 아직은 환경 설정쪽 관련해서는 부족한게 많다고 느낌.아무튼 해결 방법은 공식 문서에 README.md 영역에 적혀 있는대로 고고!   (참고) 해당 이슈와 관련해 깃헙에 등록된 이슈https://github.com/layoutBox/FlexLayout/issues/203

[iOS] SwiftUI SceneDelegate, AppDelegate 변경

SwiftUI SceneDelegate, AppDelegate 변경 해당 포스팅은 실제 프로젝트를 그대로 가져왔습니다. 따라서 네이밍이나 주석 등 불편한 부분이 있을 수 있습니다 자 이 포스팅을 왜 쓰냐면 SwiftUI 기반으로 프로젝트를 진행중인데, window를 변경해야하는 경우가 생겼음. 근데, 이게 기존에 SwiftUI에서 제공되는 WindowGroup을 사용하기에 자료도 넘 적고, 생각보다 코드관리도 잘 안되고 불편한게 너무나도 많았음. 그래서 많은 고민 끝에, SwiftUI에서 SceneDelegate와 AppDelegate를 채택해서 사용하기로 함. 이게 무슨말이냐면 기존에 처음에 SwiftUI로 프로젝트를 만들면 이렇게 나타날 것이고, Scene은 보다시피 ScenePhase를 통해서 관리..

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

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

[iOS] 시뮬레이터에서 Remote Notification (푸시알림)

[iOS] 시뮬레이터에서 Remote Notification (푸시알림) 오늘은 시뮬레이터에서 푸시 알림을 날리는 방법을 알아봅시다. 1. 시뮬레이터를 실행한 상황에서 터미널을 열고 아래의 코드를 실행해주세요. xcrun simctl list devices | grep Booted 2. 노티피케이션을 보낼 파일을 준비해주세요. - 제가 만든 파일을 다운 받으셔도 좋습니다. 3. 노티피케이션 쏘기 xcrun simctl push {디바이스 아이디} {앱 번들} {파일 경로} // 👇🏻 예시 xcrun simctl push 12345678-1A2B-3B4D-56C1-123A456B789C com.notication.lgvv /User/Desktop/test.apns // 성공하면 터미널에 Notificati..

[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. 여러개의 섹션 헤더 및 푸터 만들어보기 컬렉션 뷰에서 섹션 헤더와 푸터를 만..