Giter Site home page Giter Site logo

robospice-samples's Introduction

RoboSpice-samples

All samples of the RoboSpice library.

Convert samples to Ant projects

#go to the sample of your choice.
cd samples/robospice-sample-core
#1. create ant files for current project
android update project -p .
#2. use maven to copy dependencies to the libs-for-ant folder
mvn clean install -Pant
#3. move all maven dependencies to the libs folder for ant
mv libs-for-ant libs
#build the project with ant
ant clean debug install

your project is now ant-ready, the libs folder contains all needed dependencies to add robospice and extensions modules to your project.

This method works for every sample project. Once you got all the needed jar files, you can move them to your own projects.

Note : you will need to define the ANDROID_HOME environment variable to point to you android SDK home folder for maven to work.

robospice-samples's People

Contributors

ajans avatar rciovati avatar stephanenicolas avatar weefbellington avatar yachi 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

robospice-samples's Issues

SpiceManager and fragments lifecycles

Hi. I have simple case like this:
I have Fragment A and Fragment B. Each fragment has instance of SpiceManager. Problem is situation when I show all my fragments on Activity. I call SpiceManager.start(context) in the first Fragment, and call SpiceManager.start(context) in the second Fragment. It generates Exception "SpiceManager already started". Same case is SpiceManager.shouldStop(). Is there way to resolve this problem excepting way to move SpiceManager on "Activity level"??? Thanks.

Migrate samples to Gradle

With the commit 13a42ed I started migrating our samples to Gradle so it would be easier to use RS for users who don't use Maven.

I would skip the whole part of converting samples to ant since it has been deprecated (or it will be very soon).

What I did so far:

  • Converting the folder structure to the new one
  • Creating the build.gradle file for each sample

What should be done:

  • Fix the robospice-sample-motivation since it uses ActionBarSherlock and it is not available yet as aar.
  • Fix the robospice-sample-ormlite-content-provider since it uses the com.tojc.ormlite.android:ormlite-content-provider-compilerwhich has a provided scope. I made a few attempts to get it working but I failed. If someone have an idea please share.
  • Test a little bit if it is working properly.

Samples are outdated

The RoboSpice samples are outdated. For example, the Retrofit sample is 6 months old. The version of the RoboSpice library that was used to create the sample (1.3.x?) no longer matches the current architecture (1.4.4).

Retrofit extension installation procedure for non maven users

Hi
What is the procedure to install the retrofit extension. I am a non maven user. I have the retrofit jar in the lib folder. But I am not sure how to add the retrofit related files from the extension folder. I can contribute to the documentation if someone can provide a procedure. I will add it to the wiki.

Volley with Robospice sample

We can use Retrofit with Robospice, in the same way is it possible to use volley Robospice ? I'm looking for volley with Service.

Gradle

There is already a branch with Gradle support.
But it lacks of recent changes.

zhe sample of robospice-sample-google-http-client has stoped when running!

10-16 03:39:31.602: E/AndroidRuntime(5369): java.lang.NoClassDefFoundError: org.codehaus.jackson.JsonFactory
10-16 03:39:31.602: E/AndroidRuntime(5369): at com.google.api.client.json.jackson.JacksonFactory.(JacksonFactory.java:44)
10-16 03:39:31.602: E/AndroidRuntime(5369): at com.octo.android.robospice.persistence.googlehttpclient.json.JacksonObjectPersisterFactory.(JacksonObjectPersisterFactory.java:33)
10-16 03:39:31.602: E/AndroidRuntime(5369): at com.octo.android.robospice.sample.googlehttpclient.SampleSpiceService.createCacheManager(SampleSpiceService.java:21)

Can't convert to Ant projects

I keep getting following error on step 2 : mvn clean install -Pant

I tried different options looking at errors. But none work. I am using JDK 1.6

[ERROR] Unknown lifecycle phase "lean". You must specify a valid lifecycle phase
or a goal in the format : or :[:]:. Available lifecycle phases are: validate, i
nitialize, generate-sources, process-sources, generate-resources, process-resour
ces, compile, process-classes, generate-test-sources, process-test-sources, gene
rate-test-resources, process-test-resources, test-compile, process-test-classes,
test, prepare-package, package, pre-integration-test, integration-test, post-in
tegration-test, verify, install, deploy, pre-site, site, post-site, site-deploy,
pre-clean, clean, post-clean. -> [Help 1]

Build-Error for robospice-sample-retrofit

Hi,

I tried to build and test the retrofit-sample to see how to go with GSON, but it fails:

