第六周总结

本周工作内容
​​Android学习系统开发​​
完成SpringBoot后端基础搭建(统一返回类、用户实体、服务层)
实现用户注册/登录功能(含密码加密存储)
开发周目标管理模块(增删改查)
配置MyBatis数据库映射(XML方式)
​​Android客户端开发​​
搭建Retrofit网络请求框架
实现用户认证流程(登录状态保持)
开发周目标列表展示(RecyclerView)
添加滑动操作支持(左右滑动切换周目标)
​​UI界面优化​​
设计响应式布局(适配不同屏幕)
实现底部导航栏和顶部操作栏
添加数据空状态提示
完善表单验证逻辑
学到的知识
​​后端技术​​
SpringBoot异常处理机制
MyBatis动态SQL编写
RESTful接口设计规范
跨域解决方案(CORS配置)
​​Android开发​​
Retrofit + Coroutine网络请求
SharedPreferences数据持久化
RecyclerView + DiffUtil高效列表渲染
手势识别(GestureDetector)
​​架构设计​​
分层架构(entity/service/controller)
响应式UI更新(LiveData观察)
协程的取消与异常处理
状态管理(单Activity多Fragment)
遇到的问题及解决方法
​​问题​​:Retrofit返回数据解析失败
​​原因​​:后端返回格式与实体类不匹配
​​解决​​:添加Gson的setLenient()模式并统一API响应格式
​​问题​​:列表滑动时数据错乱
​​原因​​:RecyclerView未正确使用DiffUtil
​​解决​​:实现areItemsTheSame和areContentsTheSame方法
​​问题​​:协程内存泄漏
​​原因​​:Fragment销毁后未取消网络请求
​​解决​​:使用lifecycleScope并检查isActive
​​问题​​:多Fragment状态同步
​​解决​​:通过Activity作为通信中介,实现接口回调
代码统计
​​SpringBoot后端​​
实体类:2个(User/WeekGoals)
Mapper接口:2个(约50行)
Service层:2个(约80行)
Controller:2个(约60行)
​​Android客户端​​
实体类:3个(含API响应包装)
Adapter:1个(40行)
Fragment:2个(300行)
网络模块:3个(Retrofit配置/Service/拦截器)
​​UI布局​​
XML布局文件:6个(登录/注册/主页/列表项等)
菜单资源:2个(底部导航/操作菜单)
关键代码片段
​​DiffUtil实现​​
class WeekGoalsDiffCallback : DiffUtil.ItemCallback() {
override fun areItemsTheSame(oldItem: WeekGoals, newItem: WeekGoals) =
oldItem.id == newItem.id
override fun areContentsTheSame(oldItem: WeekGoals, newItem: WeekGoals) =
oldItem == newItem
}
​​协程安全请求​​
lifecycleScope.launch {
try {
if (!isActive) return@launch
val response = weekGoalsService.getWeekGoals(userId)
if (!isActive) return@launch

    // 更新UI...
} catch (e: CancellationException) {
    // 协程已取消
}

}
​​手势处理​​
gestureDetector = GestureDetector(context, object : SimpleOnGestureListener() {
override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean {
if (abs(diffX) > abs(diffY)) {
if (diffX > 0) showPreviousGoal()
else showNextGoal()
return true
}
return false
}
})
后续计划
实现学习进度统计功能
添加数据本地缓存(Room)
开发周报生成模块
集成图表库实现可视化
优化网络错误处理机制

posted @ 2025-06-15 14:51  vivi_vimi  阅读(15)  评论(0)    收藏  举报