GithubHelp home page GithubHelp logo

googlearchive / android-dynamic-features Goto Github PK

View Code? Open in Web Editor NEW
461.0 48.0 135.0 2.31 MB

Migrated:

Home Page: https://github.com/android/app-bundle

License: Apache License 2.0

Kotlin 85.25% Java 8.23% CMake 0.70% C 5.82%

android-dynamic-features's Introduction

android-dynamic-features's People

Contributors

codingjeremy avatar jdragonbae avatar keyboardsurfer avatar pfmaggi avatar tdobek avatar wojtek-kalicinski 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

android-dynamic-features's Issues

FAILURE: Build failed with an exception.

buildTypes {
debug {}
release {
minifyEnabled true
shrinkResources true
}
}

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':app'.

Resource shrinker cannot be used for multi-apk applications

I need your help,thinks!

Build failed on gradle Plugin 3.3.0

It is working on gradle plugin 3.2.0

Error Message is :

CONFIGURE SUCCESSFUL in 1s
Unsupported method: NativeArtifact.getSourceFolders().
The version of Gradle you connect to does not support that method.
To resolve the problem you can change/upgrade the target version of Gradle you connect to.
Alternatively, you can ignore this exception and read other information from the model.

Are there any way to check the dynamic feature download?

Hi,

When I tried Android dynamic feature in this moment there had any way for testing the dynamic feature download (without Google Play). Right now, Are there any way to check this? or the situation is the same...

Thanks a lot

Could not set unknown property 'dynamicFeatures'

Hi i am getting this issue while try to build the app.

Could not set unknown property 'dynamicFeatures' for object of type com.android.build.gradle.AppExtension.

Please help me to resolve this issue

dynamic feature resource not found exception

when onDemand flag is set to true in manifest , I'am getting resource not found exception though I have downloaded complete feature module from playstore. But works fine when onDemand is false. Here is the stack trace

android.content.res.Resources$NotFoundException: String resource ID #0x7e060009
at android.content.res.Resources.getText(Resources.java:348)
at android.content.res.Resources.getString(Resources.java:441)

Basic Espresso test for feature module

That would be really amazing if we could have a really basic espresso test for the DFM to check the basic configurations & dependencies like multidex and etc.

Currently the activity that on which, i'm trying to have an UI test can not be found in original dex. not sure if i have to do something special to fix the problem.

onStartInstall(2)

05-15 17:07:21.599 31171 31171 I PlayCore: UID: [10488]  PID: [31171] SplitInstallListenerRegistry : registerListener
05-15 17:07:27.149 31171 31171 I PlayCore: UID: [10488]  PID: [31171] SplitInstallManagerImpl : App has no applicationInfo or metaData
05-15 17:07:27.152 31171 31171 I PlayCore: UID: [10488]  PID: [31171] SplitInstallManagerImpl : App has no applicationInfo or metaData
05-15 17:07:27.155 31171 31171 I PlayCore: UID: [10488]  PID: [31171] SplitInstallService : startInstall([assets])
05-15 17:07:27.160 31171 31308 I PlayCore: UID: [10488]  PID: [31171] SplitInstallService : Initiate binding to the service.
05-15 17:07:27.202 31171 31171 I PlayCore: UID: [10488]  PID: [31171] SplitInstallService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.splitinstallservice.SplitInstallService})
05-15 17:07:27.205 31171 31308 I PlayCore: UID: [10488]  PID: [31171] SplitInstallService : linkToDeath
05-15 17:07:27.278 31171 31308 I PlayCore: UID: [10488]  PID: [31171] SplitInstallService : Unbind from service.
05-15 17:07:27.278 31171 31184 I PlayCore: UID: [10488]  PID: [31171] SplitInstallService : onStartInstall(2)
05-15 17:07:43.948 31171 31171 I PlayCore: UID: [10488]  PID: [31171] SplitInstallListenerRegistry : unregisterListener

dynamic feature of app bundle performs a very pool rate of success when downloading

Hi, i have any issues about app bundle, where or who i can looking for help?
My application use app bundle for several days, including dynamic feature module. But dynamic feature performs a very pool rate of success when downloading, about 25%. A lot of error code are FAILED and INTERNAL_ERROR, and i can not do something for this, because it is up to the downloading way of google . And then i search the docs but no help, "https://developer.android.com/guide/app-bundle/playcore#handle_request_errors". Please help me, or give me any suggestion, thanks.

Downloading via playstore internal track issue

When I have downloaded the module and launch the activity. The activity has issue and goes back to previous activity.

Uploaded new version then when you update it via playstore, the previous activity that is not launching successfully will now launch.

