Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agoraio-community/videouikit-ios
Swift package and CocoaPod to simply integrate Agora Video Calling or Live Video Streaming to your iOS or macOS app with just a few lines of code.
https://github.com/agoraio-community/videouikit-ios
agora agora-sdk agoraio cocoapods hacktoberfest ios macos rtc swift video-streaming webrtc
Last synced: 3 months ago
JSON representation
Swift package and CocoaPod to simply integrate Agora Video Calling or Live Video Streaming to your iOS or macOS app with just a few lines of code.
- Host: GitHub
- URL: https://github.com/agoraio-community/videouikit-ios
- Owner: AgoraIO-Community
- License: mit
- Created: 2020-02-19T18:46:35.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-06-08T10:18:50.000Z (over 1 year ago)
- Last Synced: 2024-10-30T04:51:06.469Z (3 months ago)
- Topics: agora, agora-sdk, agoraio, cocoapods, hacktoberfest, ios, macos, rtc, swift, video-streaming, webrtc
- Language: Swift
- Homepage: https://agoraio-community.github.io/VideoUIKit-iOS/documentation/agorauikit
- Size: 17.2 MB
- Stars: 65
- Watchers: 7
- Forks: 11
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Agora Video UI Kit for iOS
Instantly integrate Agora in your own application or prototype using iOS. For macOS, see [VideoUIKit-macOS](https://github.com/AgoraIO-Community/VideoUIKit-macOS).
[More information available on this repo's Wiki](https://github.com/AgoraIO-Community/VideoUIKit-iOS/wiki)
[Click here for full documentation](https://agoraio-community.github.io/VideoUIKit-iOS/documentation/agorauikit/)
To see full documentation for other packages in this repo, such as `AgoraBroadcastExtensionHelper`, `AgoraAppGroupDataHelper` or `AgoraRtmControl`, check them out here:
- [AgoraBroadcastExtensionHelper](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraBroadcastExtensionHelper/)
- [AgoraAppGroupDataHelper](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraAppGroupDataHelper/)
- [AgoraRtmControl](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraRtmControl/)## Requirements
- iOS 13.0+ or a macOS 10.15 or later
- Xcode 12.3 or later
- CocoaPods (if installing with CocoaPods)
- [An Agora developer account](https://www.agora.io/en/blog/how-to-get-started-with-agora?utm_source=github&utm_repo=agora-ios-uikit)Once you have an Agora developer account and an App ID, you're ready to use this package.
## Installation
Swift Package Manager and CocoaPods are both available offered for installation methods.
The Pod for this package is called `AgoraUIKit_iOS` and `AgoraUIKit_macOS` for the two available platforms.
See the [Installation wiki](https://github.com/AgoraIO-Community/VideoUIKit-iOS/wiki/Installation) page for more information on installing the package.
## Usage
Once installed, open your application `.xcodeproj` file. Or `.xcworkspace` if using CocoaPods.
The main view for Agora UIKit is `AgoraVideoViewer`. This is an example of a minimal creation that gives you a view similar to the one at the top of this README:
```swift
import AgoraRtcKit
import AgoraUIKitlet agoraView = AgoraVideoViewer(
connectionData: AgoraConnectionData(
appId: "<#my-app-id#>",
rtcToken: "<#my-channel-token#>",
rtmToken: "<#my-channel-rtm-token#>"
), delegate: self
)
```Frame your newly created AgoraVideoViewer in the app scene, then join a channel by calling:
```swift
agoraView.join(channel: "test", as: .broadcaster)
```[More examples available on the wiki](https://github.com/AgoraIO-Community/VideoUIKit-iOS/wiki/Examples)
### Screen Sharing
For an example for screen sharing with Agora Video UI Kit and [AgoraBroadcastExtensionHelper Quickstart](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraBroadcastExtensionHelper/documentation/agorabroadcastextensionhelper/quickstart), check out the example project here:
https://github.com/AgoraIO-Community/Video-UI-Kit-ScreenShare
## Documentation
For full documentation, see our [AgoraUIKit documentation page](https://agoraio-community.github.io/VideoUIKit-iOS/documentation/agorauikit/).
For other libraries in this package:
- [AgoraBroadcastExtensionHelper](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraBroadcastExtensionHelper/)
- [AgoraAppGroupDataHelper](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraAppGroupDataHelper/)
- [AgoraRtmControl](https://agoraio-community.github.io/VideoUIKit-iOS/extensions/AgoraRtmControl/)## Error Handling and Troubleshooting
For tips on how to overcome some common errors, [see the wiki page](https://github.com/AgoraIO-Community/VideoUIKit-iOS/wiki/Error-Handling-and-Troubleshooting).
## Roadmap
- [x] Muting/Unmuting a remote member
- [x] Usernames ([Settable value, not currently rendered](https://agoraio-community.github.io/VideoUIKit-iOS/documentation/agorauikit/agoraconnectiondata/username))
- [ ] Promoting an audience member to a broadcaster role.
- [ ] Layout for Voice Calls
- [ ] Cloud recording## UIKits
The plan is to grow this library and have similar offerings across all supported platforms. There are already similar libraries for [Android](https://github.com/AgoraIO-Community/VideoUIKit-Android), [React Native](https://github.com/AgoraIO-Community/VideoUIKit-ReactNative), [Flutter](https://github.com/AgoraIO-Community/VideoUIKit-Flutter) and [Web React](https://github.com/AgoraIO-Community/VideoUIKit-Web-React) so be sure to check them out.
## UML Diagrams
- AgoraUIKit
- AgoraRtmControl
> generated with `swiftplantuml classdiagram Sources`