Giter Site home page Giter Site logo

clockbyte / admobadapter Goto Github PK

View Code? Open in Web Editor NEW
237.0 24.0 79.0 2.42 MB

It wraps your Adapter to display Admob native ads and banners in a ListView/RecyclerView data set. It based on the Yahoo fetchr project https://github.com/yahoo/fetchr

License: Apache License 2.0

Java 100.00%
admob-native-ads admob-adapter listview recyclerview-adapter recyclerview ads adsblock banner

admobadapter's Introduction

Admob Adapter

Hex.pm Build Status Gitter Maven Central Android Arsenal

======================

We've released! v1.5.0! And we moved to the later dependencies.

The reference to the COOK RECIPES for people who are in hurry!

Admob Adapter is an Android library that makes it easy to integrate Admob native ads (both Express and Advanced) or AdMob banners into ListView/RecyclerView in the way that is shown in the following image/animation.


You can read the rest info (main features, base usage and so on) at the project's home page if you wish.

Installation

Now you are able to link Admobadapter via Gradle like this

dependencies {
//link other libs
    compile 'com.github.clockbyte:admobadapter:1.5.0'
}

Here you could find more ways.

Advanced help and consulting

If you have no free cycles for integration of Admobadapter to your app yourself you could contact us for consultation. Also we could do this routine stuff for you accurately like a clockwork!

admobadapter's People

Contributors

bryant1410 avatar d-kostadinov avatar irjigeiler2 avatar johnan avatar kimbeejay avatar kot331107 avatar lpbas avatar lujop avatar mourjan avatar shehabic 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

admobadapter's Issues

Ads show the wrong location

Dear Clockbyte
I'm having a problem, as though I had sets the first ad block index in the adapter equal 2, but an ad has been replaced in the first place, to lose one of my item in adapter.

You can see me, and how to overcome it?
device-2016-09-04-103352

Thank you !!

Could you please ad the option to display a ad in the 10th 20th and the the last index if there are more then 28 ads ?

e.g. if there are 32 ads
Index if ads (Including ads) 10,20,33?

Also I get a flickering each time when the AdmobListener onAdCountChanged is called.
Is there any way to avoid the flickering when an ad is fetched?

Feature request: Reverse listview

I have tryed your wrapper and it works perfectly but my app is using listview in a different way. I always add new items to the position 0. So user only scrolls if he wants to see the "history" but new items are always added on top. Because of this adds should display on different positions that they currently are.

I took a sneak peak into your code and started to change it for my preferences as so:
private boolean isAdPosition(int position) {
//return (position + 1) % (getNoOfDataBetweenAds() + 1) == 0;
return (getCount() - position) % getNoOfDataBetweenAds() == 0;
}

But soon I found out that a lot of functions should be changed for this to work. This is just a request because you know your code and would probably make this change much faster. Otherwise I will modify it and make a new branch for it.

Express Ad not showing

