Final (17)
Custom TextField 설정 class CustomTextField: UITextField { init(placeholder: String, keyboardType: UIKeyboardType = .default, target: Any?, action: Selector) { super.init(frame: .ze...
Custom TextField 설정 class CustomTextField: UITextField { init(placeholder: String, keyboardType: UIKeyboardType = .default, target: Any?, action: Selector) { super.init(frame: .ze...
신고 기능 구현 커뮤니티, 리뷰같은 특성상 이미지와 내용이 중요한데, 이때 폭력적, 선정적인 내용이 담겼을때 신고를 할 수 있게 하여 사후처리를 할 수있게 해야한다. 해당 기능이 없을 경우 앱 배포 심사시 Reject사유가 충분히 될 수 있으므로, 해당기능을 구현해보려 한다. 우선 리뷰를 보는 VC(DetailedReviewVC)에 button을...
코드 리팩토링 기존에 있던 걸 viewmodel로 넘겨서 좀더 단순하게 바꾼다. func checkUserisBlock(uid: String, completion: @escaping (Bool) -> Void) { signManager.fetchUserData(uid: uid) { error, dataSnapshot in ...
Cell 의존성 주입 private lazy var setButton: UIButton = { let button = UIButton(type: .system) button.setTitle("차단", for: .normal) button.setTitleColor(.systemBlue, for: .no...
ManageVC 만들기 유져나, 게시글 관리를 위한 VC를 만드려고한다. 의존성 주입을 나름대로 해서 SceneDelegate에서 VC를 호출하게 했다. func switchToGreetingViewController() { greetingVC = GreetingViewController( appleTapped...
이미지 업로드 TS 1. 문제점 현재 문제점은 이미지를 수정하게 되면 새롭게 이미지를 업로드 하는 방식으로 이루어 진다. 그러다보니 Storage에 불필요한 데이터가 계속 쌓이게 되고, 이는 서버 용량에도 부담이 된다. 그래서 이를 개선하기 위해 이미지를 수정하게 될 경우 파일 값을 일정하게하여 덮어씌우는 방식으로 하려고한다. 2. 이미지 업...
Extension을 사용한 Alert 구현 extension UIViewController { func showMessage(title: String, message: String, completion: (() -> Void)? = nil) { let alert = UIAlertController(title: ti...
로그인 상태에따라 다른 페이지 보여주기. SceneDelegate에서 함수를 하나 만들어서 실행하면 문제가 해결될걸로 보인다. if Auth.auth().currentUser != nil { window.rootViewController = tabbarController } else { ...
내가쓴 리뷰를 확인 할 수 있는 기능 구현 이건 그냥 uid에 해당하는 documents만 가져오면 된다. UserReview의 컬렉션에서 field가 uid에서 유져의 값과 일치하는 녀석만 가져오게 하면된다. 1. userManager 작성 func getMyReview(uid: String, completion: @escaping(Query...
리뷰 작성글을 보여지게 구현 1. 모델링 이젠 Firebase의 모델링이 중요해진다. 부리더인 미림님이 구현한 VC에서 유져가 작성한 글을 올리는 걸 해보려한다. 물론 모델링의 회의도 같이 해보았다. Collection은 UserReview로 하기로했다. 우선 모델링은 둘이서 회의를 하면서 진행했고 다음과 같다 struct ReviewMod...