Git Product home page Git Product logo

specialcyci / androidresidemenu Goto Github PK

View Code? Open in Web Editor NEW
2.9K 168.0 1.1K 6.84 MB

The idea of ResideMenu is from Dribbble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu. And thanks to the authors for the above idea and contribution.

License: MIT License

Java 100.00%

androidresidemenu's Introduction

#AndroidResideMenu

中文说明请点击 这里

The idea of ResideMenu is from Dribble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu. And thanks to the authors for the above idea and contribution.

Now with 3D support !

DEMO

This copy is the demo.

Version Migration

Upgrading to v1.4 from v1.3, v1.2, v1.1, v1.0

Duplicate the followed code in dispatchTouchEvent() of Activity, replace the old dispatchTouchEvent() code.

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        return resideMenu.dispatchTouchEvent(ev);
    }

Requirements

Run in Android 2.3 +

Installation

Gradle

repositories {
    mavenCentral()
}
dependencies {
    compile 'com.specyci:residemenu:1.6+'
}

Other

  1. import ResideMenu project to your workspace.
  2. make it as a dependency library project to your main project.
    ( see example )

or

If you want to merge ResideMenu with your project, you should follow these steps.

  1. Copy all files from src/com/special/ResideMenu to your project.
  2. Copy libs/nineoldandroids-library-2.4.0.jar to your project’s corresponding path: libs/
  3. Copy res/drawable-hdpi/shadow.9.png to your project’s corresponding path: res/drawable-hdpi/
  4. Copy res/layout/residemenu.xml and residemenu_item.xml to your project’s corresponding path: res/layout

Usage

init ResideMenu: write these code in Activity onCreate()

        // attach to current activity;
        resideMenu = new ResideMenu(this);
        resideMenu.setBackground(R.drawable.menu_background);
        resideMenu.attachToActivity(this);

        // create menu items;
        String titles[] = { "Home", "Profile", "Calendar", "Settings" };
        int icon[] = { R.drawable.icon_home, R.drawable.icon_profile, R.drawable.icon_calendar, R.drawable.icon_settings };

        for (int i = 0; i < titles.length; i++){
            ResideMenuItem item = new ResideMenuItem(this, icon[i], titles[i]);
            item.setOnClickListener(this);
            resideMenu.addMenuItem(item,  ResideMenu.DIRECTION_LEFT); // or  ResideMenu.DIRECTION_RIGHT
        }

If you want to use slipping gesture to operate(lock/unlock) the menu, override this code in Acitivity dispatchTouchEvent() (please duplicate the followed code in dispatchTouchEvent() of Activity.

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        return resideMenu.dispatchTouchEvent(ev);
    }

On some occasions, the slipping gesture function for locking/unlocking menu, may have conflicts with your widgets, such as viewpager. By then you can add the viewpager to ignored view, please refer to next chapter – Ignored Views.

open/close menu

resideMenu.openMenu(ResideMenu.DIRECTION_LEFT); // or ResideMenu.DIRECTION_RIGHT
resideMenu.closeMenu();

listen in the menu state

    resideMenu.setMenuListener(menuListener);
    private ResideMenu.OnMenuListener menuListener = new ResideMenu.OnMenuListener() {
        @Override
        public void openMenu() {
            Toast.makeText(mContext, "Menu is opened!", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void closeMenu() {
            Toast.makeText(mContext, "Menu is closed!", Toast.LENGTH_SHORT).show();
        }
    };

disable a swipe direction

  resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);

Custom Usage

Do your reside menu configurations, by creating an instance of ResideMenu with your custom layout's resource Ids. If you want to use default layout, just pass that variable as -1.

        resideMenu = new ResideMenu(activity, R.layout.menu_left, R.layout.menu_right);
        resideMenu.setBackground(R.drawable.menu_background);
        resideMenu.attachToActivity(activity);
        resideMenu.setScaleValue(0.5f);

        resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);
        resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_LEFT);

As your configuration's completed, now you can customize side menus by getting instances of them as following:

        View leftMenu = resideMenu.getLeftMenuView();
        // TODO: Do whatever you need to with leftMenu
        View rightMenu = resideMenu.getRightMenuView();
        // TODO: Do whatever you need to with rightMenu

