推荐Android几个优质的完整项目学习

==>来自于微信公众号==鸿洋。你们能够关注一波大神之做。android

后台常常有人问我能不能推荐几个完整项目用于学习。借着周末的机会,给你们推荐几个,项目我基本都在本地运行过,而且会在文章末尾提供每一个项目的apk用于你们下载预览,若是你以为不错能够再学习源码,这样避免了你们还须要导入、运行后选择,能够节省必定你们的时间。git

 

此外,因为完整项目类很难在github上搜索,特地在wanandroid.com上开设了一个分类用于存储完整的开源项目方便你们查找(最近工做太忙,wanandroid开发进度比较慢~~)。github

 

http://www.wanandroid.com/article/list/0?cid=254面试

 

下面开始推荐的项目吧~编程

 

 

1diycode客户端缓存

 

 

Diycode 社区客户端,相信不少人应该都知道这个社区,偶尔会有一些质量很高文章、讨论等。微信

 

他们不但开源了客户端,并且提供了一套SDK,若是你想要本身动手开发一个练手项目,是个不错的选择。网络

此外,为了便于理解项目源码,他们在ReadMe中提供了几篇技术文章:架构

 

  • 01 - 总体架构app

  • 02 - 缓存 WebView 中的图片

  • 03 - 点击网页图片查看大图

  • 04 - API 的封装哲学

  • 05 - 使用抽象类节省 1000 行代码

 

这些文章不只可以方便你们理解,也能够用来积累知识~

 

https://github.com/GcsSloop/diycode

 

2咕咚翻译app

 

 

 

一个实现『划词翻译』功能的 Android 应用 ,多是目前 Android 市场上翻译效率最高的一款应用。

 

若是你常常在手机上阅读文章,偶尔遇到一些英文单词须要翻译,你只要在当前页面“划词”便可实现翻译,该app很是实用,固然里面也包含一些技术值得你花时间去学习:

 

一、全程使用 Dagger2 对项目进行类依赖管理

二、项目使用标准的 MVP 架构,关于 MVP 的一篇博客

三、实现对粘贴板的监听以及访问

四、无需权限显示悬浮窗(6.0悬浮窗权限适配)

五、使用 RxJava 探索函数式编程

六、使用 Retrofit2 进行网络请求

七、开机自启动

八、Android 6.0 自定义文本操做栏

 

https://github.com/maoruibin/TranslateApp

 

3开眼视频学习项目

 

 

 

作的很是精致,界面很是优雅,功能也处于相对完毕的状态。最重要的是是使用kotlin编写的,若是你正在或者想要学习kotlin,经过项目去学习要比经过文字来学习快得多。

 

同时在Readme页面,做者也对kotlin的特性有一些初步的介绍。若是你如今时间较为充足,不妨学习下kotlin~

 

程序仅供学习交流, 不可用于任何商业用途

https://github.com/LRH1993/Eyepetizer-in-Kotlin

 

 

4仿今日头条学习项目

 

 

 

 

 

 

 

你能够认为这是一个遵循Material Design风格的第三方的头条客户端,功能已经至关完备,, 聚合了新闻/段子/图片/视频/头条号内容, 没有广告, 仅仅只有存粹的阅读, 不断完善中, 采用 MVP + RxJava + Retrofit 架构的项目~

 

包含技术:

 

  • 基本遵循 Material Design 设计风格

  • 抓包获取今日头条API

  • 使用 Google 官方 MVP 架构

  • DrawerLayout + NavigationView + BottomNavigationView 搭配使用

  • RxBus 代替 EventBus 进行组件之间通信

  • ViewPager 搭配 Fragment 懒加载

  • SwipeRefreshLayout 搭配 RecyclerView 下拉刷新上拉加载

  • 自定义 BottomNavigationBehavior 实现上滑隐藏下滑显示

  • RxJava + Retrofit2 + OkHttp3 作网络请求

  • OkHttp3 对网络返回内容作缓存, 还有日志、超时重连、头部消息的配置

  • V层基类的构建, 包括 BaseActivity 和 BaseFragment , 对外提供了相同的接口

  • 使用原生的夜间模式

  • 解决侧滑返回与 View 冲突问题

  • 内置 3 款 Logo, 随意切换

  • 使用 CoordinatorLayout 、 AppBarLayout 、 CollapsingToolbarLayout 、 BottomSheetDialog 等等新控件

  • 使用 7.0 新工具 DiffUtil , 再也不无脑 notifyDataSetChanged

  • 使用 ItemTouchHelper 实现今日头条的频道排序、频道移动, 参考 ItemTouchHelperDemo

  • 使用 RxBinding 优雅实现搜索请求

  • 使用 RxLifecycle 绑定 RxJava 生命周期

  • 使用 Travis Cl 持续集成

 

更加剧要的是,做者双11还在更新代码,是个至关不错的学习项目~~

 

程序仅供学习交流, 不可用于任何商业用途

https://github.com/iMeiji/Toutiao

 

 

5斗鱼学习项目

 

 

 

 

 

高仿程度使人咋舌~光是UI和一些特效都够学习至关一段时间了。

 

涉及到的一些第三方以下:

 

  • 弹幕三方库:DanMu

  • 轮播图:BGABanner

  • 刷新加载控件XRefreshView

  • 导航栏控件 FlyCoTabLayout

  • 弹幕与房间加密参考项目:斗鱼项目

  • 直播视频播放器 :vitamio播放器 (备注:直播视频格式:HLS,RTMP)

 

源码:https://github.com/TeamCodeForGit/DouYu

 

想必会有朋友会遇到导入不成功的问题,如遇问题尽量将gradle相关配置修改成本身经常使用的版本,而后根据提示解决。

 

推荐阅读:

个人 Android 面试故事 | 13家面试记录

不要错过 | 给你们推荐一些提高技能的好书

相关文章
相关标签/搜索