UIKIT (149) 썸네일형 리스트형 Combine 연산자 Combine에서 map, tryMap, 그리고 flatMap은 데이터 변환과 흐름 제어를 위해 사용되는 연산자로, 각각의 역할과 사용 사례가 다릅니다. 1. mapmap은 입력 값을 단순 변환하는 연산자입니다.에러를 발생시키지 않고, 입력 데이터를 동기적으로 처리할 때 사용됩니다.특징데이터를 변환하지만, 새로운 Publisher를 생성하지 않습니다.동기적 변환에 적합합니다.let publisher = Just(10) .map { $0 * 2 } // 10 -> 20 .sink { print($0) } // 출력: 20let publisher = Just(10) .map { $0 * 2 } // 10 -> 20 .sink { print($0) } // 출력: 20 사용 시점값의 변환.. 페이스북 로그인 기능 구현 https://developers.facebook.com/apps/?show_reminder=true Facebook business.facebook.comhttps://youtu.be/W8NzdN0h50I?si=fwvW92WfBDj__GZZ https://zoeful-log.tistory.com/131 [Swift] SwiftUI로 Facebook Login 구현하기Facebook 공식문서를 보고 정리해 놓은 글입니다. 더 자세한 내용 아래 링크를 참고해 주세요 😊 (오타정정 및 피드백 대환영🙌🏻) https://developers.facebook.com/docs/facebook-login/ios iOS - Facebook 로그인 -zoeful-log.tistory.com cocopod을 이용해서.. Firebase Firestore를 사용하여 팔로워(follower)와 팔로잉(following) 관계를 처리하는 기능 https://explorer89.tistory.com/308 ViewController 내에 init으로 viewModel 할당하는 이유SearchViewController에 SearchViewViewModel을 init을 통해 주입하는 구조는 의존성 주입(Dependency Injection) 패턴의 대표적인 예입니다. 이 방법은 코드의 재사용성, 테스트 가능성, 유연성을 높이기 위해 많이explorer89.tistory.com func collectionFollowings(isFollower: String, following: String) -> AnyPublisher { db.collection(followingPath) .whereField("follower", isEqualT.. ViewController 내에 init으로 viewModel 할당하는 이유 SearchViewController에 SearchViewViewModel을 init을 통해 주입하는 구조는 의존성 주입(Dependency Injection) 패턴의 대표적인 예입니다. 이 방법은 코드의 재사용성, 테스트 가능성, 유연성을 높이기 위해 많이 사용됩니다. class SearchViewController: UIViewController { let viewModel: SearchViewViewModel init(viewModel: SearchViewViewModel) { self.viewModel = viewModel super.init(nibName: nil, bundle: nil) } 1. 목적과 이유a. ViewController.. 유저를 검색하기 위한 함수 + Combine https://explorer89.tistory.com/306 FireStore 특정 사용자의 트윗 정보 가져오기 + Combinehttps://explorer89.tistory.com/305 Firestore에 새로운 트윗 저장 + Combine 비동기 처리https://explorer89.tistory.com/304 Firestore 데이터베이스에서 문서 업데이트, Combine 비동기작업https://explorer89.tistory.com/303 Firebaexplorer89.tistory.comfunc collectionUsers(search query: String) -> AnyPublisher { db.collection(userPath).whereField("username", isE.. FireStore 특정 사용자의 트윗 정보 가져오기 + Combine https://explorer89.tistory.com/305 Firestore에 새로운 트윗 저장 + Combine 비동기 처리https://explorer89.tistory.com/304 Firestore 데이터베이스에서 문서 업데이트, Combine 비동기작업https://explorer89.tistory.com/303 Firebase - Combine 프레임워크 사용 비동기 작업 처리 (저장) map VS flatmaphttps://explorerexplorer89.tistory.comfunc collectionTweets(retreiveTweets forUserID: String) -> AnyPublisher { db.collection(tweetsPath).whereField("autho.. Firestore에 새로운 트윗 저장 + Combine 비동기 처리 https://explorer89.tistory.com/304 Firestore 데이터베이스에서 문서 업데이트, Combine 비동기작업https://explorer89.tistory.com/303 Firebase - Combine 프레임워크 사용 비동기 작업 처리 (저장) map VS flatmaphttps://explorer89.tistory.com/302 collectionUsers(retreive id: String)https://explorer89.tistory.com/301 CreateUser 함수?httpsexplorer89.tistory.com func collectionTweets(dispatch tweet: Tweet) -> AnyPublisher { db.collection(tw.. Firestore 데이터베이스에서 문서 업데이트, Combine 비동기작업 https://explorer89.tistory.com/303 Firebase - Combine 프레임워크 사용 비동기 작업 처리 (저장) map VS flatmaphttps://explorer89.tistory.com/302 collectionUsers(retreive id: String)https://explorer89.tistory.com/301 CreateUser 함수?https://explorer89.tistory.com/300 AnyPublisher?https://explorer89.tistory.com/299 Combine, FirebaseStore 데이터 저장https:explorer89.tistory.com func collectionUsers(updateFields: [String: A.. 이전 1 2 3 4 5 6 7 ··· 19 다음