# CookBook
**Repository Path**: YiDer/CookBook
## Basic Information
- **Project Name**: CookBook
- **Description**: 基于Android菜谱分享,收藏,分类,详情,评论应用
- **Primary Language**: Android
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 8
- **Forks**: 4
- **Created**: 2019-02-13
- **Last Updated**: 2025-09-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 小食代
#### 前言
有人说2018年的冬天是互联网的冬天,无论大小公司都在裁员,软件公司不要再进了,IT行业饱和了。其实我想说的是:互联网冬天来没来,我不知道,我只知道对于废物程序员来说,每一天都是冬天!
#### 介绍
基于Android端的菜谱应用类App,主要功能大致有:用户的登录和注册,菜品的分类,菜谱的列表,以及菜谱详情和用户评论
#### 项目功能
1. 使用[GreenDao3.0](http://greenrobot.org/greendao/)插件操控本地数据库实现用户的登录和注册功能;
2. 在[BaseAdapter](http://www.recyclerview.org/)基础上进行封装属于自己的BaseAdapter;
3. 使用[聚合API-菜谱数据](https://www.juhe.cn/docs/api/id/46)来实现菜谱的分类,详细列表,详情等功能;
4. 利用GreenDao3.0插件操控数据库实现本地收藏功能。
#### 项目架构以及开发中遇到问题
1. 该项目采用MVP架构进行开发,如若基础比较差的同学可以先阅读我之前的项目([Android新闻客户端](https://gitee.com/YiDer/News)),新闻客户端的项目具有开发单元小,容易上手等优点,类似于MVP介绍的文章在该项目中也有提及,有兴趣的小伙伴可以前去一阅;
2. 不得不提及的MVP架构有两个需要注意的:
*采用RxLifecycle解决RxJava使用过程中的内存泄漏;
*在Activity关闭之后取消网络请求;
3. 项目中当网络请求失败时,显示错误页面的方案:采用ViewStub在Activity.xml中进行镶嵌,当请求失败报错时,开始ViewStub的初始化和显示;
4. GreenDao3.0的数据库的增删改查以及条件查询,在此就不再提及,如有需要可以联系我,我会详细讲解;
5. 项目中的菜品详情页属于复杂页面,属于菜品介绍和步骤HeadeView+用户评论RecyclerView,之前我是采用封装好的BaseAdapter通过getItemViewType(possition)来添加HeadeView,但是该方式的滑动会出现卡顿和掉帧,所以选用成熟轮子[淘宝框架V-Layout](https://github.com/alibaba/vlayout)来实现该复杂页面,滑动和下拉的效果还算很理想;
6. 如若App中无法获取数据,请在[聚合API-菜谱数据](https://www.juhe.cn/docs/api/id/46)中申请API-KEY,并在Config.class中替换HTTP_NET_KEY即可;
#### 应用试玩

#### 总结
* Android在国内的开发发展至今不过二十几年,但是Android开发者的就业依旧和每个行业一样,就是一个金字塔,全栈式,直播编码解码,人工智能等高端开发人才依然稀缺,还是那句话废物程序员的每一天都是冬天!
* 项目地址:https://gitee.com/YiDer/CookBook
* 码云个人地址: https://gitee.com/YiDer
* 联系方式:1070138445
* 广告:本人承接各个学历的计算机毕业设计,主要方向是Java,Android以及Web,公司信誉和个人资料担保,开发周期固定,保障顾客利益,避免各类骗术!