# TmdbApp **Repository Path**: SmileSB101/tmdb-app ## Basic Information - **Project Name**: TmdbApp - **Description**: 借助TMDB 电影网站 API接口 使用Compose 编写的APP(技术栈: jetpack Compose Hilt Navigation Retrofit Kotlin Courutines - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-01-07 - **Last Updated**: 2024-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### QQ交流群 818035093 --- ## 项目介绍 > 这是一款采用 [TMDB](https://www.themoviedb.org/) 开放API构建的电影介绍APP ### 演示视频 ![预览](screenshots/tmdbmovie.gif) UI 使用纯 [Jetpack Compose](https://developer.android.google.cn/jetpack/compose) 编写 并遵循Google官方的MVVM单项数据流架构
+ 应用分为两个层: - 界面层 - 在屏幕上显示应用数据。 - 数据层 - 包含应用的业务逻辑并公开应用数据。 ![分层](https://developer.android.google.cn/static/topic/libraries/architecture/images/mad-arch-overview.png) ### 界面层 --- 界面层(或呈现层)的作用是在屏幕上显示应用数据。每当数据发生变化时,无论是因为用户互动(例如按了某个按钮),还是因为外部输入(例如网络响应),界面都应随之更新,以反映这些变化。 + 界面层由以下两部分组成: - 在屏幕上呈现数据的界面元素。您可以使用 View 或 Jetpack Compose 函数构建这些元素。 - 用于存储数据、向界面提供数据以及处理逻辑的状态容器(如 [ViewModel](https://developer.android.google.cn/topic/libraries/architecture/viewmodel) 类)。 --- ![Ui Layer](https://developer.android.google.cn/static/topic/libraries/architecture/images/mad-arch-overview-ui.png) ### 数据层 --- 应用的数据层包含业务逻辑。业务逻辑决定应用的价值,它包含决定应用如何创建、存储和更改数据的规则。
数据层由多个代码库组成,其中每个代码库可包含零到多个数据源。您应该为应用中处理的每种不同类型的数据分别创建一个存储库类。例如,您可以为与电影相关的数据创建一个 MoviesRepository 类,或者为与付款相关的数据创建一个 PaymentsRepository 类。 --- ![数据层](https://developer.android.google.cn/static/topic/libraries/architecture/images/mad-arch-overview-data.png) #### 项目结构: >com.dubito.tmdbmovie.data - 数据层
com.dubito.tmdbmovie.ui.screen - ui层 ### 技术栈 > kotlin 编写的Compose页面
UI组件 用的 最新版material3
systemuicontroller 控制页面沉浸式状态栏
Retrofit 网络请求
HiltDagger 依赖注入
Coil 图片加载 > navigation 用于导航
timber 记录网络日志
paging 数据分页
splashscreen 加载启动页
> viewModel 数据持有使用Flow流式数据处理 (直接弃用LiveData) ### 效果图 - 亮色模式 - 深色模式