推荐3个开源项目

推荐的来源,一是我平时我个人发现的;二是来自完整开源项目投稿,这方面的资源还是比较少的,一个完整的项目也非常适合大家学习,如果你刚好做了这样的项目,不妨投稿能帮助更多的人。


1 短视频小应用


推荐3个开源项目_第1张图片


《KotlinMvp》 是仿着“开眼Eyepetizer”之前版本并加上自己的想法,开发的一款的短视频小应用,每日为你推荐精选视频,让你大开眼界。本项目采用 Kotlin 语言编写,结合 MVP+RxJava2+Retrofit2+Glide等的架构设计,学习 Kotlin 利用空余时间开发的一款小项目,代码结构清晰有详细注释,如有任何疑问和建议请提 Issue。


https://github.com/git-xuhao/KotlinMvp


主要使用的第三方开源框架有:


  • RxJava

  • RxAndroid

  • Retrofit

  • Glide

  • Logger

  • FlycoTabLayout

  • Flexbox-layout

  • RealtimeBlurView

  • SmartRefreshLayout

  • BGABanner-Android

  • GSYVideoPlayer


可以下载体验后,决定是否适合自己学习:


-长按我下载-


2 awesome-java-leetcode


相信不少关注者,包括我在内,算法都是软肋。现在面试大公司,不可避免的需要面试算法题,算法的能力其实是可以锻炼的,很好的一个途径就是Leetcode,为了高效的练习,可以关注下该库,包含解题思路,代码等。


甚至还整理了一些公司使用过的算法的面试题~


原介绍:


我如今是一名 Android Developer,大学的我曾是一名 ACMer,我一直认为数据结构和算法是作为一名程序员必须掌握和善于利用的,为了不让数据结构和算法淡出我的记忆,所以我打算重拾 LeetCode 之 Algorithm,语言选择的是 Java,题库会一点点完善起来,按简单,中等,困难分类,相应难度下按题号排序,源代码在 src 目录中,相关解题都在 note 目录中,想要学习数据结构和算法或打算刷 LeetCode 的小伙伴们欢迎 star 哦。


https://github.com/Blankj/awesome-java-leetcode


3 NullAway


相信大家都有感受,打开我们应用的Crash记录平台,榜首的大多数都是被NullPointException所占据,Kotlin也因为很大程度的“消除NPE”而成为一些开发者选择其作为开发语言的。


这个库的诞生也是为了尽可能消除NPE而来,该库是Uber用于检测Android上的NullPointerExceptions的开源工具。


https://github.com/uber/NullAway


为了避免大家尝试过程中遇到一些问题,下面我简单贴一下在AS中的集成和简单的使用方式:


环境:MAC + AS3.0


项目的根build.gradle设置仓库和classpath:


buildscript {
   ext.kotlin_version = '1.0.0'
   ext.kotlin_version = '1.1.51'
   repositories {
       google()
       jcenter()
       // 新增
       maven { url "https://plugins.gradle.org/m2/" }
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:3.0.0'
       classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
       // 新增
       classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"
       // NOTE: Do not place your application dependencies here; they belong
       // in the individual module build.gradle files
   }
}

 

module的build.gradle:


apply plugin: 'com.android.application'
// 新增
apply plugin: 'net.ltgt.errorprone'
}
dependencies {
   //... 新增
   annotationProcessor "com.uber.nullaway:nullaway:0.2.2"
}
// 新增
tasks.withType(JavaCompile) {
   // remove the if condition if you want to run NullAway on test code
   if (!name.toLowerCase().contains("test")) {
       options.compilerArgs += ["-Xep:NullAway:ERROR", "-XepOpt:NullAway:AnnotatedPackages=com.imooc.nullawaylearn"]
   }
}


compilerArgs里面你可以:


  • 设置为ERROR、WARN,上例设置为ERROR

  • 设置具体检测的包名,上例设置为com.imooc.nullawaylearn


当设置为ERROR:



设置为WARN时:


> Task :nullawaylearn:compileDebugJavaWithJavac
/Users/zhanghongyang01/git-repo/mime/Studio_3_0_Test/nullawaylearn/src/main/java/com/imooc/nullawaylearn/MainActivity.java:12: 警告: [NullAway] passing @Nullable parameter 'null' where @NonNull is required
       log(null)
;
           ^
   (see http://t.uber.com/nullaway )
1 个警告


推荐阅读


上一篇:开发SDK和平时写代码体验不同吗? 

[源码] 推荐几个优质的完整项目学习



如果你想要跟大家分享你的文章,欢迎投稿~


转自:https://mp.weixin.qq.com/s/2VQsf4icbLzPPzQT8z1SjA

你可能感兴趣的:(项目,张鸿洋)