본문 바로가기

분류 전체보기213

some에 대해 알아보기 (any와 비교) some은 any처럼 protocol 앞에 붙일 수 있는 키워드이고 기능도 any와 비슷해 보여 설명을 읽어봐도 잘 와닿지 않았습니다. Opaque type이라고도 불리는 some은 보통 '역제네릭 타입, caller에게 concrete type을 숨기기 위함이다' 라는 말로 주로 설명이 되어있습니다.모두 맞는 말이지만 이해는 잘 안되고 "그냥 any 쓰면 안되는 건가?" 라는 생각만 들더라구요. 그러던 중에 Apple에서 제공한 영상을 보고 확실히 용법 차이가 이해가 되어서 기록해봅니다. 그 둘 간의 차이를 표로 먼저 정리해서 보겠습니다. some (default로 사용 권장) any 타입 정보 유무 O Hold fixed concrete type. (구체적인 타입에 대한 정보를 가짐.) Infer .. 2024. 1. 22.
WidgetKit - Timeline Provider 보호되어 있는 글 입니다. 2024. 1. 19.
SwiftUI에 MVVM 적용이 필요한가? 몇 개월 전에 SwiftUI에 MVVM 적용을 하지 맙시다! 라는 제목의 article을 본 적이 있습니다. 제목을 보고 'MVVM도 만능이 아니군' 이라는 생각이 들었는데, 이번에 관심을 가지고 해당 토픽에 대해 좀 더 알아보게 되었습니다. 왜 SwiftUI에 MVVM이 필요가 없는가? 일단 MVVM은 Model View ViewModel의 약자로 UI를 담당하는 View로직과 데이터를 처리하는 ViewModel을 깔끔하게 나누는 것에 관심을 갖는 패턴입니다. 저도 항상 사용해왔던 패턴입니다. 이 패턴을 사용하던 것에 익숙해지다보니, SwiftUI에서도 자연스럽게 사람들이 사용하고 있었던 것 같습니다. 하지만 사실 SwiftUI의 'view'는 어떤 종류의 타입도 conform 할 수 있는 protoc.. 2024. 1. 18.
Supabase PostgreSQL custom function 사용하기 Supabase를 직접 iOS 개발 시 사용해 보며 느꼈던 Supabase의 최대 장점은 바로 custom function이었습니다. Supabase는 PostgreSQL를 사용하는 database인데, custom function은 필요한 PostgreSQL function을 사용자가 직접 만들어서 function 이름으로 바로 쿼리가 가능하게 해주는 기능입니다. 사용 방법 만든 function은 rpc라는 method를 통해서 사용할 수 있습니다. let value: String = try await supabase.database .rpc("hello_world") .execute() .value 위에 예시는 "hello_world"라는 이름의 function을 사용하는 방법을 보여주고 있습니다. .. 2024. 1. 13.
SupaBase Swift로 사용해보기 개인 프로젝트를 할 때 백엔드 서비스로 매번 Firebase를 사용하다가, 최근 커뮤니티 모임에서 Supabase를 알게 되어 새로운 프로젝트에 적용해보게 되었습니다. Supabase는 'Firebase 대체 서비스'라고 소개되어 있는 만큼, Firebase에서 제공하는 대부분의 기능들 DB, Storage, Login(Auth), Realtime 등을 지원합니다. Firebase는 익숙하고 편리하기는 하지만 복잡한 쿼리를 할 때 불편한 구석들이 좀 있었습니다. 반면에 Supabase는 PostgreSQL로 직접 쿼리를 만들어 사용할 수 있다는 점이 가장 큰 매력으로 느껴졌고, 이번에 한 번 경험해보고자 사용하게 되었습니다. 1. SupaBase Supabase는 PostgreSQL hosting 서비스.. 2024. 1. 8.
Error: Library not loaded 혹은 Class ... is implemented in both ~ SPM을 사용하고 있고, 새로 더 추가한 라이브러리도 없으며 좀 전까지만 해도 잘 빌드해서 simulator run도 되었는데, 갑자기 Library not loaded 혹은 Class ... is implemented in both ~라는 로그가 생긴 일이 있었습니다. 두 에러 다 RxSwift가 명시되어 있었는데, 딱히 라이브러리 관련해서 나오는 구글링 답변은 없었습니다. 그러다가 Clean Build와 Derived Data를 삭제해 보고 run을 해보았더니 원래대로 정상적으로 build & run이 되었습니다. 혹시나 이런 에러를 겪는다면 한 번 두 가지 방법을 사용해보시기 바랍니다..! 2024. 1. 1.
반응형