GithubHelp home page GithubHelp logo

goldze / mvvmhabit Goto Github PK

View Code? Open in Web Editor NEW
7.5K 178.0 1.7K 1.27 MB

👕基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合Okhttp+RxJava+Retrofit+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发一个高质量、易维护的Android应用。

License: Apache License 2.0

Java 100.00%
mvvm databinding retrofit retrofit2 rxjava okhttp glide mvvm-library rxjava2 aac

mvvmhabit's Introduction

mvvmhabit's People

Contributors

goldze avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mvvmhabit's Issues

RecyclerView item 点击事件

Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'android:onItemClickCommand' with parameter type me.goldze.mvvmhabit.binding.command.BindingCommand<java.lang.String> on android.support.v7.widget.RecyclerView.
file:D:\work\xiantian\GreenBeans\userapp\src\main\res\layout\activity_quick_order.xml
loc:60:50 - 60:84
****\ data binding error ****

点击访问网络 crash

09-03 18:02:13.419 4324-4324/com.goldze.mvvmhabit E/CustomActivityOnCrash: App has crashed, executing CustomActivityOnCrash's UncaughtExceptionHandler
java.lang.ExceptionInInitializerError
at com.goldze.mvvmhabit.utils.RetrofitClient$SingletonHolder.access$100(RetrofitClient.java)
at com.goldze.mvvmhabit.utils.RetrofitClient.getInstance(RetrofitClient.java:56)
at com.goldze.mvvmhabit.ui.vm.NetWorkViewModel.requestNetWork(NetWorkViewModel.java:152)
at com.goldze.mvvmhabit.ui.vm.NetWorkViewModel.onCreate(NetWorkViewModel.java:53)
at me.goldze.mvvmhabit.base.BaseFragment.onViewCreated(BaseFragment.java:65)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1430)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3231)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3181)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:572)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at com.trello.rxlifecycle2.components.support.RxAppCompatActivity.onStart(RxAppCompatActivity.java:66)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1244)
at android.app.Activity.performStart(Activity.java:6247)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2678)
at android.app.ActivityThread.access$900(ActivityThread.java:187)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:210)
at android.app.ActivityThread.main(ActivityThread.java:5809)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879)
Caused by: java.lang.IllegalArgumentException: Unexpected char 0x65e5 at 0 in header name: 日志请求头
at okhttp3.Headers$Builder.checkNameAndValue(Headers.java:330)
at okhttp3.Headers$Builder.set(Headers.java:318)
at me.goldze.mvvmhabit.http.interceptor.logging.LoggingInterceptor$Builder.addHeader(LoggingInterceptor.java:153)
at com.goldze.mvvmhabit.utils.RetrofitClient.(RetrofitClient.java:94)
at com.goldze.mvvmhabit.utils.RetrofitClient.(RetrofitClient.java:60)
at com.goldze.mvvmhabit.utils.RetrofitClient.(RetrofitClient.java:35)
at com.goldze.mvvmhabit.utils.RetrofitClient$SingletonHolder.(RetrofitClient.java:52)
at com.goldze.mvvmhabit.utils.RetrofitClient$SingletonHolder.access$100(RetrofitClient.java) 
at com.goldze.mvvmhabit.utils.RetrofitClient.getInstance(RetrofitClient.java:56) 
at com.goldze.mvvmhabit.ui.vm.NetWorkViewModel.requestNetWork(NetWorkViewModel.java:152) 
at com.goldze.mvvmhabit.ui.vm.NetWorkViewModel.onCreate(NetWorkViewModel.java:53) 
at me.goldze.mvvmhabit.base.BaseFragment.onViewCreated(BaseFragment.java:65) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1430) 
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819) 
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797) 
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590) 
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377) 
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239) 
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3231) 
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3181) 
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192) 
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:572) 
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) 
at com.trello.rxlifecycle2.components.support.RxAppCompatActivity.onStart(RxAppCompatActivity.java:66) 
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1244) 
at android.app.Activity.performStart(Activity.java:6247) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2678) 
at android.app.ActivityThread.access$900(ActivityThread.java:187) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:210) 
at android.app.ActivityThread.main(ActivityThread.java:5809) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879) 

onBackPressed