Why it's not working on first try download via manager?

Project fails to generate bundle

There is a project compilation error when generating a Bundle.

Install-time module 'url' has a minSdkVersion(1) different than the minSdkVersion(21) of its dependency 'base'.

SplitInstall Error code -2

Hi I tried importing this sample and tried running in studio edit configuration >Apk and Android bundles and even with bundletool but I am not able to get what I am looking for it is always going to splitInstallManager failure listener and returning error code -2 module unavailable ,and finally as per instructions created and uploaded another sample app to play store named DynamicModule but even downloading from playstore returning the same error -2.I don't know whether I missed anything.kindly help resolving this issue.

SplitInstallService : onError(-2)

PlayCore: UID: [10177]  PID: [25469] SplitInstallManagerImpl : App has no applicationInfo or metaData
05-14 16:17:14.120 25469-25469/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallManagerImpl : App has no applicationInfo or metaData
05-14 16:17:14.121 25469-25469/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallService : startInstall([java])
05-14 16:17:14.121 25469-25825/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallService : Initiate binding to the service.
05-14 16:17:14.136 25469-25469/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.splitinstallservice.SplitInstallService})
05-14 16:17:14.137 25469-25825/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallService : linkToDeath
05-14 16:17:14.182 25469-25481/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallService : onError(-2)
05-14 16:17:14.182 25469-25825/com.google.android.samples.dynamicapps.ondemand I/PlayCore: UID: [10177]  PID: [25469] SplitInstallService : Unbind from service.

What is the error "onError(-2)"? Thanks for help.

Dagger example

It may not be in scope for this sample, but an example utilising Dagger for DI for classes shared between the base and feature modules would be fantastic.

Multi module compilation error: Dynamic features with dashed names

I added a dynamic module to my multi-module project. Most of my modules contain dashes in their names and I haven't got any problems in compiling them, but when I add a dynamic feature model called "data-dropbox" I get the following error:

The following module names contain invalid characters. Names can only contain letters, digits and underscores.
	-> data-dropbox

Here is the structure of the project:

screen shot 2018-05-29 at 8 47 35 am

I'm not sure if this is the right place to report the problem, since in the Issue Tracker there is no option to create a "tools/gradle" problem.

screen shot 2018-05-29 at 8 45 17 am

I'm using AS 3.2 Canary 15 with Android Tools 28.0.0-rc1.

Build Failed in dynamic feature when using multiple product flavors in base module

In my Dynamic feature module build.gradle, it adds dependency to my main base module, and it works fine if i don't have product flavors in my base module. But build fails with following exception when i add multiple product flavors in my base module

FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':dynamicimage:externalNativeBuildDebug'.
Could not resolve all files for configuration ':dynamicimage:debugRuntimeClasspath'.
Could not resolve project :app.
Required by:
project :dynamicimage
> Cannot choose between the following configurations of project :app:
- alphaDebugRuntimeElements
- betaDebugRuntimeElements
All of them match the consumer attributes:
- Configuration 'alphaDebugRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
- Found com.android.build.api.attributes.VariantAttr 'alphaDebug' but wasn't required.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Apk' and found compatible value 'Apk'.
- Required org.gradle.usage 'java-runtime' and found compatible value 'java-runtime'.
- Found version 'alpha' but wasn't required.
- Configuration 'betaDebugRuntimeElements':
- Required com.android.build.api.attributes.BuildTypeAttr 'debug' and found compatible value 'debug'.
- Found com.android.build.api.attributes.VariantAttr 'betaDebug' but wasn't required.
- Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Apk' and found compatible value 'Apk'.
- Required org.gradle.usage 'java-runtime' and found compatible value 'java-runtime'.
- Found version 'beta' but wasn't required.

shrinkResources not working

I am using proguard minifyEnabled is working for dynamic features,
but shrinkResources true is not working getting the following error,

Resource shrinker cannot be used for multi-apk applications

Build App Bundle Fails if android data binding is enabled in both base module and dynamic feature module

Enabled the following code in both base module and dynamic feature build.gradle

dataBinding { enabled = true }

Build App Bundle gives the following error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithBundleMultiDexListForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithBundleMultiDexListForDebug'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
	at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: Error while generating the main dex list.
	at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
	at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
	... 30 more
Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list.
	at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:144)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
	... 42 more
Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: android.databinding.layouts.DataBindingInfo
	at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)
	at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:131)
	... 45 more
Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: android.databinding.layouts.DataBindingInfo
	at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64)
	at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25)
	at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24)
	at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:124)
	at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:123)
	at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86)
	at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:40)
	at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:110)
	at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:83)
	... 46 more


