从零到一完成一个健身App之一:开篇词和项目概述

从零到一完成一个健身App

一.开篇词

我的计划是用一年半到两年的时间完成一个健身App。

1.目的:我是一个喜欢接受新技术的人。但是我又是一个很懒的人,这种懒惰体现在自己对于技术可能很多时候只限于使用的地步,而没有去深挖技术内部原理和实现细节,并且对于App的设计也缺乏一定的思考。现在自己已经在公司工作两个月了,从公司的项目中开阔了眼界。但是苦于没有地方练手。所以想找个App把自己学到的应用上来。目前来看,自己对于Android较为深入的技术都缺乏认知,都是需要强补的。这也是我想从头开始设计一个好的应用的原因。

2.项目现状与预期:这个应用是我为自己这种健身爱好者量身打造的应用,也打算部分参考keep和抖音的设计。之前未毕业前就有开始过这个项目的开发,但是当时因为毕业而搁置了。现在再拿出来看,当时的代码写的非常的傻逼。于是打算推翻重来。预期是:

  • 学会使用主流框架,如fresco,Architecture Component,RxJava等。
  • 结合组件化和插件化,热修复等技术
  • 对于一些较为简单的工具,如路由框架,能自行编写
  • 关注性能优化
  • 在项目的一些模块中能接触到深度学习。做一个AI赋能的App

3.项目计划:因为现在在公司项目中确实压力比较大,10,10,大小周。目前来看,自己能用在这个项目上的时间是早上的八点半到十点。晚上的十点四十到十一点四十。周末也有时间可以搞一搞。考虑到自己可能需要学习很多的知识,而且自己平时的时间也不一定能放到这个上面来,预计需要一年半到两年的时间里完成这个项目。在这两年里,我会每两周根据自己的项目情况完成一篇博客。因为是自己的项目,代码中不会出现公司的代码,所有的代码都是自己学习后产出的。也不希望有人将我这项目用于商业目的。

4.专栏适合的人群:

  • 有一定Android开发经验,处于Android基础和进阶之间的人
  • 想通过一个完整项目接触到当前互联网公司里最火热的技术的人
  • 作为Android开发,想接触到深度学习等在Android中应用的人
  • 适用于想一步一步提升自己各方面Android技术的人

二。项目概述

1.项目将会采用的总体架构:

  • MVVM和Architecture Component:相信大家都知道有MVC,MVP,和MVVM三种架构,MVC就不说了,MVP在很长的一段时间里都是主流,但是已经体验过MVVM的我不可能再用MVP了-_- 。常用的MVVM框架有databinding,但是databinding会带来业务代码耦合进xml中的问题,扩展性也差。我决定使用google的Architecture Component。谷爹出品,值得信赖,而且还挺好用的,很多数据问题都得到了解决。

  • RxJava:Rxjava作为一个成熟的库,事件流和函数式编程的思想深入人心

  • okhttp+retrofit:这两个框架是当今大厂的主流网络框架,也是学习网络相关的重要入口,我会在基本使用的基础上去挖掘相关的值得学习和有亮点的地方。
  • fresco:这也是最强大和性能最好的图片框架了。
  • 插件化+组件化+热修复:这三个是类似的,但是又有一些区别。我倾向于每种技术都自己实现一个框架,其中组件化的路由框架我是一定要写的,代码量并不多。其他的就等到时候再看,如果有时间就自己写一个。
  • AOP技术:主要是用来进行日志和自动埋点等。目前对这块不是特别熟悉,等到时候再考虑吧。
  • JNA:由于之前没怎么接触过JNI技术,对相关的技术都不是很了解。所以在这个项目中想加入一些特效相关的处理,这也是我的兴趣所在。不可避免的要使用到native方法。因此打算使用JNA这个库
  • 深度学习框架:目前暂定ncnn,腾讯优图出品的开源深度学习框架,看评测是要强于目前所有已知开源框架。
  • 数据库:因为Realm的一些坑,数据库框架打算采用GreenDao。
  • 下载库:打算自己实现一个比较有意思的库。目前公司的项目有,自己可以吸收其精华,去掉自己不需要的部分。

再次声明:本项目中不会有公司项目的源码,都是自己完成。