hi,
i am following the sample app code to show express ad in a listview , but all i get is black space
(screen : http://prntscr.com/dy3ego )
i tried to show a native ad in a black activity and it worked so it isn't a probleme with the unitId ,
`
ExpressAdPreset[] presets = new ExpressAdPreset[]{

            new ExpressAdPreset(getString(R.string.native_ad_small__id)),
            new ExpressAdPreset(getString(R.string.native_ad_large__id), new AdSize(AdSize.FULL_WIDTH, 320)),

    };
    adapterWrapper = new AdmobExpressAdapterWrapper(this, getString(R.string.native_ad_large__id), new AdSize(AdSize.FULL_WIDTH, 320));

....
...

adapter = new CustomListAdapter(this, R.layout.items, imageArry);
    adapterWrapper.setAdapter(adapter);

    adapterWrapper.setLimitOfAds(3);

    adapterWrapper.setNoOfDataBetweenAds(10);

    adapterWrapper.setFirstAdIndex(2);

    dataList.setAdapter(adapterWrapper);

`

GridLayoutManger support for RecyclerView?

I tried implementing the sample code and changed the Linear Layout Manager provided to Recycycler View to Grid Layout Manager then the code doesn't work fine as Ads doesn't gets loaded.

Functional Requirements

Dear Clockbyte
I think you should add the CardView, and allows you to set the display size of the NativeExpress.
Ex: Small, Medium, Large.

Thanks!

native ad in grid

Hi,
i have a grid (2 columns) , i want to show a native ad in it but , i want the ad to take all the width not only one column, is this possible with your library ?

Native ADS Express dynamic Size

Hi,
i've implemented successfully your library, but just last problem that i tried to solve without success.
In differents screen sizes i'm able to load only a fixed size for my native express ads. I tried also to force dynamic size from code, but i've an error that tell me to use only AdSize from XML.

Cam someone hel me please?

Thanks

First position of ads

It should be great if I can set the index of first ads item on the list (I use recyclerview). At this time, the first ads index always equals to mNoOfDataBetweenAds

Express ads reinitialization doesn't work

Hi,

I am using your Admob adapter for Native express ads and I added the reinitialize method call in the OnResume function. My intend is to resume the ads when I get back from an article that I've just read it (back to the Article List/RecyclerView). This is my code:

    @Override
    public void onResume() {
        super.onResume();
        loadAds();
        ...
    }
    private void loadAds() {
        if(admobExpressRecyclerAdapterWrapper != null){
            admobExpressRecyclerAdapterWrapper.reinitialize();
        }
    }

There is anything that I should do the be able to reinitialize the ads?
It this a known issue?

Gradle library

Will you upload this library to gradle or maven repository?

Changing the adsize and showing different ads in listview.

I am using this library for adding adding Native Ads Express to listview via an adapter to my app . I'm extremely thankful for making this job easier to newbies but I need some help. I'm unable to change the AdSize as well as all the ads in the listview are same. Isn't it possible to show different ads in same listview?
mPointList = mDBHelper.getListPoints(table); adapter = new ListPointAdapter(this, mPointList); String[] testDevicesIds = new String[]{getString(R.string.testDeviceID), AdRequest.DEVICE_ID_EMULATOR}; adapterWrapper = new AdmobAdapterWrapper(this, testDevicesIds); adapterWrapper.setAdapter(adapter); adapterWrapper.setLimitOfAds(8); adapterWrapper.setNoOfDataBetweenAds(30); adapterWrapper.setFirstAdIndex(10); listDetail.setAdapter(adapterWrapper);
Please help.

Medium and Small Admob Adds are not shown

Hi,

I was able to integrate your library on a project that uses . I successfully added Large Admob Adds but for Small and Medium Native Admob Express ads I was unable.
I am using AdmobRecyclerAdapterWrapper in my app and this is the error that I receive:

E/Ads: Malformed native JSON response.
org.json.JSONException: Index 0 out of range [0..0)
  at org.json.JSONArray.get(JSONArray.java:282)
  at org.json.JSONArray.getJSONObject(JSONArray.java:510)
  at com.google.android.gms.ads.internal.renderer.nativeads.h.a(:com.google.android.gms.DynamiteModulesA:238)
  at com.google.android.gms.ads.internal.webview.c.a(:com.google.android.gms.DynamiteModulesA:955)
  at com.google.android.gms.ads.internal.webview.u.run(:com.google.android.gms.DynamiteModulesA:44)
  at android.os.Handler.handleCallback(Handler.java:733)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:136)
  at android.app.ActivityThread.main(ActivityThread.java:5017)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
  at dalvik.system.NativeStart.main(Native Method)

I tried with AdmobExpressRecyclerAdapterWrapper also but when I am using this to set the AdSize in ExpressAdPreset, I receive the warning:

W/Ads: Not enough space to show ad

I think this is a padding issue but I don't know how I can set the padding on the adView from your adapter

Is this a known issue for you?

Create custom AdView

