GithubHelp home page GithubHelp logo

nayash / smarter-launcher Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 43.49 MB

An Android launcher which understands your usage patterns and updates the Home screen with a list of apps which are most likely to be used by you next.

License: GNU General Public License v3.0

Kotlin 95.85% Java 4.15%
machine-learning knn-algorithm android launcher-application kotlin-android

smarter-launcher's Introduction

smarter-launcher (WIP | Not production ready)

An Android launcher which understands your usage patterns and updates the Home screen with a list of apps which are most likely to be used by you next. This project uses the algorithm introduced in the paper titled "Mobile App Recommendation with Sequential App Usage Behavior Tracking" (link below).

How it works?

The app reads the system/context variables (like time of day, earphone plugged in or not, bluetooth & network status etc) and represents them as a real valued vector every time an app is launched. These vectors are stored as "history". On every new app launch KNN (K Nearest Neighbour) is performed to find the closest vectors and corresponding apps. The top most similar apps are suggested to the user.

More details are available on my blog here

See Smarter Launcher in action:

wep_small

woep_small

Note: The wallpaper is not part of the launcher. It's a Live Wallpaper I had developed last year. It's on PlayStore Matrix LiveWallpaper.

TODO (priority items)

  • Support for adding widgets
  • Restoring historical data in case of reinstall even if apps list has changed. (normal case where the apps are same is already supported)
  • Large Margin Nearest Neighbour algorithm implementation
  • capture app launches from "recent tasks" list (will support it only if I find a legitimate way supported by Android)

Credits

smarter-launcher's People

Contributors

nayash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

smarter-launcher's Issues

Beta? No. Alpha Preview at best

The concept sounds great, but opening the fist app should immediately add it to the homescreen. As other apps are opened, the algorithm should adapt from there.

You can't label a proof of concept release as Beta. That normally means it went through and Alpha stage and should be feature complete.

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.