Giter VIP home page Giter VIP logo

forcedoze's Introduction

ForceDoze

ForceDoze allows you to forcefully enable Doze right after you turn off your screen, and on top of that, it also disables motion sensors so Doze stays active even if your device is not stationary while screen off. Doze will only deactivate periodically to execute maintenance jobs (like getting notifications, etc), otherwise it will remain active as long as your screen is off. This brings a lot more battery savings than standard Doze functionality, because even with screen off and Doze enabled, Doze is still periodically checking for movement, and disabling motion sensing improves battery life further.

Get it on F-Droid

Coverage:

Features

  • Force Doze mode immediately after screen off or after a user specified delay
  • Add/remove apps or packages directly to system Doze whitelist
  • Disable motion sensors to prevent Doze from kicking in during movement
  • Tasker support to turn on/off ForceDoze and modify other features
  • Disable WiFi and mobile data completely during Doze
  • Enable Doze mode on devices where OEM has disabled it
  • No root mode so you can enjoy the core benefits without rooting your device
  • Free, no ads and open source

Download

Play Store link: https://play.google.com/store/apps/details?id=com.suyashsrijan.forcedoze&hl=en

Android

Requirements for compiling source code and running the app:

  • Android 6.0 (Marshmallow) SDK platform
  • Android smartphone running 6.0 (Marshmallow)
  • Android Studio
  • Root (can work with limited functionality in non-root mode)
  • Xposed (for extra functionality)

License

This code is licensed under GPL v3

forcedoze's People

Contributors

chanssl avatar fcaronte avatar itaysonlab avatar kkfong avatar monza1412 avatar mrandreluiz avatar osk2 avatar poussinou avatar remi6397 avatar rosenpin avatar theblixguy 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

forcedoze's Issues

Function Utils.isMobileDataEnabled(context) returns false;

Using Android 6.0 AOSP.
From logs : wasDataTurnedOn: false;

Maybe change to something like this? :

public static bool IsMobileDataEnabled()
{
bool result = false;

    try
    {
        Context context = //get your context here or pass it as a param

        if (Build.VERSION.SdkInt >= BuildVersionCodes.JellyBeanMr1)
        {
            //Settings comes from the namespace Android.Provider
            result = Settings.Global.GetInt(context.ContentResolver, "mobile_data", 1) == 1;
        }
        else
        {
            result = Settings.Secure.GetInt(context.ContentResolver, "mobile_data", 1) == 1;
        }
    }
    catch (Exception ex)
    {
        //handle exception
    }

    return result;
}

ForceDoze does not read/display Tunables/settings from the system

Today I was playing with ForceDoze for the first time and immediately noticed that it is not correctly reading doze settings from the system. Instead, it appears to be using it's own internal set of stored settings and merely assumes that the system is using a default set of settings or the last setting which ForceDoze was configured to use, neither of which may be the actual configured setting on the system.

For example, I manually set idle_to to be 5s, down from the default of 3600 seconds. I verified this change with "dumpsys deviceidle" in a shell, but ForceDoze still displays the current setting as being "3600000"(ms).

This behavior is probably intentional, but a user would be correct to reasonably believe that the setting being displayed was read from the system.

It would probably be best to display the current-applied setting taken from the system, the ForceDoze-configured settings, and perhaps the system defaults at the same time (all three are potentially different). This would allow the user to inspect the system defaults, the current settings, and would reveal any inconsistency between what the system should be as configured in ForceDoze and what it actually is.

If you need an example for reading settings, there is a "Doze Setting Editor" out on XDA which correctly reads and displays system doze settings:
https://forum.xda-developers.com/android/apps-games/root-doze-settings-editor-android-t3235130

ForceDoze crash on TransactionTooLargeException

Here is backtrace.

