Android 优质开源项目剖析与技术进阶
本系列的文章主要面向以下几类读者:
- 不满足于
简单使用开源库
,想要通过探究其原理
以精进自身技术或创建自己的开源库
; - 对于
新技术
如RxJava
等的实践处于摸索状态,希望有优质的code实例及细致分析
来让你迅速上手一门新技术; - 对于一些
底层库
如网络底层库Retrofit
、图片加载库Picasso/Glide
等实现原理保持好奇。
比起阅读枯燥文档,独自摸索一门技术的最佳实践,我们还有一种方法能够快速而稳定的精进自身的开发水平,那就是通过阅读、分析、仿写与理解
优质的开源项目。
一、已有文章
Application
分析文档 | 作者 | 开源项目 | 介绍 | 添加时间 |
---|---|---|---|---|
自己动手实现OkHttp | wingjay | OkHttp | 学习okhttp世界级项目的思维精华 | 20160721 |
RxLifecycle: 当Activity被destory时暂停网络请求 | wingjay | RxLifecycle | 处理RxJava中内存泄漏问题 | 20160715 |
Meizhi Android之RxJava & Retrofit最佳实践 | wingjay | Meizhi | 使用RxJava & Retrofit的sample | 20160416 |
View
分析文档 | 作者 | 开源项目 | 介绍 | 添加时间 |
---|---|---|---|---|
JJSearchViewAnim源码分析 | Skykai521 | JJSearchViewAnim | 20160417 | |
SwipeBackLayout源码分析 | Skykai521 | SwipeBackLayout | 20160417 | |
HTextView源码分析 | Skykai521 | HTextView | 20160417 |
Library
分析文档 | 作者 | 开源项目 | 介绍 | 添加时间 |
---|---|---|---|---|
ButterKnife源码分析 | BigFootprint | ButterKnife | 20160423 | |
RxPermissions源码解析 | Skykai521 | RxPermissions | 20160417 | |
BarcodeScanner源码分析 | Skykai521 | BarcodeScanner | 20160417 | |
ViewAnimator源码分析 | Skykai521 | ViewAnimator | 20160417 | |
uCrop源码分析 | Skykai521 | uCrop | 20160417 | |
Picasso源代分析 | Skykai521 | Picasso | 20160417 | |
EventBus 3.0源码分析 | Skykai521 | EventBus | 20160417 |
优质开源项目
二、我们会挑选哪些1. 新技术
我们会挑选覆盖RxJava
、React Native
、Dynamic load
、Dagger
、Retrofit
等新技术的开源项目,分析总结出新技术最佳实践
供读者阅读仿写,快速将新技术应用到自身项目开发中,不用反复踩坑。
2. 底层库
初级程序员会调用API、实现基本功能;
中级程序员开始封装
,消除ugly
代码;
高级程序员能够设计架构
,重构出优雅
代码。
我们会挑选一些优秀底层库,深入浅出
的去分析它们的设计思想
,阐述如何把这些设计思想融入到自身实际项目中。
3. 自定义View
很多人习惯了在Github寻找通用的UI库。
坏消息是,UI的变化千千万,迟早有一天我们会不得不由于自己项目的特殊性,而要自己来实现自定义view。
好消息是,自定义view虽然变化万千,但却不离其宗,而我们的分析就是尝试向你讲述如何理解自定义view的原理
。
三、加入我们
如果你对本项目有兴趣,你可以选择以下方式之一加入进来:
阅读者
。start & watch
这个项目,关注微信公众号CoolCoder
,我们会在第一时间推送。写作者
。如果你热爱分析开源项目,热爱分享与写作。那就挑选一个你认为优质的开源项目进行写作,创建pull request。另外,你可以在task.md里记录你准备分析的项目。评论者
。阅读中遇到问题?直接创建issue,作者会快速回答你。翻译者
。如果你还不具备分析开源项目的能力,那可以来对我们的中文文章进行翻译。这个翻译过程会让你受益匪浅的。校对者
。如果你技术过硬,愿意帮助新手程序员,可以发邮件给我mailto:[email protected],我相信"校对者"三个字会让很多年轻程序员记住你。
四、写作者
...