5주차 데모 발표 - Team-HGD/SniffMEET GitHub Wiki
- 반려견 정보와 프로필을 등록하고
- 같이 산책을 하고 싶은 사람과 직접 폰을 맞대는 방식으로 산책 메이트를 맺고
- 메이트에게 산책 신청을 보낼 수 있다.
-
VIPER
-
확실한 역할 구분을 위해서 도입
-
애증의 VIPER…
- Entity
- Builder
-
-
MPC, NBI
- MPC (Multipeer Connectivity) - 애플 디바이스끼리 Peer to Peer 통신을 하도록 지원해주는 기술
- NBI (Nearby Interaction) - 두 기기간의 거리와 방향을 알 수 있게 만들어 주는 기술
- 억까의 연속
-
MPC 연결성
-
NI 방향 측정
-
-
Supabase & Network Layer
- supabase 세팅
-
RLS 관련 설정 문제
- 더 상위의 role을 가진 권한으로 값을 읽어올 수 없던 문제
CREATE policy "Authenticated users can read" ON "public"."hgdtest" TO public USING ( (auth.role() = 'authenticated'::text) );
-
user_metadata
-
- supabase 세팅
- 반려견과 프로필 정보를 입력받아 익명 로그인하기
- MPC와 NBI로 P2P 통신하기
- 프로필 드랍으로 메이트 맺기
- 메이트에게 산책 요청하고 받기
- UI 작업
- Push Notification 산책 요청 주고 받기
- Push Notification 서버
-
스켈레톤 뷰
-
연결 작업
- Entity
- 키값

- 이번주 중에 MVP 기능 개발 끝내기
- 산책 로그 탭 만들기
- 산책하기 기능 (타이머, 지도 뷰)
- 리포트 기능 (주간, 월간)
-
UseCase 정리
- 의존 관계 개선하고 사용 방식 통일하기
struct SaveProfileImageUseCaseImpl: SaveProfileImageUseCase { private let remoteImageManager: any RemoteImageManagable private let userDefaultsManager: any UserDefaultsManagable init( remoteImageManager: any RemoteImageManagable, userDefaultsManager: any UserDefaultsManagable ) { self.remoteImageManager = remoteImageManager self.userDefaultsManager = userDefaultsManager } func execute(imageData: Data) async throws -> String { let fileName: String = UUID().uuidString try await remoteImageManager.upload( imageData: imageData, fileName: fileName, mimeType: .image ) try userDefaultsManager.set( value: fileName, forKey: Environment.UserDefaultsKey.profileImage ) return fileName } }
-
테스트
- UseCase 테스트
-
컨벤션 약간씩 다른 부분 수정