apple/iOS, Documentation 79

[iOS] CoreData 정리 이론 (1/2)

[iOS] CoreData 정리 이론 (1/2) CoreData에 대해서 알아봅시다. 1편에서는 개념과 이론을 중점으로 서술하며, 코드 설명은 2편에서 이어집니다. [iOS] CoreData 정리 이론 (1/2): https://rldd.tistory.com/587 Core Data란? - 코코아 개발 환경을 통해 제공하는 인 메모리(In-Memory) 방식의 데이터 관리 프레임워크. - 이를 통해 데이터베이스 한경과 유사하게 데이터 CRUD과정을 수행할 수 있음. - Apple 생태계 환경(iOS, macOS 등)을 지원하고 objc와 swift언어에서 모두 사용할 수 있음. - 인 메모리 방식 기반이긴 하나, 내부적으로는 SQLite 같은 영구 저장소에 보조적으로 데이터를 저장할 수 있기 때문에 앱이..

[Swift] plain ol' data(POD)

plain ol' data(POD) 👇 애플 문서에 나와있는 설명 [apple swift docs](https://github.com/apple/swift/blob/main/docs/ABIStabilityManifesto.md#type-properties) - 어떤 데이터 타입은 단순히 데이터를 저장하고 추가적인 복사, 이동 또는 소멸 의미가 없습니다. 즉, trivial(혹은 POD)으로 알려진 이 데이터는 그들의 비트를 복제하는 것으로 copy할 수 있고, deallocation를 통해 소멸된다. 만약 모든 멤버의 타입이 trivial이라면 그것또한 또한 trivial 타입입니다. - 어떤 타입이 비트 단위로 이동가능하다 라는 것은 그것의 주소에 의존하는 어떠한 사이드 테이블의 참조도 없을 때를 의미..

[UIKit] UILabel Inset

UILabel Inset UILabel의 text와 근간이 되는 label의 고유 view가 가지는 것 사이에 여유공간을 주기 위한 코드 InsetLabel /// UILabel의 text와 컨테이너 사이의 inset값을 설정할 수 있는 커스텀 라벨 final class InsetLabel: UILabel { /// text와 UILabel 사이의 inset값을 설정 var edgeInsets: UIEdgeInsets = .init(top: 2.0, left: 8.0, bottom: 2.0, right: 8.0) override func drawText(in rect: CGRect) { super.drawText(in: rect.inset(by: edgeInsets)) } override var int..

[WWDC23] Meet MapKit for SwiftUI

Meet MapKit for SwiftUI 🔨 Xcode 15.0 Beta iOS 17.0 + Apple M1 Max WWDC23 - Video https://developer.apple.com/wwdc23/10043 Meet MapKit for SwiftUI - WWDC23 - Videos - Apple Developer Discover how expanded SwiftUI support for MapKit has made it easier than ever for you to integrate Maps into your app. We'll show you how... developer.apple.com 이번 WWDC23에서 흥미로운 세션이 많았지만, 가장 끌리는 MapKit을 정리해보고자 한다. 특히..

[Swift] 커링(Currying)

# Currying 함수형 프로그래밍을 위한 Currying 학습. # 계기 - SwiftUI를 사용하여 View를 모듈화를 시도. - 더 잘 만들기 위해 함수형 프로그래밍의 해당 개념에 대한 학습이 필요하다고 느낌. # 목표 - 간단한 덧셈 구현 (Level 1) - 정규표현식 구현 (Level 2) - Reduce, Map, Filter 구현 - FlatMap, CompactMap 구현 (⚠️ 실패한 구현) : 기록하기 위해서 적어둠. # 참고에서는 UI와 관련한 클로저를 함수형으로 받아서 간결하게 처리하는 예제도 있으니 확인하면 좋음. ❗️ 실패한 구현인 이유 : 결과값이 다르게 나타남. # 파일 # 간단한 덧셈 구현 (Level 1) import Foundation public class LEVE..

[iOS] UIImage.Orientation

UIImage.Orientation 카메라의 어떤 방향으로 찍어도 나는 사용자가 봤을 때 위 방향으로 나타나기를 바랬다. 그러니까 똑바로 들고 찍어도, 오른손으로 눕혀 찍어도, 거꾸로 찍어도, 왼손으로 눕혀 찍어도 모두 동일하게 나타나기를 바랬다. 카메라의 경우에는 스마트폰의 앞 부분으로 촬영하면 front 스마트폰의 뒷 부부분으로 촬영하면 back 옵션이 존재한다. // 전면 카메라 let front = AVCaptureDevice.default(.builtInDualCamera, for: .video, position: .back) // 후면 카메라 - 후면의 경우 아이폰에 카메라가 여러개가 되면서 옵션이 다양해짐. let back = AVCaptureDevice.default(.builtInWide..

such module 'RxCocoaRuntime'

such module 'RxCocoaRuntime' SPM으로 RxSwift 받아서 RxTest, RxBlocking 사용하려니까 위와 같은 에러가 나타남.  아래 깃헙 issue를 보듯이 해당 문제는 다른 개발자분들도 많이 겪고 있는것으로 보임.https://github.com/ReactiveX/RxSwift/issues/2277 No such module 'RxCocoaRuntime' · Issue #2277 · ReactiveX/RxSwiftShort description of the issue: I'm facing a strange issue and I don't know if it is a bug or I'm just missing something. I'm currently working fo..

Swift HTML 코드 로드하기

Swift HTML 코드 로드하기 🚨 문제상황 🚨 노션 웹 페이지를 webView를 통해 보여주고 있었는데, 로딩이 오래걸린다는 문제점이 있었음. 이를 개선해보고자 했고, 노션 페이지를 내보내기를 통해 HTML, PDF로 바꾸어서 서버에서 내려주는 방식으로 시도해보기로 함. 노션 페이지를 PDF로 내보내서, PDFKit을 사용하는 방법에는, 보여주고자 하는 페이지의 특성이랑 PDF로 뚝뚝 끊기는 것이 맞지 않아서 어색했으며, 무엇보다도 mac의 아이콘이 window화 되어서 예쁘지 않다라는 큰 문제점이 있었음 결국 직접 notion 주소를 호출하는 것이 아닌 html주소를 호출해보고자 함. 🌿 결과물 UI 🌿 - 왼쪽: 노션페이지를 webView를 통해 load한 것 ✅ 장점: 노션에 구성한 UI를 그대..

[Moya] Unable to parse empty data 대응하기

Unable to parse empty data 대응하기 Moya 연습을 위해 사용한 사이트: https://reqres.in/ Reqres - A hosted REST-API ready to respond to your AJAX requests Native JavaScript If you've already got your own application entities, ie. "products", you can send them in the endpoint URL, like so: var xhr = new XMLHttpRequest(); xhr.open("GET", "https://reqres.in/api/products/3", true); xhr.onload = function(){ conso req..