{"id":22048677,"url":"https://github.com/stevdza-san/stopwatch-android-app","last_synced_at":"2025-07-06T11:35:34.348Z","repository":{"id":60843459,"uuid":"543496709","full_name":"stevdza-san/Stopwatch-Android-App","owner":"stevdza-san","description":"Stopwatch is a simple Android application developed with Jetpack Compose.","archived":false,"fork":false,"pushed_at":"2022-10-04T11:51:01.000Z","size":414,"stargazers_count":42,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-08T23:04:36.575Z","etag":null,"topics":["android","jetpack-compose","kotlin","kotlin-android","stopwatch","stopwatch-application"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stevdza-san.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-30T08:14:17.000Z","updated_at":"2025-03-17T19:36:14.000Z","dependencies_parsed_at":"2022-10-05T16:26:31.721Z","dependency_job_id":null,"html_url":"https://github.com/stevdza-san/Stopwatch-Android-App","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevdza-san%2FStopwatch-Android-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevdza-san%2FStopwatch-Android-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevdza-san%2FStopwatch-Android-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevdza-san%2FStopwatch-Android-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stevdza-san","download_url":"https://codeload.github.com/stevdza-san/Stopwatch-Android-App/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253160770,"owners_count":21863627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","jetpack-compose","kotlin","kotlin-android","stopwatch","stopwatch-application"],"created_at":"2024-11-30T14:13:05.373Z","updated_at":"2025-05-08T23:04:47.294Z","avatar_url":"https://github.com/stevdza-san.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stopwatch - Android App with Jetpack Compose\n\nA simple stopwatch application with jetpack compose using foreground and bound services \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/stevdza-san/Stopwatch-Android-App/blob/master/Stopwatch.png\" href=\"https://youtu.be/JflJjPxhFQo\"\u003e\n\u003c/p\u003e\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://youtu.be/JflJjPxhFQo\" align=\"center\"\u003eCheck YouTube for Complete Video Tutorial\u003c/a\u003e\n\u003c/p\u003e\n\nThis application basically consists of 3 different textunits representing Hours, Minutes and Seconds.\nAlso we got two buttons on the UI. The first button will be changed on the basis of service state and the second button will allow us to cancel the foreground service which will result in resetting of our stopwatch.\n\nYou can control the stopwatch either by the UI buttons or with the notification panel. As we are using services, so if we even close the application then also we can track the stopwatch state by notification panel. \n\n## This project uses: \n\n* Dagger-Hilt\n* Bound Service\n* Foreground Service \n\n### Dagger-Hilt \n\nHilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires you to construct every class and its dependencies by hand, and to use containers to reuse and manage dependencies.\n\nHilt provides a standard way to use DI in your application by providing containers for every Android class in your project and managing their lifecycles automatically. Hilt is built on top of the popular DI library Dagger to benefit from the compile-time correctness, runtime performance, scalability, and Android Studio support that Dagger provides. \n\n### Bound Service \n\nA bound service is an implementation of the Service class that allows other applications to bind to it and interact with it. To provide binding for a service, you must implement the onBind() callback method. This method returns an IBinder object that defines the programming interface that clients can use to interact with the service.\n\n### Foreground Service \n\nForeground services perform operations that are noticeable to the user.\n\nForeground services show a status bar notification, so that users are actively aware that your app is performing a task in the foreground and is consuming system resources.\n\nDevices that run Android 12 (API level 31) or higher provide a streamlined experience for short-running foreground services. On these devices, the system waits 10 seconds before showing the notification associated with a foreground service. There are a few exceptions; several types of services always display a notification immediately.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevdza-san%2Fstopwatch-android-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevdza-san%2Fstopwatch-android-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevdza-san%2Fstopwatch-android-app/lists"}