毛豆荚的github

关于我的一些star项目的分类与整理

1、Android

UI控件及一些很炫的动画

AVLoadingIndicatorViewhttps://github.com/81813780/AVLoadingIndicatorView

一组加载动画实现。

WaveSwipeRefreshLayouthttps://github.com/recruit-lifestyle/WaveSwipeRefreshLayout

下拉刷新效果。

TextSurfacehttps://github.com/elevenetc/TextSurface

动画展示文本的库。

HTextViewhttps://github.com/hanks-zyh/HTextView

一个TextView的扩展,可以显示几种很炫的文字切换效果。

Material Scrollinghttps://github.com/satorufujiwara/material-scrolling

实现Material Design中那种带头图Parallax滚动、ToolBar自动隐藏/显示的效果。

ExplosionFieldhttps://github.com/tyrantgit/ExplosionField

爆炸效果控件。MIUI 7 Launcher应用卸载的效果。

Android-ConvenientBannerhttps://github.com/saiwu-bigkoo/Android-ConvenientBanner

轮播图控件。

TransitionPlayerhttps://github.com/linfaxin/TransitionPlayer

一个方便创建与控制Transition动画的库。

ArcAnimatorhttps://github.com/asyl/ArcAnimator

帮助实现弧形transition效果。

AndroidFillableLoadershttps://github.com/JorgeCastilloPrz/AndroidFillableLoaders

利用矢量图的加载效果。

AndroidScrollingImageViewhttps://github.com/Q42/AndroidScrollingImageView

图片分层滚动效果控件,可用来实现一些循环播放的动画。

Blurryhttps://github.com/wasabeef/Blurry

对图像进行模糊渲染。

500px-android-blurhttps://github.com/500px/500px-android-blur

可显示图像模糊效果的控件

CustomActivityOnCrashhttps://github.com/Ereza/CustomActivityOnCrash

很有趣的库,可以在应用crash时显示自定义的提示界面。

EaseInterpolatorhttps://github.com/cimi-chen/EaseInterpolator

动画插值算法集合。

Leonidshttps://github.com/plattysoft/Leonids

粒子系统。

TourGuidehttps://github.com/worker8/TourGuide

类似于原生Launcher,可显示蒙层点击指示与提示文字的控件。

BottomSheethttps://github.com/Flipboard/bottomsheet

底部浮层控件。

MaterialViewPagerhttps://github.com/florent37/MaterialViewPager

不解释。

SmartTabLayouthttps://github.com/ogaclejapan/SmartTabLayout

一个ViewPager的tab标识。

shimmer-androidhttps://github.com/facebook/shimmer-android

Facebook出品,可为任意的View加入闪亮动态效果。

SystemBarTinthttps://github.com/jgilfelt/SystemBarTint

在4.4以上的translucent模式下帮助状态栏着色。

ToggleButtonhttps://github.com/zcweng/ToggleButton

开关控件。

WaveViewhttps://github.com/john990/WaveView

波浪效果,可用于进度条。

Ultra Pull-To-Refreshhttps://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh

下拉刷新框架,可实现较复杂的自定义效果。

MaterialEditTexthttps://github.com/rengwuxian/MaterialEditText

仿MD的输入框效果,比support库中自带控件要略全面些,可向前兼容到2.1。

android-styled-dialogshttps://github.com/avast/android-styled-dialogs

基于DialogFragment的MD对话框库,可兼容老版本系统。

Croutonhttps://github.com/keyboardsurfer/Crouton

可显示一些华丽的toast。

RippleViewhttps://github.com/siriscac/RippleView

Ripple效果的前向兼容控件。

Button Menuhttps://github.com/tuenti/ButtonMenu

一个按钮工具条的实现。

android-morphing-button: https://github.com/dmytrodanylyk/android-morphing-button

点击后可变形为进度条的按钮控件,效果很赞。

AndroidSlidingUpPanelhttps://github.com/umano/AndroidSlidingUpPanel

可拖动展开/关闭的一个浮动面板控件。

TapBarMenuhttps://github.com/michaldrabik/TapBarMenu

点击展开/收起的菜单按钮实现。

EasyAndroidAnimationshttps://github.com/2359media/EasyAndroidAnimations

