twitch-clone-compose

twitch-clone-compose

使用Jetpack Compose实现Twitch风格的实时直播和聊天功能

这是一个基于Jetpack Compose和Stream SDK开发的Twitch风格应用。项目展示了如何使用现代Android技术实现实时聊天和直播功能,采用MVVM架构并集成Hilt、Kotlin协程等技术。通过研究该项目,开发者可以学习构建现代Android应用的最佳实践,包括UI设计、架构设计和网络通信等方面。

TwitchJetpack ComposeStream SDKAndroid开发实时通讯Github开源项目

Twitch-克隆项目-1200x640px

<p align="center"> <a href="https://opensource.org/licenses/Apache-2.0"><img alt="许可证" src="https://yellow-cdn.veclightyear.com/835a84d5/fcbde251-2a13-4bff-aa61-a45d0b635009.svg"/></a> <a href="https://android-arsenal.com/api?level=24"><img alt="API" src="https://yellow-cdn.veclightyear.com/835a84d5/34aca67e-d9a4-4c5e-990a-542070c1386c.svg?style=flat"/></a> <a href="https://github.com/skydoves/twitch-clone-compose/actions/workflows/android.yml"><img alt="构建状态" src="https://yellow-cdn.veclightyear.com/835a84d5/b3b4255d-2036-4a8b-9d41-6983227fc644.svg"/></a> <a href="https://getstream.io?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Dec2023_Jaewoong_TwitchCompose&utm_term=DevRelOss"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/HayesGordon/e7f3c4587859c17f3e593fd3ff5b13f4/raw/11d9d9385c9f34374ede25f6471dc743b977a914/badge.json" alt="Stream Feeds"></a> </p> 这是一个[Twitch](https://www.twitch.tv/)克隆应用,使用__[Stream Chat SDK for Compose](https://getstream.io/tutorials/android-chat?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Dec2023_Jaewoong_TwitchCompose&utm_term=DevRelOss)__实现消息系统,并使用__[Stream Video SDK for Compose](https://getstream.io/video/sdk/android/tutorial/livestreaming?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Dec2023_Jaewoong_TwitchCompose&utm_term=DevRelOss)__基于Jetpack Compose构建。

本仓库旨在展示以下内容:

  • 使用Jetpack Compose实现所有UI元素。
  • 使用Hilt和AppStartup等Jetpack库实现Android架构组件。
  • 使用Kotlin协程执行后台任务。
  • 集成Stream Chat SDK以处理实时事件的聊天系统。
  • 集成Stream Video SDK,使用底层WebRTC技术实现视频通话系统。

:bulb: 额外的仓库

如果你对使用Jetpack Compose和Stream SDK构建的其他仓库感兴趣,可以查看以下仓库:

  • ChatGPT Android:📱 ChatGPT Android 使用 Stream Chat SDK for Compose 在 Android 上展示 OpenAI 的 ChatGPT。
  • WhatsApp Clone Compose:📱 WhatsApp 克隆项目展示了使用 Jetpack Compose 和 Stream Chat/Video SDK for Compose 构建的现代 Android 开发。
  • Slack Clone Android:📱 一个遵循清洁架构原则,使用 Jetpack Compose 和 Stream Chat SDK 构建的聊天演示应用。
  • Stream Draw Android:🛥 Stream Draw 是一个完全使用 Jetpack Compose 构建的实时多人绘画和聊天游戏应用。
  • Meeting Room Compose:🎙️ 一个使用 Jetpack Compose 构建的实时会议室应用,用于演示视频通信。

📲 下载APK

前往发布页面下载最新的APK。

📷 预览

<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/bcb2f48e-2918-4c8d-8784-b4274ac615ff.png" alt="drawing" width="272" /> <img src="https://yellow-cdn.veclightyear.com/835a84d5/be36c0f2-cc04-473a-8796-4f6c92461f30.png" alt="drawing" width="272" /> <img src="https://yellow-cdn.veclightyear.com/835a84d5/107b8252-6f02-4b53-a26d-360ae7265964.png" alt="drawing" width="272" /></br> <img src="https://yellow-cdn.veclightyear.com/835a84d5/e260acd8-0547-4a35-93f2-50863e4a38de.png" alt="drawing" width="272" /> <img src="https://yellow-cdn.veclightyear.com/835a84d5/41907a65-80ca-4397-94d8-aa193ce93110.png" alt="drawing" width="272" /> <img src="https://yellow-cdn.veclightyear.com/835a84d5/f7101d2c-66ed-44f0-a841-b796740da7e0.png" alt="drawing" width="272" /> </p> <a href="https://getstream.io/chat/sdk/compose?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Dec2023_Jaewoong_TwitchCompose&utm_term=DevRelOss"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/b6513806-293f-453a-a1f5-7f3e075bd630.png" align="right" width="12%"/> </a> ## 🛥 Stream 聊天和视频 SDK

Twitch Clone Compose 使用 Stream Chat SDK for Compose 实现消息系统和 Stream Video SDK for Compose。 如果你对在应用中添加强大的应用内消息功能感兴趣,请查看 Android 聊天消息教程Android 视频聊天教程

Stream 聊天

Stream 视频

💻 构建您自己的Twitch项目

