일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- composablearchitecture
- navigationsplitview
- Firebase
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- xcodecloud
- 앱구조
- 정규표현식
- Navigation
- Git
- iOS 개발자
- iOS 13.0+
- ObjC
- concurrency
- xcode
- framework
- Alamofire
- UI
- swiftdata
- TCA
- combine
- SWIFT
- SWIFTUI
- ios18
- uikit
- 개발
- IOS
- github
- Tuist
- regex
- network
- Today
- Total
목록Swift (14)
iOS 개발 기록
📝 Swift의 특징은? 애플이 발표한 스위프트의 언어적 특성은 총 세 가지로, Safe(안전성), Fast(신속성), Expressive(더 나은 표현성)이다. Safe(안전성) : 스위프트는 안전한 프로그래밍을 지향한다. 이는 실수를 줄이는 데에 큰 공헌을 한다! 안정성에 대한 대표적인 예가 바로 옵셔널이다. 이는 변수 또는 상수의 값이 nil일 수 있다는 것을 명시적으로 표현해 문법적으로 프로그래밍의 유연성과 안정성을 담보한다. 그리고 그 외에도 guard 구문, 오류처리, 강력한 타입 통제 등으로 안전성을 확보한다. Fast(신속성) 스위프트는 C언어를 기반으로 한 C++, Objective-C와 같은 프로그래밍 언어를 대체하려는 목적을 가진다. 현재 실행 속도의 최적화, 그리고 더 빠른 컴파일러..

KVC와 KVO란? KVC 정의 : Key-Value-Coding. Key는 String Key나 KeyPath를 이용해 간접적으로 데이터를 가져온다. 객체간 의존성을 낮추고, 결합도가 낮은 소프트웨어를 개발할 수 있게 한다. NSKeyValueCoding 프로토몰에 의해 정의한다. KVC 로직 : 1. Key와 일치하는 프로퍼티를 찾는다. 2. 일치하는 프로퍼티가 없다면 Key와 일치하는 인스턴스 변수를 찾는다. 3. 일치하는 프로퍼티나 인스턴스 변수가 있다면 적용, 없으면 'valueForUndiginedkey'나 'setValue:forUndefinedkey'를 호출한다. 사용 : 위와 같은 로직으로 동작하기 때문에 프로퍼티를 통한 직접 접근보다 느리며, runtime에 접근하기 때문에 Key가 일..

Reference : https://developer.apple.com/documentation/combine RX와 같은 비동기 이벤트를 처리하기 위한 프레임워크. iOS13부터 사용 가능하고, iOS13 이전 버전은 RX를 사용해야 한다. Publisher import Combine var IntArrayPublisher: Publishers.Sequence = [1,2,3].publisher RX의 Obsevable. 관찰 가능한 대상으로 데이터를 전달함. 전달할 때에 제네릭 형태로 으로 같이 보낸다. 에러 타입 중에 Never이 있는데, 얘는 어떠한 에러도 발생 안시킨다. Subscriber IntArrayPublisher.sink(receiveCompletion: { completion in s..

var body : some View { ... } [ 불투명 타입의 사용 이유 ] SwiftUI를 접하면서 이전에 못 본 some이라는 키워드가 눈에 띄었다. 여기서 some은 불투명 타입에 관련된 키워드로 프로퍼티나 함수 등의 반환 타입에 한정적으로 사용된다. 이때에 body가 가진 반환 타입은 반드시 some View여야 하는건 아닌데, some을 빼면 다음과 같은 오류가 발생한다. 첫번째는 프로토콜을 사용할 때에 타입을 유추할 수 없어서 발생하는 오류이고, 두번째는 타입 유추를 할 수 없기 때문에 뷰 프로토콜 조건이 만족되지 않아 발생하는 오류이다. 때문에 반환 타입을 정확하게 명시해주면 문제 없이 동작한다. 밑의 예에서 반환 값을 구조체 ProductRow라 명시하거나 Text로 명시하자 문제 ..