一些动画效果的集合,需要时可作为动画算法实现的参考。

ViewAnimatorhttps://github.com/florent37/ViewAnimator

Animator动画框架的一个封装,可以方便的使用链式调用组合各种动画,实现最终效果。

Knifehttps://github.com/mthli/Knife

一个富文本编辑器控件。

有用的库

okhttphttps://github.com/square/okhttp

Square出品的HTTP请求基础库,其代码已经被用在了Android系统的UrlConnection实现上。支持SPDY。

android-jobhttps://github.com/evernote/android-job

Evernote出品,一个后台定时任务的库。

Android Priority Job Queuehttps://github.com/yigit/android-priority-jobqueue

注:优先用自己的fork,会定期同步。 带优先级控制的后台任务执行库,可将任务持久化以便在应用遭遇异常后仍能恢复之前的任务。

ReLinkerhttps://github.com/KeepSafe/ReLinker

一个native库安全加载的方案,解决一些由于安装时错误造成native库无法加载的UnsatisfiedLinkError。

Lethttps://github.com/canelmas/let

基于Annotation的运行时权限申请库(6.0 Marshmallow新增)

Dexterhttps://github.com/Karumi/Dexter

一个类似的库,也是为了简化运行时权限申请的麻烦流程。

Phrasehttps://github.com/square/phrase

资源模板,可通过定义占位符的方式进行文本替换。

EventBushttps://github.com/greenrobot/EventBus

很好用的一个Event Bus库,性能也优于基于反射的Dagger。

Dagger 2https://github.com/google/dagger

Google从Square接手进行实现的依赖注入库。Dagger 2不再使用反射,性能上应优于1。

LeakCanaryhttps://github.com/square/leakcanary

内存泄露检测好帮手,用上就爱不释手。

BlockCanaryhttps://github.com/moduth/blockcanary

阿里工程师开源的UI卡顿检测工具。

Frescohttps://github.com/facebook/fresco

Facebook出品的图片加载库,除jpeg、png外还支持webp、gif。使用了一些黑科技以减少系统对图像内容所占内存的回收。

Android-Universal-Image-Loaderhttps://github.com/nostra13/Android-Universal-Image-Loader

图片加载库。

picassohttps://github.com/square/picasso

Square出品的图片加载库。

Glidehttps://github.com/bumptech/glide

也是一个图片加载库。支持视频和GIF。

LoganSquarehttps://github.com/bluelinelabs/LoganSquare

号称最快的JSON库,在ART上性能超出GSON,Jackson等库400%以上。

ig-json-parserhttps://github.com/Instagram/ig-json-parser

Instagram出品的一个JSON库。

json2viewhttps://github.com/Avocarrot/json2view

利用JSON动态改变布局显示,有点意思。

libsuperuserhttps://github.com/Chainfire/libsuperuser

Root用。

Scissorshttps://github.com/lyft/scissors

一个图片剪裁库。

SimpleCropViewhttps://github.com/IsseiAoki/SimpleCropView

另一个图片剪裁库。

动态加载、热修复相关

android-dynamical-loadinghttps://github.com/kaedea/android-dynamical-loading

动态加载相关的一些项目的集合,收藏以备后用。

DroidPluginhttps://github.com/Qihoo360/DroidPlugin

360的插件开源实现,据说有些黑科技。

Dexposedhttps://github.com/alibaba/dexposed

阿里出品的AOP框架,通过类似于Xposed框架的原理,通过hook方法的方式实现对方法代码执行的控制。

NuWa(女娲)https://github.com/jasonross/Nuwa

一个热修复的纯Java实现,原理是利用了ClassLoader加载dex的工作流程。

AndFixhttps://github.com/alibaba/AndFix

阿里出品的另一个热修复框架,通过“方法替换”实现热修复。Dalvik和ART分别有不同的Hack方式。

AndroidChangeSkinhttps://github.com/hongyangAndroid/AndroidChangeSkin

号称无侵入换肤。没尝试过,备后续有需要的时候再看。

Rx相关

RxJavahttps://github.com/ReactiveX/RxJava

不用介绍了吧,万物皆为流的概念还是很Mind-blowing的!

RxAndroidhttps://github.com/ReactiveX/RxAndroid

