Swift3 - tkgstrator/Salmonia3 GitHub Wiki
UserDafaults全削除
UserDefaults.standard.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)
AppStorage
配列などが保存できない問題はあるが、UserDefaultsよりも便利なので積極的に使うべき
UserDefaultsのWrapperなのでUserDefaultsを削除すればAppStorageの中身も消える
@AppStorage("isFirstLaunch") var isFirstLaunch: Bool = true
isFirstLaunch
を宣言しておいて初回起動だけログイン画面を表示するようなこともできる
Admob
広告を表示するビューはSwiftUI向けにリリースされていないのでUIViewControllerRepresentableを利用する
import Foundation
import SwiftUI
import UIKit
import GoogleMobileAds
struct UIGoogleMobileAdsView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
GADMobileAds.sharedInstance().start(completionHandler: nil)
let view = GADBannerView(adSize: kGADAdSizeBanner)
let viewController = UIViewController()
#if DEBUG
view.adUnitID = "ca-app-pub-3940256099942544/2934735716"
#else
view.adUnitID = "ca-app-pub-3940256099942544/2934735716"
#endif
view.rootViewController = viewController
viewController.view.addSubview(view)
viewController.view.frame = CGRect(origin: .zero, size: kGADAdSizeBanner.size)
view.load(GADRequest())
return viewController
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
}
struct GoobleMobileAdsView: View {
var body: some View {
UIGoogleMobileAdsView()
.frame(width: 320, height: 50)
}
}
DebugビルドとReleaseビルドでUnitIDを切り替えておかないとAdmobの利用規約違反でBANされる可能性がある