apple/iOS, UIKit, Documentation 82

[iOS] UICollectionView CompositionalLayout

UICollectionView CompositionalLayout 공식문서를 열었는데 샘플코드가 14.0 이상으로 나옴. - 글 제일 하단에 참고 부분에 있음 취업 준비하면서 13.0을 기준으로 공부하고 있어서 Xcode를 통해 열어보니까 다행히도 13.0 이상에서도 사용이 가능했음 이전에는 DataSource만 SnapShot을 사용하고 레이아웃은 FlowLayout을 사용했었는데, 이 부분마저도 공부해보려고 함. ✅ SnapShot + FlowLayout 포스팅 2022.09.04 - [iOS] - [iOS] UICollectionView에 대해서 알아보기 7편 (UICollectionViewDiffableDataSource) [iOS] UICollectionView에 대해서 알아보기 7편 (UICo..

[iOS] DiffableDataSource n-Section n-Item (섹션마다 다른 셀)

[iOS] DiffableDataSource n-Section n-Item (섹션마다 다른 셀) DiffableDataSource을 이용하여 각각의 섹션마다 다른 셀을 적용하고자 함.앱 타겟은 iOS 13iOS 14이상의 경우 아주 간단하게 처리할 수 있는데, UICollectionView.CellRegistration이는 애플의 공식문서에도 나와있음 다만, iOS 14이상에서 가능  ⚙️개발환경⚙️Xcode 14.0iOS 13.0 이상Swift 5SnapKit 5.6  🚨 코드를 보고난 후 주의할 점 🚨 1. 기본적으로 Item의 경우에는 Hashable해야 함.  결과 이미지의 세번째 사진을 보면 배열에 1이 4개가 들어있음에도 불구하고 1이 하나만 보여짐. 그 이유는 Hashable하기 때문에 ..

Realm 간단하게 구조 적용하기

Realm 간단하게 구조 적용하기 Relam을 도입했는데, 구현과 인터페이스를 분리해 재사용을 높이고자 함.Realm 간단하게 적용해 볼 예정 예제 영상   시도한 것Realm을 사용하는데 update 메소드를 조금 변경해봄셀 내에 많은 데이터들이 있는데, 셀에서 일부 데이터만 수정하는 경우 업데이트를 시도근데 어떤 값을 설정할지 지정해주면 하나의 메서드로 처리해 응집도 및 재사용성을 높일 수 있음 추후에 Note와 관련하여 Service를 만드는 방향으로 수정합니다.  Realm 설계 구조 변경애플에서는 DataModel이라고 해서 각 모델 단위(?)로 관리하는 것처럼 보임.개인적으로는 애플 예제 형태로 운영되면 너무 많은 레이어들이 모델에 의존하게 되는 형태라 결합도가 너무 높아질 것 같다는 생..

[Realm] Realm migration (Swift)

Realm migration (Swift) 해당 포스팅은 2번에 걸쳐 업데이트 될 예정입니다. 1. isBookmarked 필드를 추가하는 v2 마이그레이션 (✅ 2022.09.05 21:49 작성완료) 2. v2데이터를 사용하다가 또 다시 v3로 마이그레이션 (🟡 Not yet) 다들 알다시피 Realm의 경우에는 앱 설치 후 모델을 변경하면 migration이 필요함. 이 작업을 예전에 UserDefault로 Kuring 프로젝트에서 다른 개발자님이 하 셨었는데, 나도 도전 🔥 모델을 변경하고 앱을 딱 실행하면? 마이그레이션 하라는 문구가 나타남 일단 기존 모델로 저장된 값들을 Realm-Studio(Realm browser도 된다는데, 나 잘 안되어서 일단 이거 씀) 확인해보면 위 사진처럼 4개의 ..

[Realm] The document “default.realm” could not be opened.

The document “default.realm” could not be opened. Realm file is currently open in another process which cannot share access with this process. All processes sharing a single file must be the same architecture. For sharing files between the Realm Browser and an iOS simulator, this means that you must use a 64-bit simulator. MacOS에서 Realm broser 3.0.1 설치 후 해당 경로로 파일을 열어줄 때 발생 - 시뮬레이터 끄고 하면 된다고 함. ..

[Realm] Realm CRUD more modern and swifty

Realm CRUD more modern and swifty Realm 설치 - SPM으로 고고 https://github.com/realm/realm-swift GitHub - realm/realm-swift: Realm is a mobile database: a replacement for Core Data & SQLite Realm is a mobile database: a replacement for Core Data & SQLite - GitHub - realm/realm-swift: Realm is a mobile database: a replacement for Core Data & SQLite github.com Realm CRUD 살펴보기 import Foundation import Re..

[iOS] UICollectionView에 대해서 알아보기 7편 (UICollectionViewDiffableDataSource)

UICollectionView에 대해서 알아보기 7편 (UICollectionViewDiffableDataSource) iOS 13이상에서 사용하능하다. 결과 코드 7편에서는 이거 알아보자! UICollectionViewDiffableDataSource OverView 음,, 아직 사용하진 않았지만 글을 읽어보는 것만으로도 RxDataSource와 비슷하다고 생각든다. 기존의 UICollectionView의 경우에는 reloadData 등 복잡했지만 쉽게 말해서 이제는 걍 apply로 다 관리하겠다는 말. 정말 기초적인 내용이 궁금하다면 공식 문서 및 다른 포스팅을 참고해주세요. https://zeddios.tistory.com/1197 Diffable Datasource 안녕하세요 :) Zedd입니다...

[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은..

[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..