앱 내에서 리뷰 요청을 어떻게 하는 지 알아보자.
앱 출시 때 마다 사용자들한테 리뷰를 받는 것이 필자에겐 정말 큰 행복이다. 근데 이번 SeoulSalam은 다운로드 수가 꽤 나오는 데에도 불구하고 이용자 리뷰가 생각보다 안 나와서 섭섭했다...
리뷰 요청을 위해서는 StoreKit에 있는 SKStoreReviewController의 requestRiview() 함수를 불러와줘야 한다.
그리고 구현 전에 확인해야할 사항이 있다!!
바로 애플 개발자 웹사이트의 앱스토어 리뷰와 HIG의 리뷰인데, 해당 사안들을 전부 다 확인하면 좋지만, 몇 가지 중요한 부분들을 해석하고 공유해드리려고 한다.
1. You can prompt for ratings up to three times in a 365-day period.
리뷰요청을 1년에 딱 세 번 만!!
2. Avoid Pesting People. Repeated rating prompts can be irritating, and may even negatively influence the user’s opinion of your app. Allow at least a week or two between rating requests and only prompt again after the user has demonstrated additional engagement with your app.
반복적인 리뷰요청으로 사람들을 괴롭히면 앱에 부정적인 영향이 갈 수 있습니다. 요청 사이엔 최소 1~2 주의 시간이 필요합니다.
이제 실제 코드인데, 많은 예제들이 UIKit이었기 때문에 SwiftUI에서 조금 더 간편하게 뷰 모디파이어를 이용하여 구현을 하는 것으로 했다.
import SwiftUI
import StoreKit
struct ReviewCounter: ViewModifier {
@AppStorage("reviewCounter") private var reviewCounter = 0
func body(content: Content) -> some View {
content
.onAppear {
reviewCounter += 1
print("reviewCounter", reviewCounter)
}
.onDisappear {
if reviewCounter > 3 {
reviewCounter = 0
DispatchQueue.main.async {
if let scene = UIApplication.shared.connectedScenes
.first(where: { $0.activationState == .foregroundActive })
as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
}
}
}
}
}
extension View {
func reviewCounter() -> some View {
modifier(ReviewCounter())
}
}
우선 @AppStorage로 카운터를 저장할 변수를 만들어주고, 뷰 모디파이어로 컨텐트가 OnAppear일 때엔 숫자를 올리도록 하고 OnDisappear일 때엔 특정 횟수가 넘어갔을때에 if let scene ~ 부터 해당하는 코드로 리뷰 요청을 하는 창을 불러온다.
테스트를 위해 필자는 세 번이 초과되면 불러오는 것으로 하였고, 그 결과 :
성공적으로 리뷰 요청을 할 수 있었다.
참고로 필자는 HIG의 요건에 맞도록 하기 위해서 횟수를 50회로 조정하였다. 그렇다면 1~2 주 사이에 다시 뜨는 일은 없을 테니...
'Design Thinking' 카테고리의 다른 글
태블릿 app을 만들땐 무엇을 고려해야할까? (0) | 2023.05.08 |
---|---|
아랍어로 앱을 만들 땐 무엇을 고려해야할까? (0) | 2023.05.07 |