##Ignored Views On some occasions, the slipping gesture function for locking/unlocking menu, may have conflicts with your widgets such as viewpager.By then you can add the viewpager to ignored view.

        // add gesture operation's ignored views
        FrameLayout ignored_view = (FrameLayout) findViewById(R.id.ignored_view);
        resideMenu.addIgnoredView(ignored_view);

So that in ignored view’s workplace, the slipping gesture will not be allowed to operate menu.

##About me A student from SCAU China.
Email: specialcyci#gmail.com

androidresidemenu's People

Contributors

haoxiqiang avatar maxhis avatar rlagoman avatar specialcyci avatar yayaa avatar

Stargazers

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

Watchers

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

androidresidemenu's Issues

Enable swipe on the left/right edge of the screen only

Hi,

First of all, thank you for this library. Awesome!

Can I request for a functionality to just enable the swiping (show reside menu) from the left or right of the screen just like the navigation drawer in native android?

Reason is for example, I have a seekbar on a list view, the swipe menu is triggered when i try to move the seekbar from left to right.

Thanks!

Ren

Root FrameLayout showing fullscreen

Hello,
I'm testing your library and found it very useful, awesome!
I'm having a problem with the size of the root layout. I want display the app icon and name in the top|left of the screen when the menu is open, but I have found that the height of the layout is the height of the entire screen (including the statusbar). Every view placed at the top of the layout is hidden under the statusbar and this also happens with the left and right menu scrolls when there are several items.
This is a screen capture that shows the problem:
err
First I thought it was due to the size of the background image, so I tried to remove it. This doesn't solve the problem.
I have tried modifying the method setViewPadding(), but this moves all the views, including the content of the application itself.
Hope someone can tell me how ti fix this.
Thanks!

请教几个问题?

  1. 每个ResideMenuItem之间间距无法调节,有多个Item的话会显得太宽。

  2. 只需要一边的菜单,另一边的菜单可不可以设为不可用(即禁止另一边菜单的滑动)?

  3. 有点卡卡的赶脚,没有DragLayout那么顺滑。

  4. 问题描述如下:

    String titles[] = { "Home", "Profile", "Calendar", "Settings" };
    int icon[] = { R.drawable.icon_home, R.drawable.icon_profile, R.drawable.icon_calendar, R.drawable.icon_settings };
    
    for (int i = 0; i < titles.length; i++){
    ResideMenuItem item = new ResideMenuItem(this, icon[i], titles[i]);
    item.setOnClickListener(this);
    resideMenu.addMenuItem(item,  ResideMenu.DIRECTION_LEFT); // or  ResideMenu.DIRECTION_RIGHT
    }
    

    这样做只能将每个item的点击事件都设为一样的,如果要设置不一样点击事件的就无法使用for循环了,要一个个单独new出来,然后setOnClickListener,这样虽然可以解决问题,但是假如有N个item需要设置不一样的点击事件该如何呢?能不能像SlidingMenu那样先用for循环批量设置title和icon,然后重写onListItemClick()方法。代码片段如下:

    SampleAdapter adapter = new SampleAdapter(getActivity());
            String titles[] = { "Home", "Profile", "Calendar", "Settings" };
            int icon[] = { R.drawable.icon_home, R.drawable.icon_profile, R.drawable.icon_calendar, R.drawable.icon_settings };
    for (int i = 0; i < 9; i++)
    {
        adapter.add(new SampleItem(titles[i], icon[i]));
    }
    setListAdapter(adapter);
    
    @Override
    public void onListItemClick(ListView l, View v, int position, long id)
    {
            switch (position)
        {
                      case 0:
                         break;
                      case 1:
                         break;
                    .....
                }
    }
    

发现一个问题

假设:从主页手势滑动到右边,再手势滑动回到主页,这时屏幕右半边无法点击,还会点到右边侧滑菜单的item;我猜测是滑动回主页时右边的菜单变透明,实际上还存在在主页上放,导致主页右半部分无法点击,我用一个方法回避这个问题就是在ResideMenu.java里的public boolean dispatchTouchEvent(MotionEvent ev)方法里把if (xOffset < -200 || xOffset > 200) {
pressedState = PRESSED_MOVE_HORIZANTAL;
ev.setAction(MotionEvent.ACTION_CANCEL);
}
判断语句数值调大,从原来的50调到200,但这样用户体验会差一些。
我是菜鸟,希望能和其他人交流一下这个问题,找到更好的解决办法。