大神你好!按照你得这种封装思路,那么在Activity和viewmodel中都不再持有view的引用,全部通过观察者的模式把逻辑回调到viewmodel中进行处理,但我现在有一个场景,就是一个dialog,在点击onBackPressed的时候要处理关闭dialog。这个时候这个事件处理是在Activity里面处理还是传递到viewmodel中合适呢? 而且这个时候dialog的对象怎么拿到呢。findviewbyid么。望指教

BR.viewModel

@Override
public int initVariableId() {
    return BR.viewModel
}

这个是什么 viewmodel 找不到啊

求学习资料

请问下,有关于
me.tatarka.bindingcollectionadapter2:bindingcollectionadapter:2.2.0
me.tatarka.bindingcollectionadapter2:bindingcollectionadapter-recyclerview:2.2.0
这个版本的学习资料或者链接吗?
想了解下和旧版本有什么区别,我用activity 显示列表 直接编译不过去

ViewModel的onDestroy没有回调

测试发现ViewModel的onDestroy没有回调,比如关闭页面,DetailViewModel的onDestroy没有回调,其他生命周期方法回调了。

有个问题

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> android.databinding.tool.util.LoggedErrorException: Found data binding errors.
  ****/ data binding error ****msg:Cannot find the setter for attribute 'binding:itemView' with parameter type me.tatarka.bindingcollectionadapter.ItemViewSelector<com.goldze.mvvmhabit.ui.vm.NetWorkItemViewModel> on android.support.v7.widget.RecyclerView.
  file:C:\Users\Administrator\Desktop\github\MVVMHabit\app\src\main\res\layout\fragment_network.xml
  loc:33:36 - 33:53
  ****\ data binding error ****

防手抖自定义点击事件报错

android:onClick这个方法没事
但是 binding:onClickCommand老是报错

<!--   binding:onClickCommand="@{viewModel.loginOnClickCommand}"-->
<TextView
    binding:onClickCommand="@{viewModel.loginOnClickCommand}"
    android:gravity="center"
    android:padding="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"

    />

Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'binding:onClickCommand' with parameter type me.goldze.mvvmhabit.binding.command.BindingCommand on android.widget.TextView.
file:E:\MyApplication\app\src\main\res\layout\activity_main.xml
loc:17:34 - 17:62
****\ data binding error ****

xml看不见效果图

这个效果图有时看的见,代码也没动,后来就看不见了,用的就是demo的界面一模一样啊

开始挺好用的,现在欲仙欲死的状态

android studio对databinding的支持不够,硬伤

recycleview复杂一些那真的是头痛啊

viewmodel和View逻辑分离,数据驱动界面更新,看起来很美好,可是用下去你就会发现真正项目中是不能这样的

我现在使用的这个框架,另外使用mvp模式,相当于mvp+mvvm,但是现在欲仙欲死,有没有同道中人,打算老老实实的用mvp写了,databinding只用于界面绑定,可能mvvm现在还不够成熟吧

项目跑起来的错误

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'binding:itemView' with parameter type me.tatarka.bindingcollectionadapter.ItemViewSelector<com.goldze.mvvmhabit.ui.vm.NetWorkItemViewModel> on android.support.v7.widget.RecyclerView.
file:E:\workspace\workspace_android\studio\MVVMHabit\app\src\main\res\layout\fragment_network.xml
loc:33:36 - 33:53
****\ data binding error ****
直接跑,没任何改动...用的gradle4.1

扩展性

如果想对BaseActivity进行扩展,例如添加一些通用的title,状态页,该怎么做?initContentView只能返回一个View,initViewDataBinding也无法复写

Demo可以在补充上功能吗

已经start,
大神,首先要感谢你,你写的项目给我带来很大的帮助,你是我在github中找到的项目中写的最好的一个,如果Demo能在详细点就好了,对我们这些初学者会带来很大的帮助。

  1. 可以增加一个购物车的例子吗?比方产品详情页面中添加或则取消产品时刷行购物车,还有商品详情可以读取和刷新购物数量
  2. Recyclerview 例子不是很完整,可以增加分页处理的逻辑吗

扩展问题

请教博主:
1.如果RecyclerView如果绑定的item是多种样式的怎么使用ItemBinding 模式在xml进行itemBinding呢。这里默认的itemBinding都是传一个R.layout.xx的布局进去,那多个布局样式的呢?
2.怎么支持扩展呢,比如MD的BottomNavigationView控件怎么封装在xml直接使用binding的方式绑定数据呢,而且有可能是服务器返回的动态tab的绑定信息