aj@SOLUTE-WS-AJ /c/Developer/workspace/robospice/RoboSpice-samples/robospice-sample-retrofit
$ mvn -e clean install -Pant
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Robospice - Sample Retrofit 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.991s
[INFO] Finished at: Mon Feb 25 11:35:26 CET 2013
[INFO] Final Memory: 10M/214M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project robospice-sample-retrofit: Could not resolve dependencies for project com.octo.android.robospice:robospice-sample-retrofit:apk:1.0.0-SNAPSHOT: Could not find artifact com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project robospice-sample-retrofit: Could not resolve dependencies for project com.octo.android.robospice:robospice-sample-retrofit:apk:1.0.0-SNAPSHOT: Could not find artifact com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:210)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:117)
at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:258)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:201)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.octo.android.robospice:robospice-sample-retrofit:apk:1.0.0-SNAPSHOT: Could not find artifact com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:189)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:185)
... 22 more
Caused by: org.sonatype.aether.resolution.DependencyResolutionException: Could not find artifact com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT
at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:375)
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:183)
... 23 more
Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: Could not find artifact com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216)
at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:358)
... 24 more
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact com.octo.android.robospice:robospice-retrofit:jar:1.3.2-SNAPSHOT
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:528)
... 26 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

No way to retry a request manually?

There's a question in SO that explains this. But my case is for expired OAuth token.

What is the appropriate way to retry a request? For example, when OAuth token is expired or the user request a retry. OAuth token expiration is such a tricky case, because we need to refresh the token successfully before retrying all (they can be more than 1 simultaneous request) failed requests.

I think this is a good feature that Robospice needs to implement, so I post it as an issue.

Robospice-sample-spring-android with ORMLITE

I have read RoboSpice documentation on the product, and I try to compile most of your examples. I found one example which I may partly use. I have further developed it as it fulfills my need, and yet here comes the problem:

robospice-sample-spring-android:
https://github.com/octo-online/RoboSpice-samples/tree/release/robospice-sample-spring-android/src/com/octo/android/robospice/sample/springandroid

When I modify the code to connect it to the local database on my mobile, the problem is that it doesn´t work as I expected. I hope that there are some who are using “RoboSpice” for connecting the JSON Web Service and save it on the data base of the mobile.

The only thing I´ve done is to add the ORM Lite. I don´t know the right way to do it. Below is the code I use for service and for getters and setters.

Follower.java:

    @DatabaseTable(tableName="Follower")
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class Follower {
        @DatabaseField(id = true)
        private String login;
        public String getLogin() {
            return login;
        }
        public void setLogin(String login) {
            this.login = login;
        }
    }

FollowerList.java

    public class FollowerList extends ArrayList<Follower> {
        private static final long serialVersionUID = 8192333539004718470L;
    }

