4주차 내용 공유 - Team-HGD/SniffMEET GitHub Wiki
데모 발표
개발용 DB vs. 배포용 DB
피어 세션
뷰 크기 조절
UIScreen height에 사용했던 부분 UIScreen.main.bound → deprecated되었다..
뷰의 정확한 위치를 알기 위해서는 ViewDidLayout 전에 실행되는 부분에서 파악해보자
Swift6
swift6 사용하는 그룹이 있는데 싱글톤 사용이 막혀있다고 한다. DIContainer actor / MainActor
키워드 추가하면 사용할 수는 있다.
그럼 URLSession 등 싱글톤 패턴 어떻게 사용하지? → 추측하기로는 actor로 되어있지 않을까
이런식으로 써야 된대요 허거덩~
OS Thread → Swift Concurrecy → GCD → 이런 순으로 공부하면 좋다구 하네요
@globalActor
actor MyActor {
static let shared = MyActor()
}
import Observation
@MainActor
@Observable
class Foo {
static let shared = Foo()
var state = 0
}
func foo() {
Task {
print(await Foo.shared.state)
}
}
우왕
Multipeer 연결
어찌저찌 한 방법… 알수없지만 당연히 그럴수밖에 없는 친구다
양방향으로 통신하고 있으면 어쩔 수 없이 연결이 끊긴다. (10초 ~ 2분)
초대를 단방향으로 보내야한다? → 그럼 초대를 누가 보내나
마스터클래스
MPC + NI 기능 문제, 잔여 뷰작업
기능이 동작이 멈춰있는 상황에서, 그로인해 뷰작업을 미뤄둔다면 좋은 진행상태는 아니다.
호스트를 따로 지정해서 연결을 맺을 수 있도록 하는 것도 방법이 된다.
이미지 활용
이미지는 이미지 상태로 두는게 가장 좋다.
변경해서 DB에 직접 저장하려고 하지 말고, FileManager 등을 이용해 temp 파일이든 어디든 필요에 맞게 저장하고 url만 DB에 저장하는게 좋다.
thumbnail을 사용하게되더라도 따로 저장해서 url을 만들자.
이때, url 규칙을 나눠 thumbnail을 구분하면 된다.
인수 조건
인수조건은 결국에는 단지 기준이 되는 조건이라기 보다는
테스트하거나 시나리오를 보여주는 조건이라고 보면 된다.
세세하게 정해둘 필요까지는 없고, 최소 조건 정도를 정해두는 것이 좋다.
목표를 정하는 것이라고 생각하면 된다.
데드라인을 정할때도 구체적인 얘기들을 해야 결정하기 좋아진다.
월요일에 잘 활용해보자.