跪求博主回复,现在对databinding还是小白。但是很希望把这个框架用起来

使用时报错了,没有找到方法

Build version: 1.3.8
Build date: 1979-11-30 00:00:00
Current date: 2019-01-23 04:27:48
Device: Genymotion Google Nexus 5X - 7.0.0 - API 24 - 1080x1920

Stack trace:
java.lang.NoSuchMethodError: No virtual method getLifecycle()Landroid/arch/lifecycle/Lifecycle; in class Lme/goldze/mvvmhabit/base/BaseActivity; or its super classes (declaration of 'me.goldze.mvvmhabit.base.BaseActivity' appears in /data/app/com.xxx.xx-1/split_lib_slice_5_apk.apk)
at me.goldze.mvvmhabit.base.BaseActivity.initViewDataBinding(BaseActivity.java:87)
at me.goldze.mvvmhabit.base.BaseActivity.onCreate(BaseActivity.java:42)
at android.app.Activity.performCreate(Activity.java:6664)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

是否可以迁移AndroidX

由于在后续版本中,会逐步放弃对support 的升级和维护,所以,我们必须迁移到 androidX,这个库我尝试迁移,但是一直有问题

点击全局捕获异常崩溃

h: App has crashed, executing CustomActivityOnCrash's UncaughtExceptionHandler rx.exceptions.OnErrorNotImplementedException: For input string: "a" at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386) at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383) at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44) at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:153) at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115) at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:212) at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139) at rx.internal.operators.OperatorThrottleFirst$1.onNext(OperatorThrottleFirst.java:53) at com.jakewharton.rxbinding.view.ViewClickOnSubscribe$1.onClick(ViewClickOnSubscribe.java:23) at android.view.View.performClick(View.java:5640) at android.view.View$PerformClick.run(View.java:22455) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6196) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778) Caused by: java.lang.NumberFormatException: For input string: "a" at java.lang.Integer.parseInt(Integer.java:521) at java.lang.Integer.parseInt(Integer.java:556) at com.goldze.mvvmhabit.ui.vm.DemoViewModel$5.call(DemoViewModel.java:93) at me.goldze.mvvmhabit.binding.command.BindingCommand.execute(BindingCommand.java:51) at me.goldze.mvvmhabit.binding.viewadapter.view.ViewAdapter$2.call(ViewAdapter.java:47) at me.goldze.mvvmhabit.binding.viewadapter.view.ViewAdapter$2.call(ViewAdapter.java:43) at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39) at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) at rx.internal.operators.OperatorThrottleFirst$1.onNext(OperatorThrottleFirst.java:53)  at com.jakewharton.rxbinding.view.ViewClickOnSubscribe$1.onClick(ViewClickOnSubscribe.java:23)  at android.view.View.performClick(View.java:5640)  at android.view.View$PerformClick.run(View.java:22455)  at android.os.Handler.handleCallback(Handler.java:751)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6196)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778) 

大神你写的太好了

大神你写的太好了,我经过一段时间的编写,发现你封装很细,完全可以用到项目上

demo运行后报错

CustomActivityOnCrash: App has crashed, executing CustomActivityOnCrash's UncaughtExceptionHandler
java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/com.goldze.mvvmhabit-1/split_lib_dependencies_apk.apk)
at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)
at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)
at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110)
at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:67)
at android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753)
at android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:261)
at android.support.v7.widget.ToolbarWidgetWrapper.setWindowTitle(ToolbarWidgetWrapper.java:243)
at android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:621)
at android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged(AppCompatDelegateImplV9.java:631)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:276)
at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:261)
at me.goldze.mvvmhabit.base.BaseActivity.initViewDataBinding(BaseActivity.java:54)
at me.goldze.mvvmhabit.base.BaseActivity.onCreate(BaseActivity.java:29)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

大神请教你一个问题

SubmitTransitionButton一个view控件,有onSuccess()和onFailure()这两个方法(xml是没有属性可以调用这两个方法。只能在代码里面调用).
请问如果我用mvvmHabit 我要怎么控制,可以写个例子吗,还有怎么获取获取页面的view 例如 binding.mainTv1.setText();

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.