SpiceService.java

        public class SpiceService extends SpringAndroidSpiceService {

            private static final String TAG = "SpiceService";       
            private static final String DATABASE_NAME = "Github.db";
            private static final int DATABASE_VERSION = 1;
            private static final int WEBSERVICES_TIMEOUT = 10000;

            @Override
            public int getThreadCount() {
                return 3;
            }

            @Override
            public CacheManager createCacheManager(Application application) throws CacheCreationException {
                CacheManager cacheManager = new CacheManager();
                try {           
                    List<Class<?>> classCollection = new ArrayList<Class<?>>();
                    classCollection.add(Follower.class);

                    RoboSpiceDatabaseHelper databaseHelper = new RoboSpiceDatabaseHelper(application, DATABASE_NAME, DATABASE_VERSION);
                    InDatabaseObjectPersisterFactory inDatabaseObjectPersisterFactory = new InDatabaseObjectPersisterFactory(application, databaseHelper, classCollection);
                    cacheManager.addPersister(inDatabaseObjectPersisterFactory);            
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
                return cacheManager;
            }

            @Override
            public RestTemplate createRestTemplate() {
                RestTemplate restTemplate = new RestTemplate() {                
                    @Override
                    protected ClientHttpRequest createRequest(URI url, HttpMethod method) throws IOException {
                        ClientHttpRequest request = super.createRequest(url, method);
                        HttpHeaders headers = request.getHeaders();
                        headers.setAcceptEncoding(ContentCodingType.IDENTITY);
                        return request;
                    }
                };  

                try {
                    // Bug on http connection for Android < 2.2
                    // http://android-developers.blogspot.fr/2011/09/androids-http-clients.html
                    // But still a problem for upload with Spring-android on android 4.1
                    System.setProperty("http.keepAlive", "false");          

                    // Set timeout for requests
                    ClientHttpRequestFactory factory = restTemplate.getRequestFactory();
                    if (factory instanceof HttpComponentsClientHttpRequestFactory) {
                        // Set timeout for requests
                        Log.i(TAG, "HttpClient is used");
                        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
                        httpRequestFactory.setReadTimeout(WEBSERVICES_TIMEOUT);
                        httpRequestFactory.setConnectTimeout(WEBSERVICES_TIMEOUT);  
                    } else if (factory instanceof SimpleClientHttpRequestFactory) {
                        Log.i(TAG, "HttpUrlConnection is used");
                        SimpleClientHttpRequestFactory httpRequestFactory = (SimpleClientHttpRequestFactory) factory;
                        httpRequestFactory.setConnectTimeout(WEBSERVICES_TIMEOUT);
                        httpRequestFactory.setReadTimeout(WEBSERVICES_TIMEOUT);
                    }

                    ObjectMapper objectMapper = new ObjectMapper();
                    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 

                    // Web services support JSON responses
                    MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
                    FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
                    StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();
                    final List<HttpMessageConverter<?>> listHttpMessageConverters = restTemplate.getMessageConverters();

                    // Add converter types to list of HttpMessageConverter's (json, form, string)
                    listHttpMessageConverters.add(jsonConverter);
                    listHttpMessageConverters.add(formHttpMessageConverter);
                    listHttpMessageConverters.add(stringHttpMessageConverter);
                    restTemplate.setMessageConverters(listHttpMessageConverters);           
                } catch (Exception ex) {
                    ex.printStackTrace();
                }       
                return restTemplate;
            }
        }

When I run the program, I get “fault complaints” (error messages) as shown below:

    java.lang.RuntimeException: Class dk.test.list.FollowerList is not handled by any registered factoryList

I do hope there are some who can help me solving the problem. I thank the people behind the development of the product and hope to get answers to my questions.
I thank you in beforehand.

sample-google-http-client not compiling

Hello,

I would like to import the sample-google-http-client sample in IntelliJ, so I have added all jars from the robospice-sample-google-http-client folder (1.4.4).

However I have errors :

  • SampleSpiceService.java :
    Unhandled exception (CacheCreationException) line 22
  • com.google.api.client.http and others are not included in the jars

Unable to do "mvn clean install -Pant" for Robospice motivation project.

Hi I am just trying to learn and integrate Robospice library for my android project. I build few project successfully. But I am not able build few of sample. like in my robospice motivation project when i tried to do "mvn clean install -Pant" it gives me following error

[INFO] /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations/target/unpack/apklibs/com.actionbarsherlock_actionbarsherlock_apklib_4.2.0/res/values-v14/abs__themes.xml:32: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo.Light.Dialog'.
[ERROR] Error when generating sources.
org.apache.maven.plugin.MojoExecutionException:

[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.4.2-SNAPSHOT:generate-sources (default-generate-sources) on project robospice-motivations: MojoExecutionException: ANDROID-040-001: Could not execute: Command = /bin/sh -c cd /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations && /home/nilkash/Downloads/android-sdk-linux/platform-tools/aapt package -m -J /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations/target/generated-sources/r -M /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations/AndroidManifest.xml -S /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations/res -S /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations/target/unpack/apklibs/com.actionbarsherlock_actionbarsherlock_apklib_4.2.0/res --auto-add-overlay -A /home/nilkash/Desktop/robospice_sample/RoboSpice-samples/robospice-motivations/assets -I /home/nilkash/Downloads/android-sdk-linux/platforms/android-7/android.jar, Result = 1 -> [Help 1]

I dot know how to solve this problem according to this I did some few changes but its not working. Need help thank you ....

Unable to run robospice-sample-okhttp sample

Very strange issue, all other samples work correctly except for this one. What I did: imported robospice-sample-okhttp project as Maven project, run as Android application (these steps worked for all other robospice samples), I get the following logcat error:

05-17 12:40:57.746: E/AndroidRuntime(4359): Process: com.octo.android.robospice.sample.basic, PID: 4359
05-17 12:40:57.746: E/AndroidRuntime(4359): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.octo.android.robospice.sample.basic/com.octo.android.robospice.sample.okhttp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.octo.android.robospice.sample.okhttp.MainActivity" on path: DexPathList[[zip file "/data/app/com.octo.android.robospice.sample.basic-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.octo.android.robospice.sample.basic-1, /system/lib]]
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.os.Handler.dispatchMessage(Handler.java:102)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.os.Looper.loop(Looper.java:136)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.ActivityThread.main(ActivityThread.java:5017)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at java.lang.reflect.Method.invokeNative(Native Method)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at java.lang.reflect.Method.invoke(Method.java:515)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at dalvik.system.NativeStart.main(Native Method)
05-17 12:40:57.746: E/AndroidRuntime(4359): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.octo.android.robospice.sample.okhttp.MainActivity" on path: DexPathList[[zip file "/data/app/com.octo.android.robospice.sample.basic-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.octo.android.robospice.sample.basic-1, /system/lib]]
05-17 12:40:57.746: E/AndroidRuntime(4359):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
05-17 12:40:57.746: E/AndroidRuntime(4359):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
05-17 12:40:57.746: E/AndroidRuntime(4359):     ... 11 more

Can not build robospice-sample-ormlite-content-provider

unable to build the project robospice-sample-ormlite-content-provider :
[ERROR] Failed to execute goal on project robospice-sample-ormlite-content-provi
der: Could not resolve dependencies for project com.octo.android.robospice:robos
pice-sample-ormlite-content-provider:apk:1.0.0-SNAPSHOT: Could not find artifact
com.octo.android.robospice:robospice-spring-android:jar:1.4.6-SNAPSHOT -> [Help
1]

I tried for more than 2 hours with all solutions found online with no luck. Can any one please provide the eclipse project ready and built ?

Thanks.

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.