앱 심사 과정에서 생긴 리젝의 결과를 한번 확인해보려고 한다. 먼저 첫번째로 디자인 관련 문제와 두번째로 권한 요청 시 설명에 대한 내용이다! 첫번째 reject - Design처음 받은 리젝 사유 중 디자인쪽의 문제는 크게 HIG를 해치는 컴포넌트의 구성이 아닌 마이페이지로 넘어갔을때 다음화면으로 가지지 않는 오류가 발생해서 생긴 리젝사유였다. ㅠㅠ 이 부분을 해결하기 위해 페이징으로 넘어가고 있는 메인페이지의 상태 중 플로팅 버튼을 띄우는 메서드의 위치가 로그아웃 등 특정 알럿이 뜬 이후에도 사라지지 않도록 구현하는 것으로 수정하였다 🙂case 4: let alert = UIAlertController(title: "로그아웃 하시겠습니까?", message: "로그인 창으로 이동합니다", pref..
드디어 우리가 만든 앱을 출시하기 전에 TestFlight를 사용해 생각지 못한 에러를 찾아보려고 한다 🙂 먼저 TestFlight가 왜 필요한지에 대해 설명하고 테스터를 등록하고 권한을 부여하는 과정과 초대 받은 테스터의 사용 방법을 살펴보자 TestFlight란?먼저 TestFlight란 애플이 제공하는 iOS 앱 테스트 플랫폼으로 개발자들이 앱을 배포하기 전에 베타 테스트를 수행할 수 있도록 도와준다.TestFlight를 통해 개발자는 테스트 초대장을 발송하고 테스터들이 앱을 설치하고 피드백을 제공할 수 있다. TestFlight의 주요 기능베타 테스트 관리 : TestFlight는 베타 테스트를 쉽게 관리할 수 있는 도구를 제공한다, 개발자는 앱의 새로운 빌드를 업로드하고, 테스트 초대장을 발송..
오늘은 소셜 내 유저가 올린 게시물을 차단할 수 있도록 하는 기능을 구현하려고 한다. 이 기능은 애플 정책에 따라 특정 게시물을 보지 않거나 숨길 수 있어야 하기 때문에 꼭 들어가야 하는 기능 구현이다. 차단 된 사용자 목록 가져오기파이어 베이스에 저장되어있는 차단된 목록을 불러와 차단 내용을 가질 수 있도록 메서드를 구현해준다. func fetchBlockedUsers() { Task { do { let users = try await AuthenticationManager.shared.getBlockedUsersSummaries() self.blockedUsers = users self.filteredUsers = user..
오늘은 상세 페이지 내 메이트를 추가할 수 있는 로직을 구현하였다. 이전에 가지고 있던 유저 데이터를 사용하기엔 필요없는 데이터를 많이 가져오는 것 같아 새로운 메이트에서 필요한 값만 가져와서 사용할 수 있도록 구현하였다.모델 데이터 생성struct UserSummary: Codable, Hashable { let uid: String let email: String let displayName: String let photoURL: String? var isMate: Bool func hash(into hasher: inout Hasher) { hasher.combine(uid) } static func == (lhs: UserSum..
오늘은 프로젝트 기능 구현 중 추가적인 기능을 넣어주고 싶었는데 기능마다 버튼을 넣어주는 것을 싫고 이전에 팀원분께서 사용했던 UIMenu를 사용해서 한곳에 넣어 두고 버튼을 하나만 넣어 그 버튼을 누르면 메뉴 버튼이 뜰 수 있도록 구현하려고 한다. 특정 핀로그를 수정하기 , 삭제하기 , 원하지 않은 게시물 숨기기 , 공유하기 등 여러가지 기능을 넣어보려고 한다.optionsButton.addTarget(self, action: #selector(setupMenu), for: .touchUpInside)버튼을 하나 만들어 준 뒤 setupMenu의 메서드가 실행되도록 설정한다.@objc func setupMenu() { let shareAction = UIAction(title: "공유하기", im..
오늘은 갤러리 컬렉션 뷰 중에서 사진을 꾸욱 누르면 사진이 흔들리고 안보이던 삭제 버튼이 보이면서 개별적으로 사진을 삭제할 수 있는 기능을 구현하여 해당 내용을 기록으로 남겨두려고 한다. 먼저 컬렉션 뷰 셀에 꾸욱 눌러 애니메이션을 넣기위해 코드를 구현해주자let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPressGesture(_:)))galleryCollectionView.addGestureRecognizer(longPressGesture)애플에서 제공해주는 UILongPressGestureRecognizer를 사용해서 구현을 할 예정이다.구현 방법은 우리가 많이 사용하는 addTar..