Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xwdg/admob-swiftui
Admob support in SwiftUI
https://github.com/0xwdg/admob-swiftui
admob ads google package swift swift-ui swiftlang swiftpm swiftui
Last synced: about 1 month ago
JSON representation
Admob support in SwiftUI
- Host: GitHub
- URL: https://github.com/0xwdg/admob-swiftui
- Owner: 0xWDG
- License: mit
- Created: 2024-02-11T12:39:00.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-04-26T11:07:48.000Z (9 months ago)
- Last Synced: 2024-05-01T21:35:37.393Z (9 months ago)
- Topics: admob, ads, google, package, swift, swift-ui, swiftlang, swiftpm, swiftui
- Language: Swift
- Homepage: https://wesleydegroot.nl/blog/post/Admob-in-SwiftUI
- Size: 14.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Admob for SwiftUI
This library helps you to easily integrate the Admob SDK in your SwiftUI app. It is a wrapper around the Google Mobile Ads SDK for iOS. It provides a SwiftUI view that you can use to display banner ads in your app above your tabbar.
See my blog post for more information: https://wesleydegroot.nl/blog/post/Admob-in-SwiftUI## Requirements
- Swift 5.9+ (Xcode 15+)
- iOS 15+## Installation
Install using Swift Package Manager
```swift
dependencies: [
.package(url: "https://github.com/0xWDG/Admob-SwiftUI.git", .branch("main")),
],
targets: [
.target(name: "MyTarget", dependencies: [
.product(name: "Admob_SwiftUI", package: "Admob_SwiftUI"),
]),
]
```And import it:
```swift
import Admob_SwiftUI
```# Usage
```swift
struct MyApp: App {
@ObservedObject var adHelper = AdHelper(
adUnitId: "YOUR-AD-UNIT-ID"
)var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(adHelper)
}
}
}struct ContentView: View {
@EnvironmentObject
var adHelper: AdHelpervar body: some View {
AdView {
TabView {
UpdateConsent()
.tabItem {
Image(systemName: "2.square.fill")
Text("Second")
}SecondView()
.tabItem {
Image(systemName: "1.square.fill")
Text("First")
}
}
}
}
}struct SecondView: View {
@EnvironmentObject
var adHelper: AdHelpervar body: some View {
BannerView() // A banner view.
}
}
```**Reset/Update Consent**
```Swift
struct UpdateConsent: View {
@EnvironmentObject
private var adHelper: AdHelpervar body: some View {
ScrollView {
VStack {
Button("Reset consent", role: .destructive) {
adHelper.resetConsent()
}Button("Update Consent") {
adHelper.updateConsent()
}
}
}
}
}
```# Contact
We can get in touch via [Mastodon](https://mastodon.social/@0xWDG), [Twitter/X](https://twitter.com/0xWDG), [Discord](https://discordapp.com/users/918438083861573692),[Website](https://wesleydegroot.nl)