일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Tuist
- test
- concurrency
- xcodecloud
- uikit
- Alamofire
- github
- composablearchitecture
- SWIFTUI
- TCA
- swiftdata
- navigationsplitview
- Firebase
- ObjC
- IOS
- UI
- 개발
- iOS 13.0+
- 모바일
- Git
- Navigation
- xcode
- 정규표현식
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- combine
- iOS 개발자
- regex
- network
- ios18
- SWIFT
- Today
- Total
목록Swift (13)
iOS 개발 기록
정규표현식이란?특정 패턴언어 가지는 문자열의 집합을 표현하는데 사용되는 형식 언어.핸드폰번호, 이메일 등 패턴을 가진 문자열의 유효성 검증할때 핵꿀. 정규표현식 문법메타문자사실 메타문자는 봐도봐도 까먹는다... 또 까먹을것 같지만 한번 정리는 해두자 메타문자를 정규문자로 사용하고 싶으면 \를 통해 사용할 수 있다.메타문자기능예시설명.문자 일치...123 ( = abc123, def123 등)개행문자를 제외한 문자 1개와 일치+1개 이상\w+ ( = Hello 등), \d+ (= 010 등), \d+\s\d(= 010 0000등) 1개 이상의 문자 포함\w \d \s영문자, 숫자, 공백[A-Za-z0-9], [0-9], 공백문자를 의미 \W \D \S영문자, 숫자, 공백이 아님 \D+\s\D+ (= 나는..
📄목차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) 입니다..
PropertyWrapper Available: iOS 13.0+ Date: 2022년 12월 27일 Tags: Swift 📄 목차 PropertyWrapper 이미 정의된 property를 감싸 computed property로 만든 새로운 wrapper프로퍼티를 의미 stored property(didSet)이나 computed property(get, set)로 사용 가능 프로퍼티에 로직을 연결해 볼리어 플레이트 코드와 재사용성을 높인다. 사용법 class, struct, enum 등 프로퍼티를 가질 수 있는 타입 앞에 붙여 사용 // 기본 코드 struct Person { private var _name: String = "" var name: String { get { self._name.upp..
에러 처리 Tags: Swift 에러의 표시와 발생 Swift에서 에러는 Error 프로토콜을 준수하는 타입의 값으로 표현된다. 에러는 주로 열거형(enum)을 통해 그룹화 되어 관리된다. enum LogViewError: Error { case documentDirectoryError case notFindLogURL case lastLogNameError(logName: String) case pathToDataError case imageKeyParseError } 예상치 못한 흐름이 발생했을 때에 throw문을 통해 에러를 발생시켜 일반적인 흐름이 계속될 수 없다는 것을 알릴 수 있다. 아래 코뜨는 해당 이름의 로그가 잘못되었다는 것을 알리는 에러를 발생시킨다. throw LogViewError...
개발자 채용 공고를 보면 조건 항목에 비동기 프로그래밍에 대한 이해와 경험 등 비동기 프로그래밍에 대한 내용을 쉽게 찾아볼 수 있다. 그만큼 개발자에게 중요한 항목인 것을 알 수 있는데, 오늘은 간단히 요걸 정리해보려고 한다! 동기(Sync) vs 비동기(Async) 대학생 때 팀플하던 것을 생각해보자! 일을 한명이 몰빵해서 처리할 수도 있고, 팀원들에게 각각 분배되어 진행할 수도 있다. 한 명이 몰빵해서 할 경우, 사전 조사부터 발표 자료까지 전부 만들어야 한다. 해당 일을 마치기 전에 다음 일을 시작하는 것은 몸이 여러개가 아닌 이상 불가능하다. 때문에 당연히 후자가 모두에게 좋은 효율적인 방법일것이다! 보통 작업은 태크스(Task), 작업을 처리하는 주체를 쓰레드(Thread)라 보통 표현한다. 동..
옵셔널이란 ? Swift 언어의 큰 특징으로 옵셔널을 뽑을 수 있을 것이다. 옵셔널이란 값이 없을수도 있다는 가능성을 열어두는 것으로, '?'라는 키워드로 표현하며 값이 없는 상태는 nil값을 가진다. var a: Int = nil // error var b: Int? = nil 또한 옵셔널은 옵셔널이 아닌 데이터 타입과 다르게 취급된다. 예를 들면 위의 예제 코드의 a와 b가 같은 값을 가지고 있다 하더라도 그 둘은 다른 데이터 타입을 가지게 된다. a의 경우 그냥 1이지만 b의 경우 Optional(1)로 출력한다는 것을 확인할 수 있다. b의 경우 이 변수가 언제 nil을 가지게 될 지 모르기 때문이다. 재밌게도 값은 둘다 1이기 때문에 둘을 비교했을때 같다고 출력한다. var a: Int = 1 ..
전에 쓴 글인 Swift의 특징과 프로그래밍 패러다임에서 함수형 프로그래밍의 대표적인 예가 고차함수다. 고차함수는 다른 함수를 전달인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수를 뜻한다. 여기서 함수는 클로저 또한 포함된다. Swift에서 제공하는 대표적인 고차함수의 예는 map, filter, reduce가 있다 . map 기존에 컨테이너의 데이터를 변형해 새로운 컨테이너로 반환한다. 다음 예는 0부터 5까지의 수가 홀수인지 체크하여 Bool형태로 변형하는 방법이다. let numbers: [Int] = [0, 1, 2, 3, 4, 5] var checkOdd: [Bool] = [] // for문 for num in numbers { if num%2 == 1 { checkOdd.append(t..
PencilKit은 2019년부터 애플에서 지원하는 프레임워크다. PencilKit은 터치와 Apple Pencil 입력을 그림으로 캡처하고 앱에 표시하는 기능을 지원한다. iOS13 이상부터 지원하며 앱에 그림 그리는 기능을 쉽게 구현할 수 있다. PKCanvasView class PKCanvasView : UIScrollView 손가락이나 Apple Pencil을 통해 그려진 콘텐츠를 렌더링하여 앱에 표시하는 뷰. 그림을 그리고 표시하는 뷰라고 생각하면 될것 같다. PKCanvasView에서 그려진 데이터는 PKDrawing에 저장된다. PKDrawing struct PKDrawing PKCanvasView에서 그린 데이터를 저장하는 구조체. PKStroke형태로 저장하며 dataRepresentat..
Swift의 메모리 관리 ARC(Automatic Reference Counting) : ARC가 관리해주는 Reference Counting (참조 횟수 계산) 은 참조 타입인 클래스의 인스턴스에만 적용된다. 구조체나 열거형은 값 타입으로 다른 곳에서 참조하지 않기 때문에 ARC로 관리할 필요가 없다. ARC의 로직 생성 : 런타임 때 동적할당 되는 모든 Object를 Swift Runtime이라는 라이브러리의 HeapObject라는 struct로 표현되어 관리된다. 여기에는 Reference Count와 type meta data를 포함한다. 해제 : ARC 는 인스턴스가 참조하는 다른 프로퍼티의 변수, 상수의 갯수를 세고 1개 이상 존재하면 인스턴스를 메모리에서 없애지 않는다. 카운팅 시점 : 컴파..
📝 Swift의 특징은? 애플이 발표한 스위프트의 언어적 특성은 총 세 가지로, Safe(안전성), Fast(신속성), Expressive(더 나은 표현성)이다. Safe(안전성) : 스위프트는 안전한 프로그래밍을 지향한다. 이는 실수를 줄이는 데에 큰 공헌을 한다! 안정성에 대한 대표적인 예가 바로 옵셔널이다. 이는 변수 또는 상수의 값이 nil일 수 있다는 것을 명시적으로 표현해 문법적으로 프로그래밍의 유연성과 안정성을 담보한다. 그리고 그 외에도 guard 구문, 오류처리, 강력한 타입 통제 등으로 안전성을 확보한다. Fast(신속성) 스위프트는 C언어를 기반으로 한 C++, Objective-C와 같은 프로그래밍 언어를 대체하려는 목적을 가진다. 현재 실행 속도의 최적화, 그리고 더 빠른 컴파일러..