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 除非适用法律要求或书面同意,否则根据许可证分发的软件是基于"按原样"分发的, 不附带任何明示或暗示的担保或条件。 有关许可证下的特定语言管理权限和限制,请参阅许可证。

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

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

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

讯飞绘文

讯飞绘文

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

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

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

TRAE编程

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

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

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多