Hi,
firstly compliments for great work!
I've a question. I've follow Google guidelines for create Native ADS (..
Now i want use your library for insert this ADS (whith my layout) into my ListView.
I've use as taken from Google Example classes populateContentAdView() and refreshAd(). How can i insert them into your project?

Thanks a lot

How to use getOriginalContentPosition

Hi,

Usage guide says to call int originalPos = adapterCalc.getOriginalContentPosition(position); to get the correct index of the data in the adapter.

But, I find the function used in the library to have 2 more parameters.
public int getOriginalContentPosition(int position, int fetchedAdsCount, int sourceItemsCount)

Can you update the usage example and guide.

Issue using this with custom RecyclerView adapter

I am trying to use this with a custom RecyclerView adapter and a syntax error comes up using set adapter with my custom RecyclerView Adapter.

It's because I am using a nested view holder within my adapter, not the standard RecyclerView.ViewHolder.

How can I use this when using a custom view holder?

Only 2 different ads displayed

No matter what I set to setLimitOfAds(), only two different ads are displayed.

ie: list with 30 items,
mAdapterWrapper.setNoOfDataBetweenAds(8);
mAdapterWrapper.setLimitOfAds(3);

I do have 3 NativeExpressAd in the list, but first and third are the same object.
If i dismiss the first ad by clicking the little blue cross in the top right corner, the third ad is also dismissed.

I tried with setLimitOfAds(6) with bigger list, and it's the same result, only two different ads are displayed A - B - A - B - A ....

NullPointerException

Dear Clockbyte
My application crash when I exit the app. Please see attached image
screenshot 1

Black background when ADS refresh

Hi @clockbyte,
i've use for my app your library with Express Native ADS.
All work fine, bu whe it start refreshing (every 30 secs) i see that items of my listview (TextView, ImageView) became with black background.
If i scroll listview everything returns fine
It leave it only when start new update, but after that black background returns
Please see screenshot attached
device-2016-07-08-234243

RecyclerExampleAdapter gives errors

I am trying to implement the second example (Recipe 2 RecyclerView with Advanced ads) but I run into the following Issues:

RecyclerExampleAdapter.java

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import android.widget.ListView;
import com.clockbyte.admobadapter.ViewWrapper;
import java.util.ArrayList;
import java.util.List;

public class RecyclerExampleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private List<String> items = new ArrayList<String>();
    private Context mContext;

    public RecyclerExampleAdapter(Context context){
        mContext = context;
    }

    @Override
    public viewGroup onBindViewHolder(ViewWrapper<RecyclerViewExampleItem> viewHolder, int position) {
        RecyclerViewExampleItem rvei = viewHolder.getView();
        String str = getItem(position);
        rvei.bind(str);
    }

    @Override
    public int getItemCount() {
        return items.size();
    }

    @Override
    protected RecyclerViewExampleItem onCreateItemView(ViewGroup parent, int viewType) {
        RecyclerViewExampleItem rvei = new RecyclerViewExampleItem(mContext);
        return rvei;
    }

    @Override
    public String getItem(int position) {
        return items.get(position);
    }

    public void addAll(List<String> lst){
        items.addAll(lst);
    }
}

RecyclerViewExampleItem.java

import android.content.Context;
import android.widget.FrameLayout;
import android.widget.TextView;

public class RecyclerViewExampleItem extends FrameLayout {

    TextView tvText;

    public RecyclerViewExampleItem(Context context) {
        super(context);
        //inflate(context, R.layout.recyclerview_item, this);
        //tvText = ((TextView) findViewById(R.id.tvText));
    }

    public void bind(String str){
        tvText.setText(str); //publishing the text from you data collection to each item in the RecyclerView
    }
}

Gives:

  • Class 'RecyclerExampleAdapter' must either be declared abstract or implement abstract method 'onBindViewHolder(VH, int)' in 'Adapter
  • Method does not override method from its superclass for public viewGroup onBindViewHolder
  • Method does not override method from its superclass for protected RecyclerViewExampleItem onCreateItemView
  • Method does not override method from its superclass for public String getItem

If I let Android Studio generate the methods I get:

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

    }

What am I missing?

Min SDK required 11

After downloading your code and including in my project I found that min SDK can be set to 9
I hope that you take this into consideration,

One more thing to note, the row containing the ad should have a predefined height cause it is against admob/adsense policy to have the ad change/shift the layout on load which might cause misleading clicks.
I'm gonne work on it, and if successful, I'll submit a Pull request,

Finally, thank you for the great job

Change Layout of Ad

How do I change layout of Ad. The current ad view is making the list look ugly.
Is it possible by adding project in gradle or I have to manually copy paste all required classes to my project to customize layout?

Ad into the end of recycleview

Now it's possible to insert ad into list between elements, but there is no way to put it at the end of list, such as:

[item one]
[item two]
[awesome native ad]

Check event no ads return?

Hi,

You can add function to check event no ads return?

public void onAdLoaded();
public void onAdFailedToLoad(int errorCode);
public void onAdOpened();
public void onAdClosed();
public void onAdLeftApplication();

Thanks!

Listview blank when ads failing to load

There was a problem getting an ad response. ErrorCode: 0
W/Ads: Failed to load ad: 0

Which is fine, but suddenly it makes my list go blank after loading:

   String[] testDevicesIds = new String[]{getString(R.string.testDeviceID), AdRequest.DEVICE_ID_EMULATOR};
    adapterWrapper = new AdmobExpressAdapterWrapper(getActivity(), testDevicesIds);
    adapterWrapper.setAdapter(adapter);
    adapterWrapper.setLimitOfAds(3);
    adapterWrapper.setNoOfDataBetweenAds(10);
    adapterWrapper.setFirstAdIndex(2);

