일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- xcodecloud
- 개발
- ObjC
- ios18
- Alamofire
- Git
- composablearchitecture
- swiftdata
- SWIFT
- SWIFTUI
- network
- navigationsplitview
- iOS 13.0+
- TCA
- 정규표현식
- IOS
- Firebase
- Tuist
- test
- xcode
- regex
- UI
- uikit
- concurrency
- Navigation
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- iOS 개발자
- combine
- github
- 모바일
- Today
- Total
목록uikit (7)
iOS 개발 기록
Fatal error: This model instance was destroyed by calling ModelContext.reset and is no longer usable. 발생 상황iPadOS18 이상으로 업데이트하니 갑자기 사이드 프로젝트 앱에서 다음과 같은 에러와 함께 강제 종료가 되기 시작했다. iOS17까지는 잘 돌아가던 코드가 18부터 오류가 발생하기 시작한 것.앱은 TCA 아키텍처 구조에서 SwiftData를 사용하고 있었다. 사용하고 있던 방법은 다음과 같다. 1. SwiftData의 데이터를 관리하고 저장소에 접근하기 위한 ModelContainer를 생성HTML 삽입미리보기할 수 없는 소스 2. 동시성 문제 없이 데이터를 관리하기 위해 ModelActor로 데이터를 관..
📄목차preferredMaxLayoutWidthIntrinsicContentSizeinvalidateIntrinsicContentSize()PriorityContent Hugging Priority Content Compression Resistance PriorityReference preferredMaxLayoutWidth여러 줄의 UILabel에 적용될 수 있는 프로퍼티. UILabel의 최대 너비를 설정한다. 최대 너비를 넘어가는 경우 UILabel은 새로운 줄로 개행하며 높이를 증가시킨다. preferredMaxLayoutWidth를 설정해서 일정한 텍스트 레이아웃을 정렬하거나 적절한 레이아웃을 유지할 수 있다. Storyboard에서는 Desired Width에서 설정할 수 있다 . 이미지에서..
📄목차코드@main App NotificationService 실행 결과 결론 Reference SwiftUI로 넘어오면서 AppDelegate와 SceneDelegate가 중심이 되던 앱의 라이프사이클에 변화가 생겼다. → [SwiftUI]AppDelegate, SceneDelegate 만들기Remote Push Notification의 경우 설정을 AppDelegate에서 해줘야 했는데, 이를 순수하게 SwiftUI의 라이프 사이클에 맞게 변경해보고 싶었다. 아래는 결론 도출을 위해 겪은 과정이다. FCM 을 통해 Remote Notification을 구현하려고 했는데, Firebase나 인증서와 관련된 내용은 생략하고 여기에는 앱의 코드만 작성한다.결론부터 말하자면 그런거 없다.🥲 AppDelega..
📄목차CollectionView에 Combine 적용하기 DiffableDataSource를 사용한 이유 UICollectionView CollectionView 기본 레이아웃 설정 Combine PublisherModelAPI request Publisher를 구독하고 diffableDataSource에 업데이트ViewModel CollectionView에 데이터를 적용 결과Reference CollectionView에 Combine 적용하기 RxSwift + RxCocoa 조합처럼 보통 Combine + SwiftUI 조합으로 많이 쓰인다고 한다. 그런데 회사에서는 UIKit을 사용중인데 Combine + UIKit 조합은 어떻게 사용하나 공부하다가 자주 사용하는 CollectionView에 적용해 ..
📄목차Collection View UICollectionViewDelegate, UICollectionViewDataSourceModern Collection View (iOS 13.0+) UICollectionViewDiffableDataSourceUICollectionViewLayout UICollectionViewFlowLayoutUICollectionViewCompositionalLayout (iOS 13.0 +)전체 코드 Reference Collection View UICollectionViewDelegate, UICollectionViewDataSource class ViewController: UIViewController { @IBOutlet weak var collectionView: ..
📄목차Compositional Layout구성Item cell 구현 SupplementaryView의 구현전체 코드ReferenceCompositional LayoutiOS 13.0에 도입된 UICollectionView의 새로운 레이아웃. 다음과 같은 특징이 있다고 한다. 기존의 UICollectionViewFlowLayout보다 더 확장된 레이아웃 제공Item 정의 -> Group 정의 -> Section 정의 순으로 순으로 진행해 간다.아래의 그림과 같이 여러 섹션으로 나누어 각 섹션끼리 관리 가능. 섹션별로 다른 레이아웃을 구성하기 쉬워진다. : 요즘 많이 보이는 다음과 같은 뷰를 View를 구현하기 편해진다. 구성Collection view의 구성 Supplementary view가 위치할 수 ..
📄목차iOS의 UIStructureUIScreenUIWindowSceneUIWindowWindow와 Scene의 개념Window SceneAppDelegate와 SceneDelegate참고 iOS의 UIStructureiOS의 View 계층 UIScreen기기의 실제 물리적인 스크린. UIWindowScene 얘가 Scene을 관리하는 객체. 하나 이상의 window를 포함한다.iOS13 이상부터 생긴 SceneDelegate를 보면 UIWindowSceneDelegate 프로토콜을 채택했는데, Scene에 변화가 생길 경우 delegate를 통해 변화를 알린다. UIWindow이벤트들을 뷰로 보내주는 객체. UIV Window와 Scene의 개념Window UIView의 하위클래스. View를 담는 컨..