# Designer
好设计
# 前言:
历时一个多月,利用自己的闲暇时间,终于完成了我的第一个开源项目[Designer](https://github.com/GraceJoJo/Designer) v1.0初级版本,后续将会继续开发迭代,用于学习和经验总结。项目主要是仿想去App——一个很文艺,充满设计感的电商类APP,为了丰富功能,里面还加入了仿开眼视频的模块。
# 项目截图
![项目截图Part 1.png](https://upload-images.jianshu.io/upload_images/3828835-273df966c6eab292.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![项目截图Part 2.png](https://upload-images.jianshu.io/upload_images/3828835-3ec5bd079d0de049.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# 《一》项目简介
# 1、项目初衷:
我们知道,**Kotlin**可以很大程度上提高我们编写代码的效率,而且完全兼容Java,支持lambda表达式、Null safe等,相信使用了Kotlin的朋友,都不会再想使用Java编写代码了。那么组件化呢,**组件化的优势**就更多了,特别是对于解决大型项目的迭代研发所面临的代码冗余、业务耦合、项目臃肿,资源文件大把重复等等问题帮助非常大。
# 组件化的优点:<p>
**其一**:它把项目的基础类公共部分进行单独抽离封装,有利于更好地对库的依赖进行管理,不至于随着项目的迭代而变得乱糟糟。<p>
**其二**:将业务拆分成多个模块进行独立管理,每个业务模块都能独立运行。能单独提测,大大节省开发时间<p>
**其三**:对项目进行业务划分,结构清晰明了,出现问题时有利于很快的进行排查错误,节省后期维护和调试的时间。
# 2、项目简介
本项目采用**组件化开发+Kotlin语言**编写,页面布局全使用**ConstraintLayout**完成。网上能找到一些组件化开发的开源项目,也能找到很多Kotlin相关的开源项目,但是组件化+Kotlin结合的开源项目,还是比较少,所以我就大胆的把两者结合实践了一把,确实是遇到了不少的坑,特别是库的依赖经常报错,但是经历这个过程,自然而然获得的收获也就更大了。后续我也会把开发过程中遇到的一些问题进行汇总分享出来。
# 《二》项目架构及技术要点
# 1、项目架构图
![image.png](https://upload-images.jianshu.io/upload_images/3828835-dd491842f999d1a9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# 2、项目涉及的技术要点:
1、组件化+Kotlin结合开发,如何管理第三方依赖<p>
2、BaseActivity和BaseFragment等基类及通用布局的封装<p>
3、MVP+Dagger 2+Retrofit+Rxjava(包括了多个BaseUrl请求的场景处理)<p>
4、组件化开发下ARouter的运用<p>
5、EventBus的使用<p>
6、Google原生数据库Room的使用<p>
7、Glide的使用(封装加载图片工具类GlideUtils,圆形、圆角图片、背景图片加载等)<p>
8、Kotlin下使用ButterKnife<p>
9、CommonAdapter万能适配器(包括多类型布局的运用—首页的逛模块和视频分类详情都有运用)<p>
10、GSYVideoPlayer实现视频播放(包括全屏切换功能)<p>
11、5.0新特性CoordinatorLayout +AppBarLayout效果实现(视频分类详情)<p>
12、沉浸式状态栏(Activity和在Fragment中的使用及不同手机的适配)<p>
13、DataBinding的使用<p>
14、约束布局ConstraintLayout的使用<p>
# 写在结尾:
[Designer](https://github.com/GraceJoJo/Designer)项目可以说得上是倾注了我蛮多心血了,每个页面和功能都当成是上线的App来做,力求做到精致和完善,其中还包括了很多自己项目开发中的经验汇总和对新技术的探索和整合,希望对各位读者有所帮助,欢迎点个star,follow,或者给个小心心,嘻嘻😝也可以分享给你更多的朋友一起学习,您的支持是我不断前进的动力。如果有任何问题,欢迎在GitHub上给我提issue或者留言。
[下载Apk体验](https://fir.im/q2je)
# 致谢:
[MVPArms官方快速组件化方案开源,来自5K star的信赖](https://www.jianshu.com/p/f671dd76868f)<p>
[RxJava](https://github.com/ReactiveX/RxJava)<p>
[Retrofit](https://github.com/square/retrofit)<p>
[GSYVideoPlayer](https://github.com/CarGuo/GSYVideoPlayer)<p>
[ARouter](https://github.com/alibaba/ARouter)<p>
[Kotlin中使用Room](https://github.com/xieyangxuejun/sample-android-room)<p>
[baseAdapter](https://github.com/hongyangAndroid/baseAdapter)<p>
[ConstraintLayout 完全解析 快来优化你的布局吧](https://blog.csdn.net/lmj623565791/article/details/78011599)
# 声明
感谢[想去App](http://www.xiangqu.com/)和开眼App提供参考,个人使用了抓包的方式使用了其中的API,并非攻击,如构成侵权,请及时通知我删除或者修改。
#工程无法运行fix
迁移Androidx: https://www.pianshen.com/article/72141877627/
更新Androidx的butterKnife的问题: https://blog.csdn.net/LeeYKKK/article/details/98209667
Execution failed for task ':app:dataBindingMergeDependencyArtifactsDebug'. Data Binding annotation processor version needs to match the Android Gradle Plugin version. You can remove the kapt dependency com.android.databinding:compiler:3.0.1 and Android Gradle Plugin will inject the right version.https://www.jianshu.com/p/49bb7e6bc229 https://blog.csdn.net/CSDNno/article/details/79897667
Gradle插件版本、gradle版本、kotlin版本 https://blog.csdn.net/u012693479/article/details/106547206
支持lambada需配置jDK8 https://blog.csdn.net/qq_37980878/article/details/116852571
安装NDK: tools–>sdk manager–>Android sdk–>sdk tools–>show package detail–>找到NDK(side by side) 具体版本,完成下载并安装即可(fix : No version of NDK matched the request version 20.0.5594570.Version available locally:22.1.7171670...)
下载gradle慢,可配置本地gradle: //使用本地gradle : https://blog.51cto.com/u_16213304/7096625(先离线下载:https://services.gradle.org/distributions/gradle-5.6.4-bin.zip)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目源码仅供学习和研究之用。在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦!
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-组件化Kotlin开发一个充满设计感的开源App.zip (766个子文件)
gradlew.bat 2KB
loading_progress.gif 620KB
.gitignore 205B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
config.gradle 6KB
build.gradle 3KB
build.gradle 3KB
build.gradle 3KB
build.gradle 3KB
build.gradle 3KB
build.gradle 3KB
bintray.gradle 3KB
build.gradle 3KB
build.gradle 2KB
build.gradle 1KB
build.gradle 1KB
settings.gradle 145B
gradlew 5KB
gradle-wrapper.jar 52KB
GSYVideoControlView.java 42KB
GSYVideoView.java 30KB
StandardGSYVideoPlayer.java 26KB
SwipeMenuView.java 26KB
GSYBaseVideoPlayer.java 26KB
LRecyclerView.java 24KB
GSYVideoManager.java 22KB
AVLoadingIndicatorView.java 19KB
ListVideoUtil.java 19KB
DragSlideLayout.java 18KB
LuRecyclerView.java 17KB
GSYVideoOptionBuilder.java 15KB
ENDownloadView.java 15KB
TagCloudView.java 14KB
GSYVideoGLView.java 14KB
PullZoomListView.java 12KB
LRecyclerViewAdapter.java 12KB
MultipleStatusView.java 11KB
MyRecyclerView.java 11KB
ArrowRefreshHeader.java 11KB
LuRecyclerViewAdapter.java 11KB
TagCloud.java 10KB
SpacesItemDecoration.java 10KB
DragSlidingLayout.java 10KB
LuSpacesItemDecoration.java 10KB
CommonUtil.java 10KB
SquareProgress.java 10KB
GridItemDecoration.java 9KB
OverTextView.java 9KB
MeasureHelper.java 9KB
LuGridItemDecoration.java 9KB
DropZoomScrollView.java 9KB
TagFlowLayout.java 8KB
ENPlayView.java 8KB
NetworkUtils.java 8KB
OrientationUtils.java 8KB
LoadingFooter.java 8KB
DividerDecoration.java 8KB
ViewHolderListView.java 8KB
ViewHolder.java 7KB
LuDividerDecoration.java 7KB
FlowLayout.java 7KB
LamoishEffect.java 6KB
GSYRenderView.java 6KB
GSYTextureRenderView.java 6KB
CustomGSYVideoPlayer.java 6KB
MultiItemTypeAdapter.java 6KB
GSYBaseActivityDetail.java 6KB
RecyclerViewStateUtils.java 5KB
LuRecyclerViewStateUtils.java 5KB
Indicator.java 5KB
NetInfoModule.java 5KB
GSYPreViewManager.java 5KB
RefreshView.java 5KB
ListGSYVideoPlayer.java 4KB
ACT_TestJwt.java 4KB
TestRoomActivity.java 4KB
DocumentaryEffect.java 4KB
GrainEffect.java 4KB
CubeTransitionIndicator.java 4KB
LuRecyclerViewUtils.java 4KB
IOSScrollView.java 4KB
ItemViewDelegateManagerListView.java 4KB
GaussianBlurEffect.java 4KB
CornerOriginSizeTransform.java 4KB
Tag.java 4KB
VideoAllCallBack.java 4KB
PacmanIndicator.java 4KB
ItemRecyclerView.java 4KB
AutoFixEffect.java 3KB
SaturationEffect.java 3KB
CommonAdapter.java 3KB
BallSpinFadeLoaderIndicator.java 3KB
共 766 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
高校毕业设计
- 粉丝: 210
- 资源: 384
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (完整)数据库课程设计餐厅点餐说明书-21ab6d3c8beb172ded630b1c59eef8c75ebf952c.doc
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功