09-09 09:13:36.600  8854  8854 E AndroidRuntime: Process: com.suyashsrijan.forcedoze, PID: 8854
09-09 09:13:36.600  8854  8854 E AndroidRuntime: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 983328 bytes
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.app.ActivityThread$StopInfo.run(ActivityThread.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.os.Looper.loop(Looper.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime: Caused by: android.os.TransactionTooLargeException: data parcel size 983328 bytes
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.os.BinderProxy.transactNative(Native Method)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.os.BinderProxy.transact(Binder.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java)
09-09 09:13:36.600  8854  8854 E AndroidRuntime:        ... 8 more

Why ForceDoze request super user access

On rooted phone with Magisk when ever the phone is booted i see the toast notification which says Root permission granted for ForceDoze. Why ForceDoze request root access every time the phone is rebooted ?

ForceDoze doesn't enter to Doze mode on my Xperia XZs

ForceDoze says Screen is on, skip entering Doze, when I turn off the screen on my Xperia XZs.

[--------- beginning of system, --------- beginning of main, 
06-19 01:50:46.056  7884  7884 I ForceDoze: Received BOOT_COMPLETED intent, isServiceEnabled=false, 
06-19 01:52:05.001  8978  8978 I ForceDoze: android.permission.DUMP & android.permission.WRITE_SECURE_SETTINGS already granted and user on Nougat, skipping SU check, 
06-19 01:52:05.001  8978  8978 I ForceDoze: Service not enabled, 
06-19 01:52:05.940  8978  8978 I ForceDoze: Enabling ForceDoze, 
06-19 01:52:06.003  8978  8978 I ForceDozeService: Service has now started, 
06-19 01:52:06.009  8978  8978 I ForceDozeService: Checking self-whitelist capability...., 
06-19 01:52:06.009  8978  8978 I ForceDozeService: Nougat: true, 
06-19 01:52:06.009  8978  8978 I ForceDozeService: SU available: false, 
06-19 01:52:06.016  8978  8978 I ForceDozeService: Service already in Doze whitelist for stability, 
06-19 01:52:06.016  8978  8978 I ForceDozeService: Fetching Device Idle state..., 
06-19 01:52:06.040  8978  9110 I ForceDozeService: u0_a257, 
06-19 01:52:13.030  8978  9167 I ForceDoze: Error opening root shell: exitCode -3, 
06-19 01:52:13.074  8978  9172 I ForceDoze: u0_a257, 
06-19 01:52:27.630  8978  8978 I ForceDozeService: Screen OFF received, 
06-19 01:52:27.636  8978  8978 I ForceDozeService: Doze delay: 0ms, 
06-19 01:52:27.636  8978  8978 I ForceDozeService: Ignoring lockscreen timeout value and entering Doze immediately, 
06-19 01:52:27.636  8978  8978 I ForceDozeService: Fetching Device Idle state..., 
06-19 01:52:27.637  8978  8978 I ForceDozeService: Screen is on, skip entering Doze, 
06-19 01:53:13.976  8978  8978 I ForceDozeService: Screen ON received, 
06-19 01:53:13.976  8978  8978 I ForceDozeService: Last known Doze state: ACTIVE, 
06-19 01:53:13.976  8978  8978 I ForceDozeService: Fetching Device Idle state..., 
06-19 01:53:13.977  8978  8978 I ForceDozeService: Cancelling enterDoze() because user turned on screen and 0ms has not passed OR disableWhenCharging=true]

Shared preferences not readable on restart for Xposed

After two restarts, Xposed can't read the preferences file and always returns the default values:

ForceDozeXposed: usePermanentDoze: false, useXposedSensorWorkaround: false, serviceEnabled: false

Needless to say, this makes the module not work at all after a set period of restarts. Manually changing sharedpref permissions to 0664 fixes it for the next restart, but not the one after that (I'm assuming ForceDoze resets file permissions on start, as I checked and it's back to 0660).

According to the xposed author, changing a PreferenceManager setting should fix it: rovo89/XposedBridge#56 (comment)

Other modules do the same: https://github.com/wasdennnoch/AndroidN-ify/blob/3504b3e461873dc091127b24aa5f85dc22679a76/app/src/main/java/tk/wasdennnoch/androidn_ify/ui/SettingsActivity.java#L127

Wrong sort in stats (am vs pm)

screenshot_20160523-002142

In stats, the line are incorrectly sorted between am and pm (the sort doesn't take into account that am is before pm). See attached screenshot.

Non-root block app

I've a flow in Automagic to kill some apps after doze mode in entered. It works. I would like to use the new Force Doze blocklist instead but it requires root. Why? Wouldn't it be possible to stop a task without any root permission whatsoever?

PS: great app!

maintenance and PRs

@theblixguy are you still maintaining this repo?
I have a fork where i migrated all to androidx/material, upgraded libs and added a feature for not disabling network while music playing app is working.
I can create PRs but i want to be sure you still maintain this

Google play services held awake

I'm using v1.2.4
Nexus 5x
Not rooted, but DUMP permission given.

I noticed that after a few hours of using ForceDoze, Google Play Services remains awake no matter what I do. I need to reboot the phone for it to stop.

See attached screenshots : Play Services held the phone awake during 5 hours, but the phone as almost always with screen off during that time.

screenshot_20160523-003623
screenshot_20160523-003615

Cannot enable DUMP permission

I just installed ForceDoze the first time via F-Droid.

I have a non-rooted phone, Android 8.1.0.

When I start ForceDoze, I get the SU permission denied error. I followed the ROOT PERMISSION WORKAROUND and send this command to the (only connected) phone (after plugging the phone in with an USB cable and changing the USB mode to: Use USB to: Transfer files):

adb shell pm grant com.suyashsrijan.forcedoze android.permission.DUMP

This command runs without any visible errors.

I stopped ForceDoze and restarted it again. Still I get the SU permission denied error. I issued the adb command with ForceDoze running or closed. Same result.

If I check for the permissions for ForceDoze with

adb shell dumpsys package com.suyashsrijan.forcedoze

I get

[...]
Packages:
  Package [com.suyashsrijan.forcedoze] (94d0b9b):
    userId=10084
    pkg=Package{4395b38 com.suyashsrijan.forcedoze}
    codePath=/data/app/com.suyashsrijan.forcedoze-ufZn7ZRsxlBXk90XH4AIdw==
    resourcePath=/data/app/com.suyashsrijan.forcedoze-ufZn7ZRsxlBXk90XH4AIdw==
    legacyNativeLibraryDir=/data/app/com.suyashsrijan.forcedoze-ufZn7ZRsxlBXk90XH4AIdw==/lib
    primaryCpuAbi=null
    secondaryCpuAbi=null
    versionCode=68 minSdk=23 targetSdk=27
    versionName=1.4.0
    splits=[base]
    apkSigningVersion=1
    applicationInfo=ApplicationInfo{b871711 com.suyashsrijan.forcedoze}
    flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    privateFlags=[ PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ]
    dataDir=/data/user/0/com.suyashsrijan.forcedoze
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    timeStamp=2018-10-29 13:11:15
    firstInstallTime=2018-10-29 13:11:16
    lastUpdateTime=2018-10-29 13:11:16
    installerPackageName=com.android.packageinstaller
    signatures=PackageSignatures{9b23076 [1a8518d6]}
    installPermissionsFixed=true installStatus=1
    pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
    requested permissions:
      android.permission.WAKE_LOCK
      android.permission.RECEIVE_BOOT_COMPLETED
      android.permission.WRITE_SETTINGS
      android.permission.ACCESS_WIFI_STATE
      android.permission.CHANGE_WIFI_STATE
      android.permission.READ_LOGS
      android.permission.READ_PHONE_STATE
      android.permission.DUMP
      android.permission.WRITE_SECURE_SETTINGS
    install permissions:
      android.permission.RECEIVE_BOOT_COMPLETED: granted=true
      android.permission.CHANGE_WIFI_STATE: granted=true
      android.permission.ACCESS_WIFI_STATE: granted=true
      android.permission.DUMP: granted=true
      android.permission.WAKE_LOCK: granted=true
    User 0: ceDataInode=621422 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false virtual=false
    overlay paths:
      /vendor/overlay/framework-res__auto_generated_rro.apk
      lastDisabledCaller: com.android.packageinstaller
      runtime permissions:

Package Changes:
[....]

Relevant parts (I could spot) in adb logcat:

10-29 15:24:07.712  9204  9204 I ForceDoze: Check if SU is available, and request SU permission if it is
10-29 15:24:07.838  9204  9204 I ForceDoze: SU available: false
10-29 15:24:07.838  9204  9204 I ForceDoze: SU permission denied or not available

Are there any other special instructions to get ForceDoze working?

S6 Battery Stats

I'm using the latest update, but the battery stats aren't actually reporting the level, just the date and time.
screenshot_20160515-120614

Can't enable Root-Workaround

Even after granting the permission by:
pm grant com.suyashsrijan.forcedoze android.permission.DUMP
It doesn't work

Bug oneplus 3 oos 3.2.8

Hi ! I update to Oos 3.2.8 and when I disable sensor root I had some mistake.
It's more difficult to wake up my smartphone and the nav button don't work.
Thank you

Do not remove blacklisted app icon from the main screen

Force Doze remove blacklisted app icon from the main screen on rooted LineageOS 17.1 (Android 10). It's make inconvenience, because I have some frequently used application, that should not work in background.

Could you please, fix this?

Auto-rotate/brightness fix issue

Every time I try to check it on I get: Authorize dialogue->press Authorize->toggle it on or it's already on->press back->still not checked

Should ForceDoze be designed for more than just saving power?

Hello!

This is a feature/design request/comment. No real bug here.

I recently found your app and started playing with it. I am mostly pleased with it so far and appreciate that it's an OSS app -- I will be leaving you with a donation here soon.

However, ForceDoze appears to have been designed to save power by making the doze system settings more aggressive than normal. This would be desirable when the user wishes to save more battery power.

In my case, I have the opposite problem. Doze is causing me to miss alerts and notifications from my email and calendar apps, which is super bad. So, instead of tuning doze to be more aggressive, I need to tune doze to be less aggressive, even if that means I get worse battery life.

In my case, missing another meeting or important email might get me fired from my job. That's far far worse than losing some small amount of battery life.

It is entirely your call if you want to design ForceDoze for this sort of usage scenario or not, but I thought it would be worth mentioning since there are very few other apps related to Android doze on the market and making changes which would permit this use case would be easy to do.

Or maybe you can make a second app and name it "NoDoze"!

Anyway, thanks for reading. You can close this out when read.

ForceDoze doesn't work on my device (Android 7.1.1)

Android 7.1.1 - Sony Xperia X Compact without root access enabled.

Using ADB from Windows, so, I granted required permissions (DUMP and WRITE_SECURE_SETTINGS); furthermore I excluded ForceDoze under "battery optimization" in Android.

I've done a test suggested by the developer:(https://www.reddit.com/r/Android/comments/5ynonq/dev_forcedoze_now_supports_nougat_and_adds_many/derpcay/)

I left my phone with screen off for ten minutes (I set ForceDoze to trigger Doze after 1 minute), waiting for Doze.
Then, after 10 minutesI opened GSAM Battery Monitor and clicked on the Triangle button on the bottom and selected "Since Screen off"; then on "WakeLock" to see the time spent in Doze: GSAM reported 5m 17s spent in Doze and ForceDoze reported 51 seconds.

In ForceDoze's logs I never see "Entering Doze"

I repeated this test after a reboot, leaving the phone in deep sleep for a longer time (I'm also using Better Battery Stats for a deeper investigation):

Deep Sleep: 46 m 35 s  94,5%
Awake (Screen Off): 1 m 51 s  3,8%
ForceDozeTempWakelock (com.suyashsrijan.forcedoze.ForceDoze): 55 s  Count:1 1,9%
AnyMotionDetector (Sistema Android): 10 s  Count:18 0,3%

GSAM: doze light 24m 57s doze deep 15m 51s
ForceDoze time spent: 47m 27s

But again, in ForceDoze's logs I never see "Entering Doze".

Please notice that I disabled the permanent notification of ForceDoze, since seems that this option eat more battery. For now I also reset and uninstalled ForceDoze, since every time that I turn on and turn off the screen, the ForceDozeTempWakelock increase (but also the last night, when I didn't touched my phone in 1 hour of deep sleep: ForceDozeTempWakelock(com.suyashsrijan.forcedoze.ForceDoze): 1 m 59 s Count:3 2,0%), but during the day, when i often turn on and off the screen, such wakelock increase a lot.

ForceDoze for me, is also not able to disable the motion sensor: in Bettyer Battery Stats, in facts, I always see the AnyMotionDetector wakelock, despite the fact that in ForceDoze I disabled the motion sensor. To be more clear no one else "Force Doze" application works as expected for me.

Let me know if I can do more tests.

Auto rotation/brightness fix permission not recognize

Android version 7.1.1
Device Nextbit Robin stock system

I read this #44
And the problem is different.

When try to click on the option, a dialog says it requires modify system settings permission, then jump to Android system permission manage interface.

I do allowed that permission, but when back to app, it still requiring the permission even if I already have.

Force stop && clear app data not fix this so a post for help.

Battery drains very quickly when I enable "Turn off while charging" and/or "Disable motion sensing for Doze (non-root)"

Device: Verizon Snapdragon Galaxy S7
Android version: Nougat beta (also occurred on Marshmallow)

My standby battery life has never been great, but ForceDoze helps a lot. However, when I enable either "Disable motion sensing for root" (the non-root experimental one) and/or "Turn off while charging", my battery will drain to about 5% overnight, compared to what is usually about 75%.

Last night, before I went to bed, I enabled "Turn off while charging" and woke up to 6% battery. Here's an image of the doze stats: https://goo.gl/photos/AEiaj9zBt9NrDcHt6

When I was previously rooted with Xposed, these options also drained the battery the same way.

Doesn't work on unrooted N?

I tried to use and compile this app myself, seems like it fails to put the device into sleep, it thrwos the following exception when the "enterDoze" method is called:

Security exception: Neither user 10248 nor current process has android.permission.DEVICE_POWER.
java.lang.SecurityException: Neither user 10248 nor current process has android.permission.DEVICE_POWER.

Seems like you try to grant this permission on rooted devices when the service is created

  if (Utils.isDeviceRunningOnNPreview()) {
            if (!Utils.isDevicePowerPermissionGranted(getApplicationContext())) {
                if (isSuAvailable) {
                    grantDevicePowerPermission();
                }
            }
        }

But the app doesn't prompt the user if this permission can't be granted (if root is not available)

Is this intentional?
Please let me know.

Not working in Sony Z5 android 6.0.1

After closing screen for like 10 minutes, I found that it's empty in Doze Battery Stats.

And I can still receive internet msg.

The phone is just on the table. I didn't move it.

Can't use it on android 13

  1. I've been trying to use the root work around using LADB (my android supports wireless debugging and so I thought this would work. Sadly not matter how many times I put in the command (and changed it a little) the app doesn't take the access. Please help me someone.

Whitelist apps

Hi, I've installed ForceDoze recently and I have problem with withelist apps because It's just not working, for example when I click on plus button that loads app list then I can choose an app from there It's not adding it to the list, I also tried doing it by package name It's not working either and when I want to remove the apps that I added It just says app is not in the whitelist. Is It just for me? if there's any fix I would use it for sure. Thanks

How do you run ENABLE_FORCEDOZE via adb

Can you provide a few adb examples how to run some of the brodcasts via adb so i can script this?

examples:
ENABLE_FORCEDOZE
DISABLE_FORCEDOZE
CHANGE_SETTINGS

temporarily disable force doze [feature request]

could you add a way to temporarily disable force doze for a certain amount of time ? what i have in mind is like how we can put the phone in dnd for some time like 1 or 2 hrs from quick settings . i disable forcedoze when i using something like spotify but later on i forget to put it on again . to avoid this im requesting this feature

support for “Work Profile”

Really nice program, thank you very much. Is it possible to whitelist Whatsapp from the Shelter-profile, or “Work Profile”, because it doesn't appear on the app list?

Delay option vs Lockscreen timeout

Add an information pop-up in the delay option setting, that explains how the Lockscreen timeout affects the delay.

I know there is an alert pop-up (which is great), but it only shows itself over 15min. I had a 5 min Lockscreen delay (and 0 delay in ForceDoze) and I had to look at the code + logcat to understand why my phone wasn't dozing immediately 😀

After Roboot Doze Delay Is Reverted

Didnt look too far into it. Just saw that after reboot The service does come back on. However Logging was not changing until I re-applied the Doze Delay. Using a Pixel 2 XL Android 8.1.0

Do not affect apps (effectively hiding ForceDoze)

Hello!

I used Applist Detector after installing ForceDoze to find out if any of my banking apps would discover ForceDoze - and, sure enough, they do. Although HideMyApplist is running as it should, Applist Detector still sees it which leads me to believe that ForceDoze is hooking into all applications.

How can I make specific apps not be affected? As long as my banking app sees a single hooked module, it refuses to start which is quite a problem.

Thank you and kind regards,
Ingwie

Update license to conform with F-droid/Google support library

Great app @theblixguy!

Unfortunately it seems the current GPLv2 license is incompatible with the Apache v2 license that the support library is using, as such this prevents ForceDoze from being published onto fdroid (as well as going against the support library license).

It would be great if ForceDoze could be changed to something like the Apache v2 license, that way it would conform with the support library and could pave the way to being on fdroid (either on this repo or a fork if you do not wish to directly maintain fdroid support/tags)

Is this app compatible with OnePlus devices running on Android 12?

We've been seeing in the recent years. Many battery-saver apps (and their devs) have parted ways with the Android community. Largely because of Android's native battery configuration - which seems to have improved over the years, but also because of some funny battery optimisation levels on highly infamous OEMs like Samsung and OnePlus. OnePlus' OxygenOS 12 esp (as we all can agree) is definitely one of the them.

Been using open source gems like SaverTuner for a while now. Apps that are otherwise greatly applauded by the community stand just as ineffective on my OnePlus 7T (running on OxygenOS 12.1)

ForceDoze definitely raises eyeballs and I would NOT want it to be going down the same spiral.

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.