inAppReview(StoreKit)✨
✅ StoreKit을 활용해보기
애플 공식문서
https://developer.apple.com/documentation/storekit
✅ StoreKit
인 앱 구매나 애플 뮤직 등 다른 것들도 지원하지만, 내가 사용할 것은 리뷰 작성하는 부분이다!
🟠 코드
import UIKit
import StoreKit
class AppStoreReviewManager {
/// action count 값이 3일 때 `true` 입니다.
static var isReviewable: Bool { UserDefaultManager.inAppReviewCount == 3 }
static func requestReviewIfAppropriate() {
guard UserDefaultManager.inAppReviewCount <= 3 else { return }
UserDefaultManager.inAppReviewCount += 1
guard isReviewable else { return }
let scene = UIApplication.shared.connectedScenes.first { $0.activationState == .foregroundActive }
if let scene = scene as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
}
}
🟠 UserDefaultManager
import UIKit
class UserDefaultManager {
enum Key: String {
/// 인앱 리뷰를 위한 키
case inAppReviewCount
}
@UserDefault(key: .inAppReviewCount, defaultValue: 0)
static var inAppReviewCount: Int
}
@propertyWrapper
struct UserDefault<T> {
let key: UserDefaultManager.Key
let defaultValue: T
let storage: UserDefaults
var wrappedValue: T {
get { self.storage.object(forKey: self.key.rawValue) as? T ?? self.defaultValue }
set { self.storage.set(newValue, forKey: self.key.rawValue) }
}
init(key: UserDefaultManager.Key, defaultValue: T, storage: UserDefaults = .standard) {
self.key = key
self.defaultValue = defaultValue
self.storage = storage
}
}
✅ 특정 액션에 아래 코드를 삽입해서 이벤트를 처리한다.
AppStoreReviewManager.requestReviewIfAppropriate
✅ 이렇게 나타난다..!
'project > Kuring(공지알림)' 카테고리의 다른 글
[iOS] Indicator customizing (feat. Lottie) (0) | 2022.04.30 |
---|---|
[iOS] Haptic Feedback에 대해서 알아보자🐣 (0) | 2022.03.21 |
[iOS] Xcode Storyboard(스토리보드) 없이 코드로 대체하는 방법 (0) | 2022.01.07 |
[iOS] RxGesture에 정리 기본 (0) | 2021.12.20 |
iOS UIButton 90도 회전시키기 (0) | 2021.12.20 |