Swift 개발을 하다 보면 자연스럽게 구조체(struct) 를 많이 사용하게 됩니다. Apple의 프레임워크나 Swift 표준 라이브러리도 struct 기반으로 설계된 부분이 많고, SwiftUI 역시 Value Semantic 위에서 동작한다고 해도 과언이 아닙니다. 오늘은 이 Value Semantic이 무엇인지, 왜 중요한지, 그리고 Swift가 이를 통해 어떤 장점을 얻는지 정리해보려고 합니다.그럼 시작해보겠습니다. ✅ 1. Value Semantic이란?Value Semantic은 값을 전달할 때 실제 값이 복사되어 전달되는 방식을 의미합니다.즉, 복사본을 주고받기 때문에 변경이 원본에 영향을 끼치지 않습니다. 이 단순한 개념이 Swift의 안전성, 예측 가능성, 그리고 SwiftUI의 효율..
안녕하세요, Diana입니다.오늘은 저번 글에 이어서 iOS에서의 BLE 와 CoreBluetooth에 대해 알아보려고 합니다. ✅ iOS 에서의 BLE iOS에서는 Bluetooth 4.0 중 BLE(Bluetooth Low Energy) 기능만을 CoreBluetooth 프레임워크를 통해 제공합니다.Classic Bluetooth(오디오, HID 등)는 각각 별도의 프레임워크로 분리되어 있으며, CoreBluetooth는 BLE 전용 API입니다. CoreBluetooth에서의 Bluetooth 개념 대응표는 아래와 같습니다. BLE 개념Corebluetooth 클래스설명CentralCBCentralManagerBLE Central 역할을 담당PeripheralCBPeripheralBLE Periph..
안녕하세요 Diana 입니다.어느덧 앨범 만들기도 6편까지 왔습니다.이제 제일 재밌어보이는 부분만 남았는데요. 앨범에서 제일 중요한건 리스트에서 원하는 이미지와 동영상을 선택해서 확인하는거죠.이미지의 경우는 화면전환을 하며 PinchZoom을 같이 구현해놨기 때문에 마지막으로 동영상 재생을 구현해보려고 합니다. ✅ AVFoundation이란?동영상 재생을 구현하기 전에 AVFoundation이라는 프레임워크가 무엇인지 먼저 이해할 필요가 있습니다. 공식 문서에 따르면, AVFoundation은 시청각 미디어를 다루는 데 필요한 핵심 기능을 제공하는 프레임워크로카메라 제어, 오디오 처리, 그리고 시스템 오디오와의 상호작용까지 폭넓은 영역을 담당합니다. AVFoundation을 사용하면 미디어 파일을 생성..
알고리즘 문제를 풀다보면 사용자의 input을 받는 경우가 자주 있습니다.이때 저는 readLine()을 사용해서 사용자 입력을 받곤 했지만 input의 범위가 커져 시간초과가 나는 경우도 있어 찾아보게 된 내용을 정리해보려고 합니다. ✅ readLine() 공식문서에 따르면 readLine은 한 줄의 끝 또는 EOF(End of File) 까지 입력된 String 값을 받아온다고 합니다.readLine의 return 값은 Optional이며 이는 EOF에 이미 도달 했을 때 nil을 반환해주기 때문이라고 합니다. 일반적으로 Command Line Tool에서 입력을 받아올 때 사용되지만 return 값이 무조건 String 형태라 다른 형태로 사용하기 위해서는 타입을 변경해줘야합니다. reaLin..
안녕하세요 Diana 입니다. 오늘은 Transitioning Delegate를 사용하여 화면전환 애니메이션을 직접 구현해보도록 하겠습니다. 시작하기에 앞서 제가 구현하고자 하는 애니메이션은 아래와 같습니다. 간단하게 이미지로 그려보면 아래와 같습니다.Cell에서 시작한 화면이동 Present 애니메이션이 진행되며 다음 뷰로 이동을 할거고 반대로 Dismiss 또한 애니메이션을 이용하여 처리할 예정입니다. 저는 애니메이션을 구현하기 위해 UIViewTransitioningDelegate를 만족하는 CustomTransition 클래스를 따로 구현하여 필요할때마다 가져와 사용할 수 있도록 하였습니다.CustomTransition 코드에 앞서 아래 코드는 Cell이 선택되었을 때 CustomTransit..
- Total
- Today
- Yesterday
- 팁킷
- tuist v4
- 알고리즘
- 코어데이터
- BoxedType
- opaquetype
- ios
- boxedprotocoltype
- kakaomapssdk
- Algorithm
- tipview
- Concurrency
- PHCachImageManager
- Xcode
- opaque
- ViewBuilder
- capsulation
- Tuist
- swift
- 개발자코테
- ClaudeCode
- SwiftUI
- boxedprotocol
- asymptoticnotation
- coredata
- 스위프트
- 빅세타표기법
- iphone
- UIViewTransitioningDelegate
- private(set)
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |