일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mvc
- 세종대학교
- GCD
- 반응형
- Kingfisher
- CS
- 토이프로젝트
- 이론
- struct
- MVVM
- 학과별커뮤니티
- 기초문법
- 실습
- WeatherKit
- RxSwift
- 프로토콜
- async
- 앱개발
- 네트워크
- 대표
- 구름톤 유니브
- 스트럭트
- ios
- 옵셔널
- swift
- Optional
- SwiftUI
- uikit
- collectionview
- 동시성
- Today
- Total
목록전체 글 (102)
스윞한 개발자
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/VqubD/btsD1bXJIRr/vukn0BbkuPCj3Wu5puDgK0/img.png)
싱글턴 패턴! 에 대해 포스팅해보겠습니다. 싱글턴 패턴은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 어떤 클래스가 단 하나의 인스턴스만을 생성하도록 보장하는 패턴입니다. 이 인스턴스는 어디서든 접근 가능하며, 전역적으로 공유되는 자원을 관리하거나 중복 생성을 피하기 위해 사용됩니다. class Singleton { static let shared = Singleton() // 유일한 인스턴스를 저장하는 정적 속성 private init() { // 초기화 코드 } func someFunction() { // 메서드 내용 } } 위의 코드에서 shared 라는 정적 속성을 사용하여 유일한 인스턴스를 생성하고자 저장합니다. 생성자 private init()를 통해 외부에서의 직접적인 인스턴스..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ujqjZ/btsD5yKm4Yn/kJ0YHuK1crirxVJiyMO4y0/img.png)
struct 기본 생성자! 포스팅해볼게요 ㅎㅎ 스위프트에서 struct는 값 타입을 정의할 때 사용되는 키워드입니다. struct는 클래스와 달리 값 복사가 이루어지는 특성을 가지며, 기본 생성자를 자동으로 제공합니다. 기본 생성자는 모든 프로퍼티에 초기값이 제공되어 있거나, 옵셔널 프로퍼티가 있는 경우 자동으로 생성됩니다. struct Point { var x: Int var y: Int } // 기본 생성자 사용 let origin = Point(x: 0, y: 0) print("x: \(origin.x), y: \(origin.y)") // x: 0, y: 0 Point 구조체는 'x'와 'y'라는 두 개의 프로퍼티를 가지고 있습니다. 구조체는 기본 생성자를 자동으로 제공합니다. 이 기본 생성자는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/EhhtW/btsD4Vll22w/i9aV35nbVIVsfkmMlakom0/img.png)
이번 시간에는 다양한 고차함수! 기초 문법에 대해 정리해보았습니다 ㅎㅎ 옛날 포스팅에서 정리한 고차함수 뿐만 아니라 훨씬 많은 종류의 고차함수가 많더라구요 차근차근 다 정리해볼게요! reduce는 스위프트의 고차함수 중 하나로, 컬렉션(배열, 딕셔너리, 세트)의 요소들을 결합하거나 축소하여 하나의 결과값을 생성하는 함수입니다. 주로 초기값과 클로저를 활용하여 컬렉션 내의 요소들을 반복하면서 연산을 수행합니다. reduce 기본 형식 func reduce(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result initialResult : 연산의 초기값으로 사용될 값입니다. nextP..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/8jU7W/btsD2uCIK3a/2XYzNZOt2OcWRzU6HXmCLk/img.png)
이번 포스팅에서는 콜렉션에 대해 정리했습니다!! 스위프트에서 콜렉션을 합치는 방법은 다양한 메서드와 연산자를 사용하여 수행할 수 있습니다. 주로 배열과 딕셔너리를 합치는 경우에 많이 사용되며, 이를 통해 새로운 콜렉션을 생성하거나 기존 콜렉션을 수정할 수 있습니다. 배열 합치기 let array1 = [1, 2, 3] let array2 = [4, 5, 6] let concatenatedArray = array1 + array2 print(concatenatedArray) // 출력: [1, 2, 3, 4, 5, 6] var array1 = [1, 2, 3] let array2 = [4, 5, 6] array1.append(contentsOf: array2) print(array1) // 출력: [1, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cy0qDk/btsD3lytppK/LFFKjRoXHcAqHG3pRW0FkK/img.png)
이번 포스팅에서는 간단한 여러 Swift 기초 문법에 대해 정리해보겠습니다! Dictionary grouping 스위프트에서 딕셔너리 grouping 기능은 컬렉션 내의 항목을 특정 기준으로 그룹화하는 데 사용됩니다! 딕셔너리 grouping 함수는 새로운 딕셔너리를 생성하며, 각 그룹의 키는 지정된 기준에 따라 생성됩니다. let values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] let groupedByEvenOdd = Dictionary(grouping: values, by: { $0 % 2 == 0 }) print(groupedByEvenOdd) 배열의 요소를 짝수와 홀수로 그룹화하여 새로운 딕셔너리를 생성합니다. 결과 [false: [1, 3, 5, 7, 9], true: ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cAfF1Z/btsD0LR40iH/IJq8rGMlMC4YbcKdKt2Iak/img.png)
음성녹음으로 음성메모를 하는 프로젝트를 진행하기 위해 먼저 AVFoundation에 대해 숙지하고! 시작해보려고 합니다. 그래서 이번 포스팅은 AVFoundation에 대해 정리해보았습니다.ㅎㅎ AVFoundation 캡쳐, 재생, 편집 및 export 등의 클래스를 제공합니다. 카메라 장치 제어는 카메라 입력을 위한 캡쳐 세션을 제공하고 캡쳐 디바이스를 사용해 사진/비디오 캡쳐에 대한 카메라 제어를 할 수 있습니다. 오디오 처리는 재생/녹음/혼합 및 다양한 이펙트 적용/시스템 오디오 상호작용은 av audio 세션을 이용해 시스템의 오디오 설정 사용 가능합니다. AVFoundation : 시청각 에셋으로 작업하고, 카메라 장치를 컨트롤하며 오디오를 처리하고 시스템 오디오 인터렉션을 구성합니다! IOS ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bNPu1b/btsDZ0IKGO6/IdsW6PAApStQKotJi4kAR1/img.png)
이번 기초문법 포스팅에서는 디자인패턴 빌더패턴에 대해 정리해보았습니다! 빌더 패턴은 객체 생성 과정을 추상화하고 복잡한 객체를 구축하기 위한 디자인 패턴 중 하나입니다. 이 패턴은 생성자의 매개변수가 많거나 복잡한 경우, 객체 생성을 더 편리하게 만들어주며 가독성을 높일 수 있는 방법을 제공합니다. 주로 복잡한 객체의 생성을 단순화하고, 객체의 속성을 설정하는 과정을 명확하게 하기 위해 사용됩니다. 빌더 패턴은 주로 객체의 생성이 복잡하거나 객체의 속성이 많을 때 사용됩니다. 예를 들어, 사용자 인터페이스를 구성하는 데 사용되는 객체, 데이터베이스 쿼리 객체, 또는 다양한 속성이 있는 그래픽 객체 등이 빌더 패턴을 활용할 수 있는 대표적인 예시입니다. Swift에서는 빌더 패턴을 구현하기 위해 프로토콜과..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FKFAj/btsDZK0cSS1/zvwXpPuwLPPYvY0wLx42LK/img.png)
이번 포스팅은 멀티트레일링 클로져! 입니다. 멀티트레일링 클로저(Multi-trailing Closure)는 Swift에서 클로저가 함수의 마지막 매개변수로 전달될 때 사용되는 문법적인 편의성을 제공합니다. 이를 사용하면 코드의 가독성을 향상시킬 수 있습니다. 멀티트레일링 클로저는 함수 호출 시 클로저의 중괄호를 괄호 밖으로 빼내어 사용하는 것을 의미합니다. func someFunction(completion: () -> Void) { // 함수 구현 completion() } // 클로저를 전달할 때 중괄호를 괄호 안에 두는 경우 someFunction { // 클로저 구현 } 일반적인 클로저 전달 방법은 위와 같습니다. 하지만 멀티트레일링 클로저를 사용하면 클로저를 괄호 밖으로 뺄 수 있습니다! 멀티..