How to change text on changing frame?

Hi
Could you please tell me how to write name of Fragment in place of Reside Menu Demo?
On clicking home it should be home, if on calendar it should be calendar.

Please help. Thanks

Items > 10

Hello! Did you tried adding more then 10 items to the menu? 👍

Problem with map

Hi, thanks for your library.
I have a problem with your library and map.
I've put a map in a fragment, but when I open the menu, the map doesn't move and stay at his position. All the others views move with the main view.
Can you help me ?
Thanks

How set onclick listener

i used this
ResideMenuItem rightItems = new ResideMenuItem(this, icon[i], options[i]);
rightItems.setOnClickListener(this);

but how i can listen to the specific item on the onClick method?

Return to the home activity if i change the device orientation.

Hello
I was testing the app and found really useful for me. I found one bug which i would like to share with you. Launch the app and click on profile menu. It will open profile fragment in the main activity page. Now change the orientation from portrait to landscape, the profile fragment page automatically disappear and move back to the main activity page.

how to set Ignoreview on reside menu drawer layout

You have described ignore view to avoid conflict with swipe gesture with viewpager or any other gesture. That's i got it. But I have added a viewpager in drawer menu layout and applied ignore view as you described. But its not working. How can I solve it ? Please help me out.

I can include this library in my project

I can include this library in my project
Error:Execution failed for task ':app:dexDebug'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command:
C:\Users\zen_75\AppData\Local\Android\sdk\build-tools\22.0.1\dx.bat --dex --no-optimize --output C:\projects\android-customer\app\build\intermediates\dex\debug --input-list=C:\projects\android-customer\app\build\intermediates\tmp\dex\debug\inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)

Handling Configuration Changes

Hi,
Is it possible to add support for Handling Configuration Changes ?
Or at least could you please provide guidance to handling configuration changes for ResideMenu?

Thank you.

Text Color

Hi!
Thanks for library.
Can we chance text color?

conflict with layout of fragment in 2.3v

hi and thank you for your amazing menu.
but i hava a problem when i slide and see the menu and then click on an item, functionality of my fragment is invoked! instead of switch the fragment. changes are applide on the current fragment on minisize of my fragment and swithching fragment and closing reside menu is not working.
when my current fragment is empty(just a relativelayout/linearlayout) switching between menu and fragment is perfectly work.

MenuActivity 的 下面方法中if换下顺序就不卡了!

MenuActivity 的 下面方法中if换下顺序就不卡了!
public boolean dispatchTouchEvent(MotionEvent ev) {
// return super.dispatchTouchEvent(ev) || resideMenu.onInterceptTouchEvent(ev);
return resideMenu.onInterceptTouchEvent(ev) || super.dispatchTouchEvent(ev);
}

Page Scroll

I have added menu item to the reside menu, but when the items are more in number, it scroll down but i cannot see the first three or more items as it doesn't scroll up....so what is the setting for page scroll up and down.

慢滑时候卡

我运行案例,在慢慢滑动的时候 出现 卡顿的情况。再去滑动的话 ,每次只能滑动一点点。

Grey space upon activity view

There's an unwanted grey (shadow-like) space to top of view when I test on my Flo (Nexus 7 2013) and also my GT-I9505 (Galaxy S4).
I attached a screenshot of the view hierarchy dump to clarify the issue
screenshot from 2014-08-16 01 32 14

What is it? Can it be removed?

How to open left drawer from extreme left only?

Hi
I am new to this high level of coding. Please could you help me by telling how can we open left drawer from extreme left as we do in inbuilt navigation drawer by android. Currently what is with your code is that if I swipe a little even from right, it just openmenu. Problem is that I have horizontalscrollview on my fragment and if I want to scroll in it, it opens left menu. Please help me out.

Fragments are placed on top of another instead of replacing

In the demo application,you've written a method changeFragment() for changing the fragments on side menu item click.There,the fragments are not replaced.Instead new fragment is placed above the old one.I am having Webviews in the side menu item clicks in my application.So,i have one Webview where there are youtube videos.So,when i play any video and click on another side menu item,the new page is getting placed on top of old one and the youtube video keeps on playing.Please help me fix this.

Wrong decorView height on Lolipop devices, after adding ActionBar/Toolbar

