Giter VIP home page Giter VIP logo

appusagechecker's Introduction

App Usage Checker

Stack

  • The project is 100% Kotlin
  • MVVM architecture have been followed.
  • Hilt, Navigation compononents, Work Manager, Flows & Coroutines have been used

Build Instructions

  • Clone the project and add it in Android Studio.
  • Sync the project files by clicking on "Sync gradle files" button

Run Instructions

  • Run the app on an emulator or a personal device by clicking on the run button in the top toolbar
  • We need to provide PACKAGE_USAGE_STATS permission to use the app.
  • Please refer to the screenshots in the /screenshots folder to check the UI

Assumptions or design decisions taken

  • We needed to show a UI element from background. Android restricts on showing UI element from background. We had two options - System alert or push notifications. I decided top go ahead with the push notification approach because system alerts is a sensitive permission and user is more used to seeing push notifications for alert.
  • Currently, if time limit set, the app checks in every 15 minutes for any app which has crossed the time limit. The 15 min time limit is an Android limitation if we want to cater to users on Android 12 and above. I have tried using a hack to listen for every 1 minute in case we have an which has crossed the limit but the result has been flaky.
  • All the modules, packages and classes are implemented keeping testing in mind.

Screenshots

List of apps along with their respecting time usage for the day 1.List of apps along with their respecting time usage for the day

Add/Edit time limit for an app 2.Add/Edit time limit for an app

Alert when app is used over the set limit 3.Alert when app is used over the set limit

appusagechecker's People

Contributors

sidharthsethia avatar

Watchers

James Cloos avatar  avatar

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.