-
Notifications
You must be signed in to change notification settings - Fork 5
221121_스크럼
Byunghak Ko edited this page Nov 21, 2022
·
1 revision
- 준영: 기존에 SP2로 설정했던 대로 진행할 계획. 로그인은 중지. 시스템 on/off는 ui 관련된 작업이라 우선순위에서 밀릴 수 있음.
- UseCase를 누가 담당할까?
- 코디네이터 태스크를 만들어야 된다.
- 전체적인 UseCase에 대한 설계
- 병학: 채팅 관련 파이어베이스 구현한 것 PR 올리고, UseCase 기반 태스크 이슈 생성
- 창묵: MainMap ViewModel 생성 및 바이딩, UseCase 기반 태스크 이슈 생성
- 영욱: 친구목록 코디네이터, DIContainer 생성, UseCase 기반 태스크 이슈 생성
- 동은: UseCase 기반 태스크 이슈 생성, 뷰모델 및 코디네이터 수정
- 준영: UseCase 기반 태스크 이슈 생성, 뷰모델 및 코디네이터 수정, DIContainer 주입하게 수정.
-
병학
-
AuthService는 repository로 추상화 할게 없다.
- UseCase에서 service를 주입받아서 써도 좋을 것 같다.
- 아니면 AuthRepository로 명명하는 것도 괜찮아 보입니다.
- 결론
- 인증서버가 바뀌어도 교체할 수 있게 AuthRepository와 AuthService를 나누기로 결정
protocol AuthRepository { func verifyUser() -> Completable func fetchCurrentUserEmail() -> Single<String> func loginWithApple(token idTokenString: String, nonce: String) -> Completable func logout() -> Completable func deleteCurrentUser() -> Completable } final class DefaultAuthRepository: AuthRepository { let authService: AuthService? init(authService: AuthService) { self.authService = authService } }
protocol AuthService { func verifyUser() -> Completable func fetchCurrentUserEmail() -> Single<String> func loginWithApple(token idTokenString: String, nonce: String) -> Completable func logout() -> Completable func deleteCurrentUser() -> Completable } final class DefaultAServerAuthService: AuthService { } final class DefaultFirebaseAuthService: AuthService { }
-
-
코드 템플릿
ViewController
import UIKit final class <#code#>: UIViewController { // MARK: - UI properties // MARK: - Properties // MARK: - Lifecycles override func viewDidLoad() { super.viewDidLoad() } // MARK: - Helpers }
Viewmodel 템플릿
import Foundation import RxSwift struct <#code#>ViewModelActions { } protocol <#code#>ViewModelInput { } protocol <#code#>ViewModelOutput { } protocol <#code#>ViewModel: <#code#>ViewModelInput, <#code#>ViewModelOutput { } final class Default<#code#>ViewModel: <#code#>ViewModel { private let actions: <#code#>ViewModelActions private let disposeBag: DisposeBag init(actions: <#code#>ViewModelActions) { } }
DIContainer
import Foundation final class <#code#>DIContainer { // MARK: - Dependencies func make<#code#>Dependency() { } // MARK: - Services func make<#code#>Service() { } // MARK: - UseCases func make<#code#>UseCase() { } // MARK: - Repositories func make<#code#>Repository() { } // MARK: - ViewModels func make<#code#>ViewModel() { } // MARK: - Create viewController func create<#code#>ViewController() { } // MARK: - Coordinator func make<#code#>Coordinator() { } }
- 병학
- 주말 작업한거 PR 머지 → 리뷰 해주시면 감사하겠습니다
- 채팅을 위한 RealtimeDB 구조에 대해서 다시 구현 중
- FCM 서비스를 클라이언트에서 활용하는 법을 학습중
- FCM메시지를 보통 서버에서 보내는 로직이 공개되어 있다.
- iOS 클라이언트에서 직접 보내는 기능이 없습니다. → REST API → 액세스토큰이 필요함. → 액세스토큰을 어디서 받아와야 되나?
- 창묵
- 메인지도 Coordinator, DIContainer, UseCase, Repository 구현 중 + ViewModel(RxSwift)
- 준영
- Logout, Dropout UseCase, Repository 구현 (PR 올림), UpdateProfileUseCase 구현 (PR 안올림), ProfileSettingViewModel 구현 중 → 올린 PR은 그대로 두고, 병학님이 AuthRepository 수정 예정
- ProfileSettingViewModel에 프로필 가져오는 방법 고민중, 프로필 저장시 이미지 경로 어떻게 설정해야 하는지 고민 → 이미지 먼저 업로드 (파이어베이스 내에서 경로를 String으로 받음), 그 후 프로필 등록, 업로드
- 프로필 등록 때, uuid는 랜덤으로 생성해서 전달
- 영욱
- 친구 목록 (Coordinator, DIContainer, UseCase, Entity) 구현
- 동은
- 프로필 상세, 채팅방 생성 화면의 usecase 구현중
- 머지된 병학님 코드로 수정을 해야할듯
- 프로필 상세 → 채팅방 화면 전환 고민중
- 프로필 살세 present →
채팅시작 버튼 클릭
→ 프로필 살세 dissmiss → 채팅 화면 →뒤로가기 버튼 클릭
→ 채팅 목록
- 프로필 살세 present →
- UploadChatRoomInfoUseCase 를 dm과 groupchat 동일하게 upload 할 수 있는지?
- 프로필 상세, 채팅방 생성 화면의 usecase 구현중
Copyright © 2022 NearTalk