Compose + Mvi 架构的玩android 项目,请尝鲜

文章目录

  • 前言
  • 玩android项目的介绍
  • 效果截图
  • 总结

一、前言

记得拉倒底看效果图。

android 这些年的发展是很快的,特别是架构层面的转变,从mvc 到 mvp 到 mvvm 再到现在的mvi。

这些转变呢,核心目的就是一个提高开发效率,现在对于一个成熟的开发人员,如果使用好的架构,再加上ai,如虎添翼,至少能节省60%的开发时间,甚至更多。

这里就将用最新的mvi 架构,通过 compose + okhttp3 + retrofit2 + stateFlow + viewModel + flow + navigation 来实现一个玩android 项目,整个项目只有一个Activity,其他子页面都是用 Compose实现页面

最后呢,我会把应用上传到github上,大家可以下载学习。另外最后有页面的效果截图,看完再看代码,这样会更加直观。

二、介绍整个项目

1、开发工具
cpp 复制代码
Android Studio Otter | 2025.2.1
2、整个项目的组成部分
cpp 复制代码
1、欢迎页面
2、注册登录模块
3、主页面
4、首页
5、广场
6、导航
7、我的
8、设置
9、退出登录
10、动画等
3、网络请求
kotlin 复制代码
这块就是鸿洋提供的接口,也就是玩android对应的开放接口。

/**
 * 玩Android API服务
 */
interface ApiService {
    /**
     * 用户注册
     * @param username 用户名
     * @param password 密码
     * @param repassword 确认密码
     */
    @FormUrlEncoded
    @POST("user/register")
    suspend fun register(
        @Field("username") username: String,
        @Field("password") password: String,
        @Field("repassword") repassword: String
    ): BaseResponse<Any>
    
    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     */
    @FormUrlEncoded
    @POST("user/login")
    suspend fun login(
        @Field("username") username: String,
        @Field("password") password: String
    ): BaseResponse<Any>
    ...
 }
4、第三方库
kotlin 复制代码
    // Coil for image loading
    implementation(libs.coil.compose)
    // WebView support
    implementation("androidx.webkit:webkit:1.9.0")
    // Retrofit
    implementation(libs.retrofit)
    implementation(libs.converter.gson)
    // OkHttp
    implementation(libs.okhttp)
    implementation(libs.logging.interceptor)
    // Kotlin Coroutines
    implementation(libs.kotlinx.coroutines.android)
    //其他都是 androidx 的就不一一列举
cpp 复制代码
核心点:
1、PullRefreshLazyColumn 是居于pullrefresh 封装来的,
   因为要进行下拉刷新和上拉加载更多。

2、路由主要是使用 androidx-navigation-compose,
   实现单Activity多Compose页面的跳转与参数传递。

3、网络请求下来的数据,主要是通过flow 来进行发射和接收。

4、页面数据主要是通过ViewModel里面的 StateFlow 来存储,
   并使用 Intent 驱动 ViewModel 中的 StateFlow 状态变化,确保UI状态可预测。

5、图片加载主要是通过Coil。

三、效果截图

视频演示:live.csdn.net/v/506678. 因为是as录制的,只是看个大概,有些细节还是自己运行一下,看得更清晰。

整个项目开发过程中遇到不合理的地方,也进行了优化重构,然后再整理成文章实属不易哈。不过写完还是挺欣慰的。

以上就是全部,我将整项目放到github上,后面有新增,也会一并上传。

最后献上我的个人v,解答关于 android 相关的东西,包括项目中的问题,还有最新的技术点。hmssz1

技术的道路很长,与同行者一起探讨,往往能事半功倍。

以上代码地址:github.com/shenshizhon...

总结

1、介绍玩 android 整个项目

2、项目中的重点内容

3、效果截图

如果对你有一点点帮助,那是值得高兴的事情。:)

我的csdn:blog.csdn.net/shenshizhon...

我的掘金:juejin.cn/user/428855...

相关推荐
KaMeidebaby2 小时前
卡梅德生物技术快报|噬菌体文库构建实验优化及偶联体系实验数据分析
大数据·人工智能·架构·spark·新浪微博
Zender Han2 小时前
Android APK 签名 v1、v2、v3、v4 有什么区别?
android
睡不醒男孩0308232 小时前
第五篇:2026年企业级 PostgreSQL 高可用方案深度横评:Patroni vs. CLup 架构与可靠性全面对决
数据库·postgresql·架构
神仙别闹2 小时前
基于 PHP + MySQL学生信息管理系统
android·mysql·php
意图共鸣2 小时前
意图共鸣科技《AI记忆链商业化白皮书3.0》技术解读:“AI焦虑的解药”——从通用AI到个人记忆链架构
人工智能·科技·架构
意图共鸣3 小时前
意图共鸣科技发布《AI记忆链商业化白皮书3.0》:从存算解耦到“第二大脑”的技术演进
人工智能·科技·架构
墨狂之逸才3 小时前
Android 保活机制详解 —— 从概念到实践
android
hz567893 小时前
公安局远程办案用什么音视频系统?安全取证与多方协同方案
安全·架构·云计算·音视频·实时音视频·信息与通信
踩着两条虫3 小时前
VTJ.PRO v2.4.2 私有化部署与升级实操指南
前端·人工智能·低代码·架构·数据挖掘
故渊at3 小时前
第二板块:Android 四大组件标准化学理 | 第十二篇:四大组件全景总结与系统服务(System Server)架构
android·架构·wpf·四大组件·system service