I did a slight modification to the bottom menu bar. Instead of using custom view, I added an Action Bar.
Everything works fine up to Android 4.4.4.

On Lolipop devices, the decorView size is equal to screen size.

The only modifications I made are:

  • MenuActivity extends ActionBarActivity not FragmentActivity
  • the style of the activity changed to Theme.AppCompat.Light.DarkActionBar

It seems that the menu doesn't calculate the space needed for notification bar and software buttons. For example the following code:

View decorView = getWindow().getDecorView();
ALog.i("Window Size: %d x %d", decorView.getWidth(), decorView.getHeight());
  • on Lolipop @ Nexus4 prints:

    Window Size: 768 x 1280

  • on Android 4.4.4 @ Nexus4 prints:

    Window Size: 768 x 1184

Any ideas how to fix it?

关于MenuItems的点击监听问题

楼主你好,最近尝试着用你的这个Demo开发应用,发现在,menu打开之后,不做任何操作,关闭menu,再打开menu点击menu中的任意一个item,这个item的onclicklistener会失效,只有在执行了关闭menu的动作之后,这个item的onclicklistener才会执行。同样在切换了新的Activity之后也会发生同样的问题,所以想请教下楼主,应该在哪里加以修改?或者应该在哪里注意item的点击响应来避免这种情况?(我试过在点击响应中加上 menu.close(),并不起效)。还请楼主赐教。

如何实现到另一个Activity

楼主我准备就用你这个效果当成我整个应用的tab用。怎么样让它切换到另一个Activity时平滑过度呢?我想在它播放home回来的动画时同步进行切换 但是你没有把这个方法暴露出来。楼主能给个意见吗?

doesn't work on transparent views

I have a google map, and other views(semi-transparent) over it.
By default (without ignoredViews) map can't easily swiped from left and right (resideMenu opened).
After adding map into ignored views I can't open resideMenu at all. Note: If i have not transparent views, it works well (I can open reside menu by dragging only from views).

control the direction

I want to use it just left ,but it doesn't provide any method to control easy.
Now,I override the dispatchTouchEvent method to control ..Maybe ,you need to provide the control method.

ResideMenu fit problem

Hello,
If I add more Items than there is there is a problem with the fitting the scrollview in the layout. For example if I add 8 items there is no problem on big screens. But if I try it on a smaller screen or rotate the to horizontal on the smaller screen some items are not visible,they get lost outside of the screen on top. Is there a way to fit the menu items depending on screen sizes or to autofit it ?
Thanks..

ResideMenu not working on pre-honeycomb devices

Hello,
I have found a problem with pre-honeycomb devices. In that case, the viewActivity (TouchDisableView) maintains its original size after the scale animation, intercepting every touch event in the hole screen and therefore disabling the menu items.
I removed the calls to viewActivity.setOnClickListener(viewActivityOnClickListener) in the method ResideMenu#onAnimationEnd() when the device is pre-honeycomb, but this way the menu can't be closed touching the original view, forcing an alternative way to close the menu.
Hope this helps to improve this awsome library!

How to change the right menu ?

I want to make the right menu different from the left menu in appearance.I want to create a listview below the right menu item. For that,should i need to create another xml or add new items to the existing residemenu_item and add it to right menu using DIRECTION_RIGHT ?Please help...

也许你也可以增加一个滑出后页面的缩放大小设置,我写了一些简单的代码

也许你也可以增加一个滑出后页面的缩放大小设置,我写了一些简单的代码,非常喜欢这个效果,感谢你的工作

com.special.ResideMenu

in library

//valid scale factor is between 0.0f and 1.0f.
private float mScaleValue = 0.5f;
...
 public void setScaleValue(float scaleValue) {
        this.mScaleValue = scaleValue;
 }
...
public void openMenu(int direction){

        setScaleDirection(direction);

        isOpened = true;
        AnimatorSet scaleDown_activity = buildScaleDownAnimation(viewActivity, mScaleValue, mScaleValue);
        AnimatorSet scaleDown_shadow = buildScaleDownAnimation(imageViewShadow,
                mScaleValue + shadowAdjustScaleX, mScaleValue + shadowAdjustScaleY);
        AnimatorSet alpha_menu = buildMenuAnimation(scrollViewMenu, 1.0f);
        scaleDown_shadow.addListener(animationListener);
        scaleDown_activity.playTogether(scaleDown_shadow);
        scaleDown_activity.playTogether(alpha_menu);
        scaleDown_activity.start();
    }

