일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Firebase
- TCA
- SWIFTUI
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- ObjC
- regex
- test
- Git
- navigationsplitview
- UI
- concurrency
- composablearchitecture
- xcodecloud
- swiftdata
- Navigation
- github
- ios18
- 모바일
- IOS
- Alamofire
- uikit
- SWIFT
- iOS 13.0+
- network
- 정규표현식
- 개발
- xcode
- Tuist
- iOS 개발자
- combine
- Today
- Total
목록전체 글 (71)
iOS 개발 기록
📄목차Error발생 상황 원인 질문Reference Error// 로그창 Error Domain=NSURLErrorDomain Code=-999 "cancelled"발생 상황 Combine으로 네트워크 통신을 구현해보려고 시도하다가 발생한 문제. var cancellables = Set() AnyPublisher . ( 각종 메소드 ... ) .sink ( ... ) .store(in: &cancellables) 다음과 같이 코드를 작성했는데 에러가 발생했다. 원인 sink로 구독한 후에 반환되는 AnyCancellable를 메모리에 올리지 않아 바로 구독이 해지되어 생기는 문제. → 때문에 변수로 설정한 후에 메모리에 올려야 한다. var cancellable: AnyCancellable? cancel..
📄목차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가 위치할 수 ..
📄목차Retain CycleCapture list weak, unowned Non-escaping closure vs Escaping closureNon-escaping closureescaping closure self? VS guard let self = self else { return } Reference Retain CycleClosure의 경우 reference type이기 때문에 순환 참조(retain cycle)를 발생시킬 수 있다. class Person { let name: String // self가 확정난 후에 name을 참조해야 하기 때문에 lazy 변수로 설정 lazy var introduction: () -> String = { return "저는 \(self.name) 입니다..
📄목차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를 담는 컨..
📄목차1. git 개념과 목적 2. git 기본 용어3. 기본적인 커맨드 4. 원격저장소 연동 5. GitFlow6. 자주 발생하는 케이스 Reference 1. git 개념과 목적 Git이란 무엇인가? 분산형 버전 관리 시스템(Version Control System) 의 한 종류. 버전관리 예시프로젝트의 수정 내용으르 복사, 백업, 저장하는 것을 빠르게 도와주는 도구가 git 장점버전 관리 각 파일을 이전 상태로 되돌릴 수 있다. 프로젝트를 통째로 이전 상태로 되돌릴 수 있다. 시간에 따른 수정 내용을 비교해 볼 수 있다. 누가 문제를 일으켰는지 추적할 수 있다. 파일을 잃어버리거나 잘못 고쳤을 때에도 쉽게 복구할 수 있다.팀 프로젝트가 아닌 개인 프로젝트에서도 버전 관리가 용이하고 프로그램이나 패치..
Fastlane 📄 목차 Fastlane 설치 // homebrew를 통해 설치 brew install fastlane // bundler(- fastlane 업데이트시 필요) 설치 gen install bundler Fastlane 설정 기본 설정 설치하고자 하는 디렉토리로 넘어가 아래 fastlane 초기화 명령어 입력. 그럼 다음과 같은 목록이 뜬다. 나중에도 추가할 수 있어서 아무거나 눌러도 된다. 나는 4번을 눌러 기본 설정을 마쳤다. fastlane init 설정을 마치면 다음과 같은 파일들이 생긴다. Gemfile Gemfile.lock fastlane/Appfile fastlane/Fastfile Gemfile과 Gemfile.lock 파일은 fastlane의 버전을 관리하는 파일이라 크게..
Coordinator Pattern Date: 2022년 12월 5일 Tags: 화면전환 📄 목차 Coordinator란? 하나 이상의 ViewController에 지시를 내리는 객체. ViewController간에 서로 이동할 때에 push, present 등 화면 전환을 Coordinator 클래스로 분리해 관리. ViewController들이 서로 분리되어 쉽게 재사용할 수 있음. 특징 Coordinator 별로 하나 이상의 ViewController을 보유한다. 각 Coordinator은 일반적으로 start라고 불리는 메서드로 ViewController을 표시한다. 각 ViewController에는 Coordinator에 대한 delegate가 있다. 각 Coordinator에는 child co..
CompletionHandler 📄 목차 completionHandler func login(loginData: Login, completionHandler: @escaping () -> Void) { guard let webview = self.webview else { return } webview.evalFlexFunc("login", sendData: loginData) { data in log.debug(" PMS LOGIN! ") completionHandler() // ❗️실수하기 쉬운 포인트 } } // 사용 login(loginData: signInInfo) { print("로그인 성공") } @escaping 을 통해 콜백 기반 comopletionHandler를 실행. 단점 : 깜빡하..
async/await Date: 2023년 2월 1일 Tags: SwiftConcurrency 📄 목차 async public func data(from url: URL, delegate: URLSessionTaskDelegate? = nil) async throws -> (Data, URLResponse) async가 붙은 함수는 비동기라는 것을 나타낸다. 에러를 반환할 수 있을때에는 async throws 키워드로 선언, 호출할 때에는 try await 키워드로 호출하게 된다. await let (data, response) = try await URLSession.shared.data(for: reqeust) 비동기 함수 호출 시 잠재적 중단 시점을 지정하는 피연산자 동시성 컨텍스트에서만 실행 가능..