onedrive / onedrive-picker-android Goto Github PK
View Code? Open in Web Editor NEWSample application for OneDrive file picker SDK for Android
License: MIT License
Sample application for OneDrive file picker SDK for Android
License: MIT License
import android.view.View.OnClickListener;
import com.microsoft.onedrivesdk.picker.*;
// Within the activity's class definition
private IPicker mPicker;
private String ONEDRIVE_APP_ID = "APP_ID"; // Get app id here: https://account.live.com/developers/applications
// The onClickListener that will start the OneDrive picker
private final OnClickListener mStartPickingListener = new OnClickListener() {
@OverRide
public void onClick(final View v) {
mPicker = Picker.createPicker(ONEDRIVE_APP_ID);
mPicker.startPicking((Activity)v.getContext(), LinkType.WebViewLink);
}
};a
I know that the onedrive-picker offers the possibility to also upload a file to OneDrive, but in my project i need to also use the onedrive-sdk and the onedrive-picker. The problem is that there is a conflict if I use them both.
Error:Execution failed for task ':app:transformClassesWithDexForArmv7ThingsDebug'.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/microsoft/onedrivesdk/BuildConfig;
The onedrive-sdk generates a BuildConfig file and it's conflicted with an already generated BuildConfig file.
If i add dexOptions { preDexLibraries = false } option to my build.gradle file still doesn't work.
Any advice?
Later Edit: I removed the gradle dependency to the onedrive-picker and just copied the classes and added to my project and everythings works fine now.
Hello,
I tried the PickerSample App without any code changes, to get familiar with the Microsoft Graph SDK. Only I registered an application ID on azure portal and entered it into variable ONEDRIVE_APP_ID.
Starting the app is possible, but whatever I click on the start screen, I get the message
Contents of the console window as follows:
[2021-09-12 14:17:13 - OneDriveSDK.PickerSample] ------------------------------
[2021-09-12 14:17:13 - OneDriveSDK.PickerSample] Android Launch!
[2021-09-12 14:17:13 - OneDriveSDK.PickerSample] adb is running normally.
[2021-09-12 14:17:13 - OneDriveSDK.PickerSample] Performing com.example.onedrivesdk.pickersample.PickerMain activity launch
[2021-09-12 14:17:13 - OneDriveSDK.PickerSample] Automatic Target Mode: launching new emulator with compatible AVD 'GalaxyNexus'
[2021-09-12 14:17:13 - OneDriveSDK.PickerSample] Launching a new emulator with Virtual Device 'GalaxyNexus'
[2021-09-12 14:17:14 - OneDriveSDK.Tests] ERROR: resource directory 'E:\OneDrivePicker\workspace\OneDriveSDK.Tests\res' does not exist
[2021-09-12 14:17:15 - Emulator] Hax is enabled
[2021-09-12 14:17:15 - Emulator] Hax ram_size 0x40000000
[2021-09-12 14:17:15 - Emulator] HAX is working and emulator runs in fast virt mode.
[2021-09-12 14:17:16 - OneDriveSDK.PickerSample] New emulator found: emulator-5554
[2021-09-12 14:17:16 - OneDriveSDK.PickerSample] Waiting for HOME ('android.process.acore') to be launched...
[2021-09-12 14:17:18 - Emulator] emulator: Listening for console connections on port: 5554
[2021-09-12 14:17:18 - Emulator] emulator: Serial number of this emulator (for ADB): emulator-5554
[2021-09-12 14:17:37 - OneDriveSDK.PickerSample] WARNING: Unknown device API version!
[2021-09-12 14:17:37 - OneDriveSDK.PickerSample] HOME is up on device 'emulator-5554'
[2021-09-12 14:17:37 - OneDriveSDK.PickerSample] Uploading OneDriveSDK.PickerSample.apk onto device 'emulator-5554'
[2021-09-12 14:17:37 - OneDriveSDK.PickerSample] Installing OneDriveSDK.PickerSample.apk...
[2021-09-12 14:17:39 - OneDriveSDK.PickerSample] Success!
[2021-09-12 14:17:39 - OneDriveSDK.PickerSample] Starting activity com.example.onedrivesdk.pickersample.PickerMain on device emulator-5554
[2021-09-12 14:17:40 - OneDriveSDK.PickerSample] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.onedrivesdk.pickersample/.PickerMain }
[2021-09-12 14:17:40 - OneDriveSDK.PickerSample] Attempting to connect debugger to 'com.example.onedrivesdk.pickersample' on port 8622
What did I do wrong?
I am using the android 6.0 device. when I upload a file via Pick SDK, it will show the following error. Actually when I go to onedrive page, that file has been created. It is empty file.
But I grant the "Storage" permission, it can work very well.
But when I directly upload files via OneDrive app, it can success.
Why does it need to storage permission to upload for Pick SDK? Can you fix this issue?
When I'm using the picker sdk I get a dialog saying that I can only choose files from a personal account not a business account.
Is there a way to use this picker with business accounts as well? Do we need to register our app in some other way to make it work?
I am very new at android programming. Sorry. It may hear like stupid question;
But I can't build with gradle with this log.
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.2/userguide/gradle_daemon.html.
Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
java.lang.IllegalStateException: failed to find target with hash string 'android-23' in: D:\Language\android_sdk
at com.android.builder.sdk.DefaultSdkLoader.getTargetInfo(DefaultSdkLoader.java:88)
at com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:89)
at com.android.build.gradle.BasePlugin.ensureTargetSetup(BasePlugin.groovy:507)
at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.groovy:455)
at com.android.build.gradle.BasePlugin$_createTasks_closure13_closure17.doCall(BasePlugin.groovy:415)
at com.android.build.gradle.BasePlugin$_createTasks_closure13_closure17.doCall(BasePlugin.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at com.android.build.gradle.internal.profile.SpanRecorders$2.call(SpanRecorders.groovy:52)
at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at com.android.build.gradle.internal.profile.SpanRecorders.record(SpanRecorders.groovy:54)
at com.android.build.gradle.BasePlugin$_createTasks_closure13.doCall(BasePlugin.groovy:414)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
at groovy.lang.Closure.call(Closure.java:423)
at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)
at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:83)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80)
at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:70)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:46)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\Workspace\Android_Windows_Shared_Notepad\onedrive_android_picker\OneDriveSDK\build.gradle' line: 93
* What went wrong:
A problem occurred evaluating project ':OneDriveSDK'.
> failed to find target with hash string 'android-23' in: D:\Language\android_sdk
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 12.673 secs
I am not able to upload file on onedrive
I did not change any code, added file read & write run time permissions to sample app.
I have putt on my APPID on ample app but I still get an "NoFileSpecifiedError".
OS: 6.0
Device : Motorola XT10902
File exist /storage/emulated/0/MyFile.txt
fileUri file:///storage/emulated/0/MyFile.txt
error is com.microsoft.onedrivesdk.saver.SaverException
at com.microsoft.onedrivesdk.saver.Saver.handleSave(Saver.java:110)
at com.example.onedrivesdk.saversample.SaverMain.onActivityResult(SaverMain.java:116)
Hi,
Can I open or download files from oneDrive, using this code inside a JEE platform?
error: 'Unable to start the OneDrive picker or device market place
The Onedrive app crashes when im trying to use the filepicker for business. Works great on personal. Im using linktyp.downloadlink and isnt the sdk suppose to support that for business?
I want to upload (update) a file (excel file) on my onedrive programmatically every 10 minutes.
for more details, this file is embedded on my website and I want the data of this excel file be updated automatically.
I have written java program that update the file automatically (by getting new data from a site). but how can I upload the new file on my onedrive?
would you please help me?
many tanks in advance for your help.
We just found a defect that causes an exception within the OneDrive application.
Any idea what could be causing NoFileSpecified error?
7.0
Xperia Z5
Didnt change any code, added file read & write permissions to another app that is using the saver and I still get an "NoFileSpecifiedError".
I changed the APPID.
This is how my permissions look like on the developer's console http://i.imgur.com/vURocmV.png
Turns out 7.0 doesnt allow file:// URIs. So I changed to content:// , so it looks like this now:
content://david.projectclouds.MainActivity/file/diabetix/Temp.xml
Still same problem. Using FileProvider.
Daaaaaaa
Hi there,
Is there any way to pass MimeTypes in Picker? I am using Android Picker to select file from personal account. I just need to support only PDF file(s). I mean to say that when user opens the picker, user can select only PDF file from picker?
If not supported in Picker, how can I enable in OneDriveSDK - android.
After updated device to Android 11, OneDriveSDK Saver doesn't work anymore. Picker is still working.
Please help!
Let us know if you need more info.
Thanks
2020-10-17 17:55:39.058 29781-29781/com.example.onedrivesdk.saversample W/System.err: com.microsoft.onedrivesdk.saver.SaverException
2020-10-17 17:55:39.058 29781-29781/com.example.onedrivesdk.saversample W/System.err: at com.microsoft.onedrivesdk.saver.Saver.handleSave(Saver.java:110)
2020-10-17 17:55:39.058 29781-29781/com.example.onedrivesdk.saversample W/System.err: at com.example.onedrivesdk.saversample.SaverMain.onActivityResult(SaverMain.java:121)
2020-10-17 17:55:39.058 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.Activity.dispatchActivityResult(Activity.java:8310)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.ActivityThread.deliverResults(ActivityThread.java:5008)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.ActivityThread.handleSendResult(ActivityThread.java:5056)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.os.Handler.dispatchMessage(Handler.java:106)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.os.Looper.loop(Looper.java:223)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7656)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
2020-10-17 17:55:39.059 29781-29781/com.example.onedrivesdk.saversample W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I have not changed anything and MyFile.txt is being created in android local storage but when I press upload it shows NoFIleSpecified. What is this issue? Please help out if anyone has resolved this issue. I am using Android 30 API.
Is it possible to upload or download more than one file using Picker and Saver?
after select a file save button starts download, download finishes successfully but there's no file on device storage.
Hello,
I have OneDrive app installed on my device (Android 11). But still startPicking() is always opening the Google Play Store app.
Please help!
Steps
I posted a issue before it was suppose to be fixed in the Onedrive 4.0.4 update last week. The porblem sitll exists.
The picker crashes when changing account to a business account. It gives the error message "did not get a file from picker" and then crashes. The personal account works great but as soon as I interact with
the business account it crashes. This also happens when im running your pickerSample.
Hi,
SDK is giving null pointer exception, i am pasting error here, can you please check the error.
E/AndroidRuntime(13293): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.microsoft.skydrive/com.microsoft.skydrive.getcontent.RecieveSdkPickerActivity}: java.lang.NullPointerException
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.app.ActivityThread.access$700(ActivityThread.java:157)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.os.Handler.dispatchMessage(Handler.java:99)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.os.Looper.loop(Looper.java:176)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.app.ActivityThread.main(ActivityThread.java:5317)
11-03 14:57:48.643: E/AndroidRuntime(13293): at java.lang.reflect.Method.invokeNative(Native Method)
11-03 14:57:48.643: E/AndroidRuntime(13293): at java.lang.reflect.Method.invoke(Method.java:511)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
11-03 14:57:48.643: E/AndroidRuntime(13293): at dalvik.system.NativeStart.main(Native Method)
11-03 14:57:48.643: E/AndroidRuntime(13293): Caused by: java.lang.NullPointerException
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.microsoft.skydrive.getcontent.RecieveSdkPickerActivity.isAccountSupported(RecieveSdkPickerActivity.java:184)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.microsoft.skydrive.NavigationDrawerPivotsAdapter.setAccounts(NavigationDrawerPivotsAdapter.java:68)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.microsoft.skydrive.NavigationDrawerPivotsAdapter.setPivotFilter(NavigationDrawerPivotsAdapter.java:54)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.microsoft.skydrive.NavigationDrawerView.setPivotFilter(NavigationDrawerView.java:85)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.microsoft.skydrive.itemchooser.BaseOneDriveItemChooserActivity.onCreate(BaseOneDriveItemChooserActivity.java:38)
11-03 14:57:48.643: E/AndroidRuntime(13293): at com.microsoft.skydrive.getcontent.RecieveSdkPickerActivity.onCreate(RecieveSdkPickerActivity.java:58)
11-03 14:57:48.643: E/AndroidRuntime(13293): at android.app.Activity.performCreate(Activity.java:5326)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.