《安卓应用开发技术》
课程设计报告
( 第一学期)
项目名称: 饥了么外卖
专业 | 学号 | 姓名 | 分工 |
---|---|---|---|
主页、商品页、登录页面布局及功能实现+后端框架接口构建+数据库构建+文档编写+PPT制作 | |||
购物车、我的页面布局、密码登录及功能实现+文档编写+PPT制作 |
目录
一、需求3
二、主体框架3
- 整体框架3
- 数据的流向4
三、数据库设计5
- 整体设计图5
- 数据库表6
- 数据库表关系图6
四、实现7
- 代码的组成7
- 后端代码组成说明7
- 客户端代码组成说明9
2.编码风格约定11
3.文件清单12
五、使用说明13
- 主界面13
- 验证码登录界面14
- 密码登录界面15
- 商品界面15
- 口袋(购物车)界面16
- 我的页面16
六、小组工作情况17
七、使用到的技术17
八、小结18
- 需求
本App主要实现了用户的登录,商品的浏览,购物车查询等功能,如下表所示
系统组成部分 | 功能概括 | 完成情况 |
---|---|---|
服务器 | 验证码登录接口 | 完成 |
密码登录接口 | 完成 | |
增查收货地址接口 | 完成 | |
商品展示接口 | 完成 | |
商品查询接口 | 完成 | |
静态资源下载 | 完成 | |
客户端 | 登陆操作 | 完成 |
退出登录 | 完成 | |
启动页广告 | 完成 | |
基本的对商品的浏览 | 完成 | |
商品的查询 | 完成 | |
购物车查询 | 完成 | |
查询收货地址 | 完成 | |
移动信息推送 | 完成 | |
夜间模式 | 完成 | |
智能推荐(猜我喜欢) | 未完成 | |
自助厨房(自定义菜) | 未完成 |
- 主体框架
- 整体框架
- 数据的流向
数据类型 | 数据流向 |
---|---|
交易商品信息 | 数据库->客户 |
商品类别信息 | 数据库->客户 |
订单状态及信息 | 数据库->客户(仅保留于本机) |
用户个人信息 | 数据库->客户 |
购物车信息 | 数据库->客户(仅保留于本机) |
交易支付情况 | 数据库->客户 |
- 数据库设计
- 整体设计图
- 用户表
- 用户地址表
- 商品反馈表
- 订单表
- 订单详细表
- 单个商品表
- 订单反馈表
- 菜单标签表
- 菜谱表
- 数据库表
序号 | 表名 | 功能 |
---|---|---|
1 | user(用户表) | 存储用户的基本信息 |
2 | user_address(用户地址表) | 存储用户的地址信息 |
3 | orders(订单表) | 用于存储订单状态 |
4 | order_detail(订单详细表) | 存储订单的各项数据 |
5 | good_comment(商品反馈表) | 用于存放用户对商品的反馈 |
6 | goods(单个商品) | 用于存放商品 |
7 | category(菜谱表) | 用于存放菜谱的种类 |
8 | tags(菜品标签表) | 用于存储菜品标签 |
9 | order_comment(订单反馈表) | 用于存放用户对订单的反馈 |
- 数据库表关系图
- 实现
- 代码的组成
- 后端代码组成说明
客户端使用了SpringBoot框架,主要可分为Mapper层,Service层,Controller层,Bean层,接下来以图片配文字的形式说明大致功能。
- 客户端代码组成说明
- 文件清单
文件夹名 | 主要文件 | 主要功能 |
---|---|---|
Center | LoginData | 用于记录全局变量 |
Info | .kt文件 | \ |
Logic | logic.dao | 本地数据库层 |
logic.model | 接口实体类 | |
logic.network | 网络请求层 | |
logic.repository | Repository层 | |
Ui | ui.activity | 实现App中各个页面 |
ui.adapter | 定义特定界面的适配器 | |
ui.fragment | 定义界面中按钮操作 | |
ui.viewModel | 数据绑定ViewModel层 | |
Util | ActivityCollector.kt | Activity管理工具类 |
ConfigData.kt | 白夜间模式控制类 | |
CodeTimeUtil.kt | 验证码控件工具类 | |
JilemeApplication.kt | / | 项目application |
MainActivity.kt | / | 主Activity |
color | .xml文件 | App中颜色合集 |
drawable | .png文件 | App中图片合集 |
layout | .xml文件 | App中页面布局合集 |
- 使用说明
- 主界面
- 验证码登录界面
- 密码登录界面
- 商品界面
- 口袋(购物车)界面
- 我的页面
- 消息推送
- 小组工作情况
组长:俞家琪
组员:蔡远航
分工情况
俞家琪:主页、商品页、登录页面布局及功能实现+后端框架接口构建+数据库构建+文档编写+PPT制作
蔡远航:购物车、我的页面布局及功能实现+文档编写+PPT制作
贡献占比
俞家琪:55%
蔡远航:45% - 使用到的技术
后端使用技术 | SpringBoot框架 |
---|---|
阿里云Linux | |
Nginx | |
Https技术 | |
登录令牌 | |
加密认证 | |
客户端使用技术 | MVVM框架 |
RecycleView实现页面滑动列表 | |
运用cardView卡片式布局 | |
运用SQLite实现用户部分信息的存储 | |
SharedPreferences文件存储功能 | |
库Retrofit发送网络请求解析数据 | |
Material Design进行UI界面开发 | |
Glide库进行网络图片读取 | |
网络数据实现双向绑定 | |
腾讯云消息推送机制 | |
腾讯云云短信 | |
Kotlin协程 | |
Kotlin特殊函数 | |
其他 | Git Bash |
Gitee |
后端:
- 运用SpringBoot
- 阿里云Linux
- Nginx
- Https技术
- 接口数据令牌传输
- 私密数据MD5加密
前端: - 运用MVVM框架
- 运用RecycleView实现页面滑动列表
- 运用cardView卡片式布局
- 运用SQLite实现用户部分信息的存储
- 运用SharedPreferences文件存储功能
- 运用库Retrofit发送网络请求解析数据
- 运用Material Design进行UI界面开发
- 运用Glide库进行网络图片读取
- 网络数据实现双向绑定
- 运用腾讯云消息推送机制
- 运用腾讯云云短信
- Kotlin协程
- Kotlin特殊函数
协作工具:git
平台:gitee
- 小结
蔡远航:
通过本次课程设计,在有限的时间里,运用自己学到的知识,完成了App部分功能的设计与实现,积累了宝贵的经验,不仅加深了对所学知识的印象,同时在各科知识的融合上都更进一步。本次课程设计融MySql、Android、Kotlin等于一体,运用Android studio、eclipse、Navicat Premium、Gitee等软件,将各科知识的嵌套与融合,让App的功能更加强大。在实验的前期都是前端页面的设计,布局等,比较简单,后期的后端就向对比较麻烦,这也是本次课程设计的进度慢的原因之一。在本次课程设计中,认识到在遇到不会或者难以解决的问题时,通过团队之间讨论或者上论坛里查找资料是个很好的解决办法。虽然在短时间内完成了实现了部分功能,但是部分功能还未实现,自己的能力还有所欠缺,以后有时间会多家学习。
俞家琪:
这学期的安卓开发使用了新的语言Kotlin,相对Java,kotlin的资料是非常少的,案例也是很少,在这次课程设计中我也是花了很多时间找相关资料,《第一行代码》这本书前前后后也翻了好几遍,也渐渐明白了Kotlin语法糖的一些特性,编写代码的习惯也有了较好的规范。在后端方面,因为对SpringBoot有一定的实战经验,所以此次我包括了后端开发,后端功能我写的并不多,但现有的功能的逻辑性细节还是挺强挺多的,比如用户这一方面,除了个人信息之外,还添加了密码加盐加密,携带令牌Token等,后端增加了短信验证码功能。我比较喜欢探究新的东西,这次界面设计上,还运用了完全的卡片式布局,消息推送,启动页广告,夜间模式等功能,这些功能实现起来并不容易,但是也挺有趣的。
这次课程设计总体来说也是摸爬滚打中学习,挺不容易的,同时和队友的沟通帮助也增加了我的团队协作能力,也在收尾的时候,感谢坚持的自己,感谢队友的积极合作,同时也感谢老师平时实践性的课程,这样知识点了解得更加清晰明白。