swift82 some (opaque type)으로 type 숨기기 Opaque type의 특징은 caller는 해당 값이 구체적으로 어떤 것인지 알수 없다는 점입니다. 그래서 이름도 불확실하다는 의미에서 opaque인 거겠죠? 그렇다면 이런 opaque type이 왜 구체적인 타입을 숨기는 지, 숨김으로써 얻게 되는 이점은 무엇인지 알아보겠습니다. 아래 예시를 보면, Farm이라는 객체 안에 hungryAnimals라는 Collection타입의 변수가 있고 해당 변수를 looping하며 연산을 하는 feedAnimals()라는 메서드가 있습니다. extension Farm { var hungryAnimals: LazyFilterSequence { animals.lazy.filter(\.isHungry) } func feedAnimals() { for animal in .. 2024. 1. 23. 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. 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. FlexLayout 사용 시 에러 주의 사항 FlexLayout을 SPM으로 설치하는 경우 아래와 같은 에러가 발생할 수 있습니다. Could not build Objective-C module 'FlexLayoutYogaKit' 이런 경우에는 TARGET > Build Settings > Preprocessing Macros 로 가서, 'FLEXLAYOUT_SWIFT_PACKAGE=1' 를 추가해 주면 됩니다. Scheme 타이틀 옆에 커서를 대면 "+"버튼이 나오는데, 클릭하면 아이템이 추가 됩니다. (설치 설명 부분에 나와있습니다. https://github.com/layoutBox/FlexLayout#in-an-xcode-target) 2023. 12. 31. 이전 1 2 3 4 5 6 ··· 14 다음 반응형