Dynamic feature Module error code -2

Hi

I Created dynamic feature module and followed steps everything accordingly in documents

Now i want to test the dynamic module is working or not

Note : - dynamic feature directly installing from android studio

so i builded the apks from bundletool and installed to connected device when its trying to download the module i am getting exceptions as code -2 which is module is unavailable and so same thing tried by uploading bundle in internal test track i am facing same error. Please anyone help on this.

New logo

Hi, @googlesamples I am a graphic designer, I want to help others in graphic design.

After I reviewed your project, you have no logo on this project. Therefore I want to contribute to this project by creating a new logo / icon. what do you think?

Can't get generated sessionId of an Install Request

I wanna get generated sessionId after call install, it's needed because if my user wanna cancel the installation process I can call splitInstallManager.cancelInstall(sessionId), so this is my code.
val sessionId = splitInstallManager .startInstall(request) .addOnSuccessListener { sessionId -> mySessionId = sessionId } .addOnFailureListener { exception ->} .result
But it's crashed with message:
Caused by java.lang.IllegalStateException: Task is not yet complete at com.google.android.play.core.internal.bb.a + 9(bb.java:9) at com.google.android.play.core.tasks.k.a(k.java:4) at com.google.android.play.core.tasks.k.getResult(k.java:3)
So, what's the correct way to get generated sessionId for cancelation?
Thank you

android.content.ActivityNotFoundException:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.myapp.videomodule/com.myapp.videomodule.VideoCallActivity}; have you declared this activity in your AndroidManifest.xml?

My app package is com.myapp.doctors
module package is com.myapp.videomodule

I am still confused how that same thing is working with this project but not with my own project.
My code
if(splitInstallManager.getInstalledModules().contains("videomodule")){ Intent intent = new Intent(); intent.setClassName("com.myapp.videomodule","com.myapp.videomodule.VideoCallActivity"); startActivity(intent); }

Dynamic Feature with existing flavor on main APP module

#25

As per this I have added flavor in the dynamic module and configured the folders to adapt in flavors. But this is the next error. I have tried to disable split. but it's not working

Cannot find PROCESSED_RES output for Main{type=MAIN, fullName=phDebug, filters=[], versionCode=1, versionName=1.0}

Using application suffix id breaks navigation

Hey!

I have a project set up with different modules registered as dynamic features. Everything works so far, but when I do the following in the main app module

    buildTypes {
        debug {
             applicationIdSuffix ".adhoc"
        }
    }

And then I try then to start an activity I get the following error:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.dynamic/com.example.dynamic.feature.MyActivity}; have you declared this activity in your AndroidManifest.xml?

And so the navigation doesn't work anymore.

Any help would be appreciated. I am currently not using dynamic delivery from features, but just have the module structure for that.

Thanks in advance!

Stuck in installing state for Dynamic Feature

Hi,

I have added this sample to my app and updated it on internal test track.
While try to install an on demand dynamic feature its downloaded successfully but stuck in installing state for infinite time without showing any error message.
Below is the code for SplitInstallStateUpdatedListener:

 public void onStateUpdate(SplitInstallSessionState state) {
                boolean multiInstall = state.moduleNames().size() > 1;
                List list=state.moduleNames();
                Iterator iter = list.iterator();
                while(iter.hasNext()) {
                    String featureName = (String) iter.next();
                    switch (state.status()) {
                        case SplitInstallSessionStatus.DOWNLOADING:
                            updateProgressMessage("Downloading... ");
                            break;
                        case SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION:
                            updateProgressMessage("Require User confirmation... ");
                            break;
                        case SplitInstallSessionStatus.INSTALLED:
                            onSuccessfulLoad(featureName, !multiInstall);
                            break;
                        **case SplitInstallSessionStatus.INSTALLING:**
                            updateProgressMessage("Installing... ");
                            break;
                        case SplitInstallSessionStatus.FAILED:
                            updateProgressMessage("Sorry, Installation Failed due to error " + state.errorCode());
                            break;

                    }
                }
            }

Please help me to resolve this...

Problem with the instalation

Hi, i use bundletool for the instalation of the apks but i dont see the on demand feature when i use the application, this happens to me with my app.
Helppppp. :(

Accessing only Layout from Dynamic feature.

I'm using Dynamic Feature in my app and I have one layout in my dynamic feature. Without creating the activity I want to access the layout directly in my base app and whenever the dynamic feature is installed then the layout from dynamic feature will be displayed. If not installed , I'm just showing my layout which is in base app.

@keyboardsurfer Can you please help me in this and let me know how to access the layout from dynamic to base.

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.