{"id":15170623,"url":"https://github.com/agoraio-community/swiftuirtc","last_synced_at":"2025-10-25T19:31:05.334Z","repository":{"id":168166173,"uuid":"618455214","full_name":"AgoraIO-Community/SwiftUIRtc","owner":"AgoraIO-Community","description":"SwiftUI and Real-time Video Calling with Agora's RTC SDK","archived":false,"fork":false,"pushed_at":"2023-12-12T09:47:56.000Z","size":7333,"stargazers_count":8,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-01T05:22:27.892Z","etag":null,"topics":["agora","real-time","real-time-video-streaming","rtc","rte","swiftui","video-call","video-streaming"],"latest_commit_sha":null,"homepage":"https://agoraio-community.github.io/SwiftUIRtc/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AgoraIO-Community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-03-24T14:02:13.000Z","updated_at":"2024-05-07T15:29:13.000Z","dependencies_parsed_at":"2023-12-23T09:41:57.108Z","dependency_job_id":"1fb76d5b-8163-42a8-81b8-1c90d88b1c71","html_url":"https://github.com/AgoraIO-Community/SwiftUIRtc","commit_stats":{"total_commits":27,"total_committers":1,"mean_commits":27.0,"dds":0.0,"last_synced_commit":"8adbd338930eaedda0b8987df37fd93d28ac0d09"},"previous_names":["agoraio-community/swiftuirtc"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgoraIO-Community%2FSwiftUIRtc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgoraIO-Community%2FSwiftUIRtc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgoraIO-Community%2FSwiftUIRtc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgoraIO-Community%2FSwiftUIRtc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgoraIO-Community","download_url":"https://codeload.github.com/AgoraIO-Community/SwiftUIRtc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219865149,"owners_count":16555931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agora","real-time","real-time-video-streaming","rtc","rte","swiftui","video-call","video-streaming"],"created_at":"2024-09-27T08:04:17.439Z","updated_at":"2025-10-25T19:30:59.276Z","avatar_url":"https://github.com/AgoraIO-Community.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwiftUIRtc\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FAgoraIO-Community%2FSwiftUIRtc%2Fbadge%3Ftype%3Dswift-versions\" /\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FAgoraIO-Community%2FSwiftUIRtc%2Fbadge%3Ftype%3Dplatforms\" /\u003e\u003cbr/\u003e\n    \u003ca href=\"https://agoraio-community.github.io/SwiftUIRtc/\"\u003e\u003cimg src=\"https://github.com/AgoraIO-Community/SwiftUIRtc/actions/workflows/deploy_docs.yml/badge.svg\"/\u003e\u003c/a\u003e\n    \u003cimg src=\"https://github.com/AgoraIO-Community/SwiftUIRtc/actions/workflows/swiftbuild.yml/badge.svg\"/\u003e\n\u003c/p\u003e\n\n\nSwiftUIRtc is a package for building video call apps using the Agora RTC SDK and SwiftUI. It provides a set of SwiftUI views and classes that simplify setting up and managing Agora RTC sessions for video calls.\n\nThis is not an official product of Agora, it is simply an open source project for helping developers use the RTC engine is new ways, such as with SwiftUI. If you have any issues with the classes in this repository, please open an issue or a PR. Agora's support team will likely not know about this package.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg style=\"max-height:256px\" src=\"Sources/SwiftUIRtc/SwiftUIRtc.docc/Resources/scrolling_videos_view.gif\"/\u003e\n\u003c/p\u003e\n\nSee the [SwiftUIRtc Documentation](https://agoraio-community.github.io/SwiftUIRtc/).\n\n\n## Requirements\n\n- iOS 14.0+\n- Swift 5.7+\n- [AgoraRtcKit Account](https://console.agora.io)\n\n## Installation\n\nSwiftUIRtc can be installed using Swift Package Manager in Xcode. Simply add the package to your project by navigating to File \u003e Swift Packages \u003e Add Package Dependency and entering the repository URL:\n\n```text\nhttps://github.com/AgoraIO-Community/SwiftUIRtc.git\n```\n\n## Usage\n\nTo use SwiftUIRtc in your SwiftUI project, simply import the package and use the provided views and classes. For example, you can use `AgoraVideoCanvasView` and `AgoraManager` view to render all the video streams in an Agora RTC session:\n\n```swift\nimport SwiftUIRtc\nimport AgoraRtcKit\n\nstruct AgoraGettingStartedView: View {\n    @ObservedObject var agoraManager = AgoraManager(appId: \u003c#AppId#\u003e, role: .broadcaster)\n    var channelId: String = \"test\"\n    var body: some View {\n        ScrollView {\n            VStack {\n                ForEach(Array(agoraManager.allUsers), id: \\.self) { uid in\n                    AgoraVideoCanvasView(manager: agoraManager, canvasId: .userId(uid))\n                        .aspectRatio(contentMode: .fit).cornerRadius(10)\n                }\n            }.padding(20)\n        }.onAppear {\n            agoraManager.agoraEngine.joinChannel(\n                byToken: \u003c#Agora Temp Token#\u003e, channelId: channelId, info: nil, uid: 0\n            )\n        }.onDisappear {\n            agoraManager.agoraEngine.leaveChannel()\n        }\n    }\n}\n```\n\n## Contributing\n\nContributions to SwiftUIRtc are welcome! If you encounter any issues or have feature requests, please submit an issue on the GitHub repository. Pull requests are also welcome.\n\n## License\n\nSwiftUIRtc is available under the MIT license. See the [LICENSE](LICENSE) file for more information.\n\n## Acknowledgments\n\nSwiftUIRtc relies on the [AgoraRtcKit](https://github.com/AgoraIO/AgoraRtcEngine_iOS) framework developed by Agora.io for real-time communication functionality.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagoraio-community%2Fswiftuirtc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagoraio-community%2Fswiftuirtc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagoraio-community%2Fswiftuirtc/lists"}