Project Icon

twitch-clone-compose

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

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

Twitch-克隆项目-1200x640px

许可证 API 构建状态 Stream Feeds

这是一个[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。

📷 预览

drawing drawing drawing
drawing drawing drawing

## 🛥 Stream 聊天和视频 SDK

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

Stream 聊天

Stream 视频

💻 构建您自己的Twitch项目

如果您想构建自己的聊天项目,请按以下说明操作:
  1. 前往 Stream登录页面
  2. 如果您有GitHub账号,点击 使用GITHUB登录 按钮,几秒钟内即可完成注册。 stream
  3. 如果您没有GitHub账号,填写输入框并点击 开始免费试用 按钮。
  4. 进入 仪表板 并如下图所示点击 创建应用 按钮。 stream
  5. 如下图所示填写空白处,然后点击 创建应用 按钮。 stream
  6. 您将看到如下图所示的 密钥,然后复制它。 stream
  7. 在项目根目录创建一个 secrets.properties 文件,使用您的API密钥填写以下内容:
STREAM_API_KEY=替换为您的API密钥
  1. 构建并运行项目。
## 🛠 技术栈和开源库 - 最低 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:
同时,在 GitHub 上关注 维护者 ,期待我们的下一个作品! 🤩

许可证

版权所有 2023 Stream.IO, Inc. 保留所有权利。

根据 Apache 许可证 2.0 版("许可证")授权;
除非遵守许可证,否则您不得使用此文件。
您可以在以下网址获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可证分发的软件是基于"按原样"分发的,
不附带任何明示或暗示的担保或条件。
有关许可证下的特定语言管理权限和限制,请参阅许可证。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号