Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/banghuazhao/adrevenue-watch
An iOS app built with SwiftUI and Swift Concurrency to fetch and display AdMob network reports. Follows MVVM + Clean Architecture for maintainability and scalability. Work in progress.
https://github.com/banghuazhao/adrevenue-watch
admob api-integration async-await clean-architecture google-apis ios ios-development mobile-app mvvm oauth2 swift swift-concurrency swiftui
Last synced: 2 months ago
JSON representation
An iOS app built with SwiftUI and Swift Concurrency to fetch and display AdMob network reports. Follows MVVM + Clean Architecture for maintainability and scalability. Work in progress.
- Host: GitHub
- URL: https://github.com/banghuazhao/adrevenue-watch
- Owner: banghuazhao
- License: mit
- Created: 2024-09-07T10:20:14.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-30T10:09:00.000Z (3 months ago)
- Last Synced: 2024-09-30T13:41:20.017Z (3 months ago)
- Topics: admob, api-integration, async-await, clean-architecture, google-apis, ios, ios-development, mobile-app, mvvm, oauth2, swift, swift-concurrency, swiftui
- Language: Swift
- Homepage:
- Size: 50.8 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AdRevenue-Watch (Work in Progress)
This iOS app is currently under development. It is built using **SwiftUI** and **Swift Concurrency** to fetch and display AdMob network reports. The app follows **MVVM + Clean Architecture** to maintain a scalable and maintainable codebase.
## Project Status
🚧 **Work in Progress**: This app is actively being developed, with ongoing improvements and feature additions.
## Features (In Progress)
- Fetch AdMob network reports using the Google AdMob API.
- Display data such as clicks, ad requests, impressions, and estimated earnings.
- Supports authentication via OAuth2 with Google Sign-In.
- Uses **MVVM + Clean Architecture** for a clean, testable, and maintainable codebase.### Planned Features
- Create AdMobAccountUseCase, AdMobAccountRepository, AdMobReportUseCase, AdMobReportRepository
- More granular report filtering options.
- Error handling
- Improved UI for better data presentation.## Architecture
This project follows **MVVM + Clean Architecture**, with a focus on separating concerns into four layers:
### 1. **View (SwiftUI)**:
- Handles UI and displays data provided by the **ViewModel**.### 2. **ViewModel**:
- Prepares data for the **View** and handles user interactions.
- Interacts with the **UseCase** to execute business logic.### 3. **UseCase**:
- Contains business logic and interacts with the **Repository** for data.### 4. **Repository**:
- Manages API requests and handles data retrieval from external sources (Google AdMob API).## Technologies
- **SwiftUI**: For building the user interface.
- **Swift Concurrency**: Using `async/await` for handling asynchronous tasks.
- **MVVM + Clean Architecture**: Ensures separation of concerns and testability.
- **Google AdMob API**: Fetches network reports from the AdMob API.## Setup Instructions
### 1. Prerequisites:
- A Google Cloud project with access to the **Google AdMob API**.
- OAuth2 credentials set up in the Google Cloud Console.
- Create `Secret.xcconfig` file in `Config` folder and add your credentials
```
GIDClientID = Your_GIDClientID
GOOGLE_REDIRECT_URL_SCHEMES = Your_GOOGLE_REDIRECT_URL_SCHEMES
```