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