com.special.ResideMenuDemo

we can use like this


private void setUpMenu() {

        // attach to current activity;
        resideMenu = new ResideMenu(this);
        resideMenu.setBackground(R.drawable.menu_background);
        resideMenu.attachToActivity(this);
        resideMenu.setMenuListener(menuListener);
        //valid scale factor is between 0.0f and 1.0f.
        resideMenu.setScaleValue(0.6f);
...
}

一些疑问

目前项目中使用了您的ResideMenu控件,感觉效果很棒,但是还是有些疑问没有想明白,想和您探讨一下:
1、为什么要在Activity中接管dispatchOnTouch,因为即使不这样,Activity也会将事件分发给底层View,即ResideMenu;不知道这样做有什么其他意义;

2、initvalue中,为什么要把两个scrollview先移除了?有什么必要性么?

[email protected]

手势滑动太灵敏了

在一个只有ListView的Activity里加上了手势之后,我本意是滑动ListView,但是ResideMenu也很容易出现。

Activity not fitted into the dark placeholder

In my flo (Nexus 7 2013) the view of activity is not fitted into the black place holder of it. Is seems that they don't scale the same amount.
I attached a screenshot of the view hierarchy dump to clarify the issue.

screenshot from 2014-08-16 01 32 07

How to find click event of menu

Hello sir,

here i set menu item using below code.

List resideMenuItemList = new ArrayList();
for (int index = 0; index < titles.length; index++){
ResideMenuItem menuObj = new ResideMenuItem(this, icon[index], titles[index]);
menuObj.setOnClickListener(this);
resideMenuItemList.add(menuObj);
}
resideMenu.setMenuItems(resideMenuItemList, ResideMenu.DIRECTION_LEFT);

so, my question is how to find which menu item click in onClick method.

@OverRide
public void onClick(View view) {

}

请问能否设置滑动距离呢?

现在能够通过setScaleValue设置滑动最终的滑动大小。
但是滑动距离已经是与滑动结束的大小绑定了,
现在项目要滑动结束后的距离要远些。
请问如何设置?
谢谢。

ResideMenu + WebView crash randomly on first run

Hi,

I developed an app which loads on start one web page in a WebView.

The problem is that the app takes seconds to load the view on start(fresh start). Everything is white and buttons from the layouts doesn't appear and
the interface doesn't respond (you can not slide to view the ResideMenu).
If you touch the interface in this time than the app crash, sometime it crash without touching it or doing any other external actions.

If the WebView load fast the page than the view is loaded faster and the interface start to respond faster.
That’s why I think is an issue between ResideMenu and long time operations on start-up.

Note: After the app manage to start everything works great.

Can you suggest any workaround for this issue?

Thanks you.

Can i add a listview to the menu instead of items?

Hi,

I have to use this library in one of my projects, but i was thinking if it is possible for me to add a listview to the menu? Could you please help me out ? I tried doing so, but then the listview doesnot seem to scroll on certain devices not even on lolipop and not even below lolipop - gingerbread versions.

Thanks

excellent work!I dump the view tree,found some layouts between decorView and contentView which are redundant.

private void initValue(Activity activity) {
this.activity = activity;
leftMenuItems = new ArrayList();
rightMenuItems = new ArrayList();
ignoredViews = new ArrayList();

    viewDecor = (ViewGroup) activity.getWindow().getDecorView();
    viewActivity = new TouchDisableView(this.activity);
    // View mContent = viewDecor.getChildAt(0);
    // viewDecor.removeViewAt(0);
    ViewGroup contentView = (ViewGroup) (viewDecor.findViewById(android.R.id.content));
    View mContent = contentView.getChildAt(0);
    contentView.removeAllViews();
    viewDecor.removeAllViews();

    viewActivity.setContent(mContent);
    addView(viewActivity);

    ViewGroup parent = (ViewGroup) scrollViewLeftMenu.getParent();
    parent.removeView(scrollViewLeftMenu);
    parent.removeView(scrollViewRightMenu);
}

关于随手指滑动的问题

  我在用你的library集成到我的项目里,效果非常棒,唯一美中不足的是没有IOS那样的随手指拖动的效果,加上的话就完美了,(・∀・)

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.