If ads fail to load RecyclerViewAdapter hides data

I discovered that in my application where custom data appears but after the add failed to load (Due to error 0) then my data is removed.

It can be easily reproduced in sample application, just enter an invalid ad id in MainActivity_RecyclerView_Express and no data appears.

Native express

hello, is there any way to add a native express inside the adapterwrapper?
thank you in advance
btw your code works great
thank you

Major issue

Hey, It can't accept any custom viewholder which extends RecycleView.ViewHolder.

My class is like that and it is showing following error
class MyHolder extends RecyclerView.ViewHolder

screenshot 2016-10-16 15 51 39

It is not working with RealmRecyclerView Adapter

Hi,

I am trying to use it with RealmRecyclerView Adapter (https://github.com/realm/realm-android-adapters) but it is not showing any content. Without AdmobExpressRecyclerAdapterWrapper, it is working perfectly.

I have followed the instructions that are mentioned at https://github.com/clockbyte/admobadapter/wiki/Cookbook#the-recipe-3-for-a-recyclerview-scrolling-with-express-ads

Also, App crashes whey i destroy the Adapter in the onDestroy method with the following exception:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Looper android.content.Context.getMainLooper()' on a null object reference
       at com.clockbyte.admobadapter.AdmobFetcherBase.notifyObserversOfAdSizeChange(AdmobFetcherBase.java:126)
       at com.clockbyte.admobadapter.AdmobFetcherBase.destroyAllAds(AdmobFetcherBase.java:118)
       at com.clockbyte.admobadapter.expressads.AdmobFetcherExpress.destroyAllAds(AdmobFetcherExpress.java:145)
       at com.clockbyte.admobadapter.expressads.AdmobExpressRecyclerAdapterWrapper.destroyAds(AdmobExpressRecyclerAdapterWrapper.java:311)

Library version:compile 'com.github.clockbyte:admobadapter:1.2'
OS Version 6.0

Any suggestions?

Display the wrong information and select data?

Hi,

I checked to see, it display the wrong information and select click? When ads loaded, information on listview load more slowly. See picture: http://www.appsvn.com/pic/list_error.jpg

And when use lvMessages.setOnItemClickListener will get wrong data with position.

lvMessages.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Click: " + String.valueOf(position),
Toast.LENGTH_LONG).show();
}
});

Thanks!

How to wrap FirebaseRecyclerAdapter with AdmobExpressRecyclerAdapterWrapper

Thanks for the admob adapter.

One question: can we wrap other than RecyclerExampleAdapter?

I'm trying to put ads in the FirebaseRecyclerAdapter

See https://github.com/firebase/quickstart-android/tree/master/database

I'd like to put native express ads in the firebase list:

see https://github.com/firebase/quickstart-android/blob/master/database/app/src/screen.png

I'd like to put ads between "Heyyy" and "Hi", etc.

screen

But when I change from

private FirebaseRecyclerAdapter<Post, PostViewHolder> mAdapter;
...
        RecyclerExampleAdapter adapter  = new RecyclerExampleAdapter(getActivity());
        //FirebaseRecyclerAdapter<Post, PostViewHolder> adapter = mAdapter;
        adapterWrapper.setAdapter(adapter); //wrapping your adapter with a AdmobExpressRecyclerAdapterWrapper.

to

private FirebaseRecyclerAdapter<Post, PostViewHolder> mAdapter;
...
        //RecyclerExampleAdapter adapter  = new RecyclerExampleAdapter(getActivity());
        FirebaseRecyclerAdapter<Post, PostViewHolder> adapter = mAdapter;

        adapterWrapper.setAdapter(adapter); //wrapping your adapter with a AdmobExpressRecyclerAdapterWrapper.

I see errors:


.../app/src/main/java/com/google/firebase/quickstart/database/fragment/PostListFragment.java:93: error: incompatible types: FirebaseRecyclerAdapter<Post,PostViewHolder> cannot be converted to RecyclerViewAdapterBase
        adapterWrapper.setAdapter(adapter); //wrapping your adapter with a AdmobExpressRecyclerAdapterWrapper.
                                  ^
.../app/src/main/java/com/google/firebase/quickstart/database/fragment/PostListFragment.java:119: error: cannot find symbol
        adapter.addAll(lst);
               ^
  symbol:   method addAll(ArrayList<String>)
  location: variable adapter of type FirebaseRecyclerAdapter<Post,PostViewHolder>