Android上使用RxJava必备。

Retrofithttps://github.com/square/retrofit

HTTP请求的库,和RxJava是绝配有木有。Square出品,品质有保证。

sqlbritehttps://github.com/square/sqlbrite

Rx方式操作SQLite数据库。

tray: https://github.com/grandcentrix/tray

号称SharedPreferences替代,可支持多线程。

Android相关工具

AndResGuardhttps://github.com/shwenzhang/AndResGuard

微信Team出品,可以对资源进行混淆压缩,实测有效。用在生产环境里需要注意仔细配置白名单,否则分分钟遇到资源找不到的崩溃,尤其是对于需要通过名称获得或者反射找到资源的情况(多见于一些第三方SDK)。

MultiChannelPackageToolhttps://github.com/seven456/MultiChannelPackageTool

一个多渠道打包工具,利用了zip文件格式的特点,做到了无需重压缩/解压/签名等。还是很有意思的。

gradle-packer-plugin: https://github.com/mcxiaoke/gradle-packer-plugin

packer-ng-plugin: https://github.com/mcxiaoke/packer-ng-plugin

同一个作者的两版渠道打包工具。第一版使用了传统的gradle product flavors方式实现,第二版则采用了同MultiChannelPackageTool的原理。

vectalignhttps://github.com/bonnyfone/vectalign

可以用两个VectorDrawable生产两者过渡的路径(类似Material Design的那个“菜单<->返回”)的工具。

psynchttps://github.com/Flipboard/psync

将xml定义的Preference自动转换为Java类,便于管理其对应的值。还支持转为Rx对象以便……你懂的。

ClassySharkhttps://github.com/google/android-classyshark

Google开源的一个APK信息反编译查看工具,查看一些简单的信息比做一遍反编译要方便。

MaterialColdStarthttps://github.com/DreaminginCodeZH/MaterialColdStart

一个用于制作MD风格启动背景图的工具。其优化启动速度的思路很值得借鉴:先利用一张和应用布局相同的背景作为启动Activity的背景,从而在Application创建到Activity.onCreate之间的时间显示,给用户一种很快的感觉,然后在Activity onCreate之前将其主题修改为其正常的纯色背景主题,综合达到了加速冷启动速度的效果(体验上,实际速度并无优化)。

App应用实例

WeChatLuckyMoneyhttps://github.com/geeeeeeeeek/WeChatLuckyMoney

一个微信抢红包的app,留作观摩用。

BuildingBlockshttps://github.com/tangqi92/BuildingBlocks

一个知乎日报的三方客户端,MD风格。

SmsCodeHelperhttps://github.com/drakeet/SmsCodeHelper

短信验证码助手。

Universal Music Playerhttps://github.com/googlesamples/android-UniversalMusicPlayer

Google官方出品的展示MD的一个音乐播放器应用。

ioschedhttps://github.com/google/iosched

Google I/O 2015官方App。

Rainvillehttps://github.com/feelinglucky/Rainville

聆雨,一个白噪音的App,很小清新。

Douyahttps://github.com/DreaminginCodeZH/Douya

豆瓣第三方客户端,MD风格,其中用到的一些工具库值得参考。

2、iOS

trip-to-iOShttps://github.com/Aufree/trip-to-iOS

iOS相关资源集合。

the-swift-programming-language-in-chinesehttps://github.com/numbbbbb/the-swift-programming-language-in-chinese

《Swift语言》中文版。

Neonhttps://github.com/mamaral/Neon

一个Swift的UI布局框架。

waxhttps://github.com/alibaba/wax

用Lua写iOS应用的框架。

3、JavaScript

React

Facebook推出的一套虚拟DOM框架,方便UI的展示。网址: http://facebook.github.io/react/

React-Nativehttps://github.com/facebook/react-native

使用React写iOS/Android应用。

ZhiHuDaily-React-Nativehttps://github.com/race604/ZhiHuDaily-React-Native

一个React-Native实例,使用了知乎日报的API。

Vue.js

一个不大但蛮精干的MVVM框架,用起来很简单。 https://github.com/vuejs/vue

其他

blisshttps://github.com/LeaVerou/bliss

Heavenly JavaScript。