学龄1年的android小白2个月独立开发资深项目,还上了何俊林的推荐榜,他是怎么做到的(附项目源码)

226 阅读6分钟

进应用市场交流群请加微信号:Miranda_0720,备注“f”

--------------

最近何俊林等技术大牛推荐了开源项目:百篮应用市场,该源码已在GitHub上获得200多颗star了。

本文目录


一、项目介绍

二、项目挑战

三、项目学习要点

  1. 总结概括课程

  2. 学习思路

  • 网络请求

  • 自定义View

  • 其他

四、项目总结

  1. 学完就忘怎么办?

  2. 学习没有动力怎么办?

  3. 学习时间被工作占满怎么办?

五、项目源码

六、关于作者

百篮应用市场项目介绍


该项目是作者志刚学习仿华为应用市场课程时从0开始写的,多任务下载、观察者模式等部分功能还在完善中。

应用实现功能

Android6.0运行时权限、RecycleView高级封装、沉浸式状态栏、多种自定义控件、完善的网络请求库、利用AIDL缓存清理、观察者模式多页面下载进度同步、应用下载后自定义安装、根据数据请求结果动态更新界面;

项目架构:

Retorfit2+Rxjava2+Mvp+Dagger2的多层封装,高度解耦;

技术要点:

retrofit2、Rxjava2、Dagger2、GreenDAO、Okhttp3、butterknife、circleimageview。

apk截图:

接下来志刚分享了开发的挑战和总结的学习方法,与大家交流。

项目挑战


我学android一年多,当时选择这门课程,因为它涉及到的技术比较新,精美的UI,大量的自定义View,还有一些设计模式,对于我这个菜鸟来说真的诱惑很大。

但这门课程本身的定位是进阶资深开发工程师,如果你和我一样的水平学习起来还是比较吃力:

比如学习的枯燥、遇到太多不理解的知识点、新技术掌握不好导致出现错误调试……这些问题很容易造成挫败感,甚至放弃学习。

但是困难对于我们程序员来说就像影子,是甩不掉的。

因为每天都有新技术。我们总是要去学习的,否则就会被别人淘汰,被市场淘汰。所以早晚都要学习,何不尽早呢?这门课程有我需要学习的地方,就要学下去。

开发学习要点


1.总结概括课程

我用一张图大概总结这门课程。由于时间原因没有把全部知识点都概括出来,只是针对一些我个人认为比较重要的模块列举了出来。

 

2.学习思路

我觉得任何一个课程没绝对的完美也没有绝对的不好,只有适不适合自己。

其实说实在的,这门课程就有点不太适合我自己,因为里面的很多东西都是我没有掌握的,甚至是都没有接触过的;并且,定义为进阶资深的课程确实有不小的难度。

那么对我这种小白是该如何学习呢?  

抓重点,对于这门课程我认为最难的两个地方是网络相关和自定义View。

网络请求:

网络请求在课程中是一个独立的library,里面封装了很多层,涉及到的知识点也很多:比如RXjava2,拦截器,下载,缓存,重复请求,生命周期管理……覆盖了很多,理解起来也比较有难度。

学习步骤具体如下:

▪先掌握它里面所涉及的知识:OKhttp3,retrofit2,Rxjava2,GreenDAO;

▪再结合代码,映射到实际场景中。把学到的知识点与场景结合,既能加深学到的技术也能更好地理解框架;

▪最后也是最重要的就是封装的思想。对我来说做起来还是挺难的。不过毕竟我也不是资深,慢慢来,学习是个过程,急不得。

那么我再来说下如何学习这几种技术。    

Okhttp3

先去看下Ivan老师的课程了解基本入门和使用问题,想要继续深入了解可以多看一些博客,这里我就不推荐,有很多。

http://www.cniao5.com/course/10117

retrofit2

如果OKhttp3学好了retrofit2就不难了,看Ivan老师的课程,再看文档很快就上手了。这个还是比较容易的。

http://www.cniao5.com/course/10118

推荐文章:[Retrofit2.0使用详解]

http://blog.csdn.net/ljd2038/article/details/51046512

Rxjava2

这个我个人觉得比较难,不是多难学习,而是它的操作符太多了,另外涉及到其他知识,比如响应式编程结构,观察者模式,生命周期管理,数据传输控制……不过饭要一口一口吃。

我们可以先看看Ivan老师课程,再看博客和官方文档,最后结合“在路上”老师课程中所讲到的要点,这样学习搞定课程是基本没有啥问题。

http://www.cniao5.com/course/10120

推荐文章:  

[给初学者的RxJava2.0教程]

http://www.jianshu.com/p/464fa025229e

[Rxjava2-小白快速入门]

http://blog.csdn.net/gg199402/article/details/78174800

GreenDAO

这个看看课程中的视频就可以的。

--------------------------

自定义View:

自定义View是个漫长的学习过程,个人建议按以下步骤学习:

动画->画笔->canves->事件分发->自定义布局->自定义控件->drawable->……

如果和我一样没有怎么接触,那么我推荐几篇文章参考下:

Android自定义控件三部曲

这是我看N遍的文章,像本教科书。

http://blog.csdn.net/harvic880925/article/details/50995268

鸿洋的自定义View

http://blog.csdn.net/lmj623565791/article/details/24252901/

Android Layoutlnflater原理分析

http://blog.csdn.net/guolin_blog/article/details/12921889

Android事件分发机制完全解析

http://blog.csdn.net/guolin_blog/article/details/9097463

Android开发艺术探索

书籍,真的很不错

从源码角度分析UI绘制流程

http://www.cniao5.com/course/10133

--------------------------

我学习自定义View整整花了一个半月时间,可一个月后都忘得差不多了,真的很沮丧。所以准备写一个关于自定义View的系列文章,总结自己的经验,帮助和我一样的小白。最近时间少,不过我一定会写的。 

其他:

剩下知识点都难不倒大家,如果不理解,找些相关的文章看看,然后自己实践下,应该就能解决。

项目总结


技术难学不可怕,学完就忘才可怕。解决方案:

▪课程中我还没掌握的有时间会再敲一遍;

▪遇到的坑写成笔记,没事看看,基本掌握后二度创作成博客,作为以后的复习资料。

Android就业困难,就是我学习的动力

现在Android就业困难,搜个一年经验的就要求会Framework、了解底层原理、会前台后台、会设计模式,一大堆新技术也要会,动不动就源码,是真的让人害怕。

所以不强大自己,怎么有优势,面试的时候吹啥?

时间就像海绵,挤一挤就有

现实与想象的差距总是有点大:平日大家要加班,自主学习的时间变得很少,导致陷入想学却心有余而力不足的囧境。

但时间就像海绵,挤一挤总会有的。我们总是羡慕大神什么都懂,却习惯性忽略人家背后成百倍的付出。所以骚年,放下手中的王者荣耀、英雄联盟、电视剧……干点正事。

比如和我一样迎难而上,逼自己一把

学《仿华为应用市场》课程

进阶安卓资深工程师。

课程详情☟☟

进群拿项目源码

学习是互动性的

我建了【应用市场资深交流群】

欢迎大家入群与我共同交流学习☟☟☟

群满加下方微信备注“f”拉你进群

关于作者


志刚在这里分享小白的学习历程,

博客:http://blog.csdn.net/gg199402?viewmode=contents

简书:http://www.jianshu.com/u/70a8f4edb323

   

学习仿华为应用市场课程点击【阅读原文】