Enter the wrong values when selecting objects

When I click on an item in the adapter, then if that item after advertising the position of the item is increased to a value.

I user getAdapterPosition() in my adapter to choose items

[Request] Facebook Native Ads

Adding this as a request to ad support for Audience Network native ads.

@clockbyte Please take out some time to implement audience network native ads in the adapter.

Is String name correct?

In admobadapter/admobadapter/src/main/res/values/strings.xml

I think name of 'test_admob_unit_id' should be 'test_admob_app_id'

What u say? if it is correct then which one is being used to display test ads?

<resources> <string name="app_name">admobadapter</string> <string name="test_admob_unit_id">ca-app-pub-3940256099942544/2247696110</string> <string name="test_admob_express_unit_id">ca-app-pub-3940256099942544/1072772517</string> </resources>

No ads in production

Hello.
I installed the admobadapter.
Its work great with test device ID

but in production ads not visible :-(

any Ideas?

  • I tried to change the banner id - no results
  • The catlog is empty (No admob/admobadapter mention)
  • I tried to remove my costume layout - no results
  • Interesting info - the firebase console shows some ad views

Constructor:

        //debug mode
        //String[] testDevicesIds = new String[]{"E7AC2F56BC1BF35EEC5C63E981C438A8", AdRequest.DEVICE_ID_EMULATOR};
        //adapterWrapper = new AdmobRecyclerAdapterWrapper(getContext(),testDevicesIds);

        //release mode
        adapterWrapper = new AdmobRecyclerAdapterWrapper(getContext(),getResources().getString(R.string.banner_ad_unit_id));

Code:

        adapterWrapper.setAdapter(mAdapter);
        adapterWrapper.setLimitOfAds(50);
        adapterWrapper.setNoOfDataBetweenAds(Integer.parseInt(getResources().getString(R.string.ad_rate)));
        adapterWrapper.setFirstAdIndex(Integer.parseInt(getResources().getString(R.string.ad_rate)));

        InstallAppAdLayoutContext installContext  = new InstallAppAdLayoutContext(R.layout.ad_app_install);
        adapterWrapper.setInstallAdsLayoutContext(installContext);
        ContentAdLayoutContext contentContext  = new ContentAdLayoutContext (R.layout.ad_content);
        adapterWrapper.setContentAdsLayoutContext(contentContext);

        mRecyclerView.setAdapter(adapterWrapper);

Native ADS doesn't show

Hi @clockbyte ,
i've add your project into my app.
I've create a new directory and i've put all admobadapter java files into it. I've add all .xml layout files into my layout directory.
I've created admob AdUnitId for Native ADS using my google accout for my app.
Into my fragment that show the listview i've add this code:

  `
   @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.fragment_sample0, container, false);

coordinatorLayout = (CoordinatorLayout) view.findViewById(R.id.coordinatorLayout);
listView = (ListView) view.findViewById(R.id.listView);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_layout);





spotsList = new ArrayList<HashMap<String, String>>();
adapter= new SwipeListAdapter(mActivity, spotsList);
adapterWrapper = new AdmobAdapterWrapper(getActivity());
adapterWrapper.setAdapter(adapter);
adapterWrapper.setLimitOfAds(3);
adapterWrapper.setNoOfDataBetweenAds(5);
String admobUnitId = getResources().getString(R.string.admob_unit_id);
adapterWrapper.setAdmobReleaseUnitId(admobUnitId);

listView.setAdapter(adapterWrapper);

swipeRefreshLayout.setOnRefreshListener(this);


swipeRefreshLayout.post(new Runnable() {
                            @Override
                            public void run() {
                                swipeRefreshLayout.setRefreshing(true);
                                .....

                            }
                        }
);


return view;
    }
     `
     private void initUpdateAdsTimer() {
        updateAdsTimer = new Timer();
        updateAdsTimer.schedule(new TimerTask() {
    @Override
    public void run() {
               getActivity().runOnUiThread(new Runnable() {
                   @Override
                    public void run() {
                      adapterWrapper.requestUpdateAd();
                    }
                });
        }
         }, 60*1000, 60*1000);
      }

I use my ListView with SwipeRefreshLayout and i've all into an Fragment.

Ok my problem is that i'm not able to see anything...i don't see the native banners or they empty space ... as if there were not null, only the list with the data as it was before.

Where is my error.

Thans a lot for your support

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.