<details> <summary> 如果您想构建自己的聊天项目,请按以下说明操作:</summary>
  1. 前往 Stream登录页面
  2. 如果您有GitHub账号,点击 使用GITHUB登录 按钮,几秒钟内即可完成注册。 stream
  3. 如果您没有GitHub账号,填写输入框并点击 开始免费试用 按钮。
  4. 进入 仪表板 并如下图所示点击 创建应用 按钮。 stream
  5. 如下图所示填写空白处,然后点击 创建应用 按钮。 stream
  6. 您将看到如下图所示的 密钥,然后复制它。 stream
  7. 在项目根目录创建一个 secrets.properties 文件,使用您的API密钥填写以下内容:
STREAM_API_KEY=替换为您的API密钥
  1. 构建并运行项目。
</details> ## 🛠 技术栈和开源库 - 最低 SDK 级别 24。 - 100% 基于 [Jetpack Compose](https://developer.android.com/jetpack/compose) + [协程](https://github.com/Kotlin/kotlinx.coroutines) + [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/) 用于异步操作。 - [Compose 聊天 SDK 用于消息传递](https://getstream.io/chat/sdk/compose?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Dec2023_Jaewoong_TwitchCompose&utm_term=DevRelOss):Jetpack Compose 聊天消息 SDK 基于低级聊天客户端构建,提供模块化、可定制的 Compose UI 组件,可轻松集成到您的应用中。 - [Compose 视频 SDK 用于直播](https://getstream.io/video/docs/android/tutorials/livestream?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=Github_Dec2023_Jaewoong_TwitchCompose&utm_term=DevRelOss):这是 Stream Video 的官方 Android SDK,用于构建视频通话、音频聊天室和直播应用程序。 - Jetpack - Compose:Android 用于构建原生 UI 的现代工具包。 - ViewModel:UI 相关数据持有者和生命周期感知组件。 - App Startup:提供一种直接、高效的方式在应用启动时初始化组件。 - Navigation:用于屏幕导航,以及 [Hilt Navigation Compose](https://developer.android.com/jetpack/compose/libraries#hilt) 用于依赖注入。 - Room:通过提供 SQLite 的抽象层来构建数据库,实现流畅的数据库访问。 - [Hilt](https://dagger.dev/hilt/):依赖注入。 - [Landscapist Coil](https://github.com/skydoves/landscapist#coil)、[animation](https://github.com/skydoves/landscapist#animation)、[placeholder](https://github.com/skydoves/landscapist#placeholder):Jetpack Compose 图片加载库,使用 Glide、Coil 和 Fresco 获取并显示网络图片。 - [accompanist](https://github.com/google/accompanist):Jetpack Compose 的扩展库集合。 - [Retrofit2 & OkHttp3](https://github.com/square/retrofit):构建 REST API 和分页网络数据。 - [Sandwich](https://github.com/skydoves/sandwich):Sandwich 是一个可适应的轻量级密封 API 库,专为处理 Kotlin 中的 API 响应和异常而设计,适用于 Retrofit、Ktor 和 Kotlin Multiplatform。 - [ksp](https://github.com/google/ksp):Kotlin 符号处理 API。 - [StreamLog](https://github.com/GetStream/stream-log):一个轻量级且可扩展的 Kotlin 和 Android 日志库。 - 基准配置文件:通过在 APK 中包含类和方法规范列表来提高应用性能,这些规范可被 Android Runtime 使用。 ## 🏛️ 架构 **Twitch Clone Compose** 遵循[Google的官方架构指南](https://developer.android.com/topic/architecture)。 ![架构](https://yellow-cdn.veclightyear.com/835a84d5/4f12f4a0-8e74-46bb-aebf-50d33f8188c5.png) **Twitch Clone Compose** 是按照[应用架构指南](https://developer.android.com/topic/architecture)构建的,因此它是展示架构如何在实际项目中运作的绝佳样例。

整体架构由两层组成:UI层和数据层。每一层都有专门的组件,各自承担不同的职责。 箭头表示组件依赖于其指向的目标组件。

架构概览

层级 每一层都有以下不同的职责。基本上,它们遵循单向事件/数据流

UI层

层级 UI层由可与用户交互的UI元素(如按钮、菜单、标签页)和ViewModel组成,ViewModel用于保持应用状态并在配置变更时恢复数据。

数据层

层级 数据层由仓库组成,包含业务逻辑,如从本地数据库查询数据和从网络请求远程数据。它实现为离线优先的业务逻辑源,并遵循单一数据源原则。

有关整体架构的更多信息,请查看**使用Jetpack Compose构建实时WhatsApp克隆**。

💯 MAD 评分

概要

🤝 贡献

除了聊天功能外,大多数功能尚未完成,因此任何人都可以按照贡献指南为这个项目做出贡献并改进。

觉得这个仓库有用吗? 💙

通过加入此仓库的 星标用户 来支持它。 :star: <br> 同时,在 GitHub 上关注 维护者 ,期待我们的下一个作品! 🤩

许可证

版权所有 2023 Stream.IO, Inc. 保留所有权利。 根据 Apache 许可证 2.0 版("许可证")授权; 除非遵守许可证,否则您不得使用此文件。 您可以在以下网址获取许可证副本: http://www.apache.org/licenses/LICENSE-2.0 除非适用法律要求或书面同意,否则根据许可证分发的软件是基于"按原样"分发的, 不附带任何明示或暗示的担保或条件。 有关许可证下的特定语言管理权限和限制,请参阅许可证。

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多