Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pmanot/battery
A lightweight multi-platform framework for accessing battery info
https://github.com/pmanot/battery
battery battery-info battery-information battery-level battery-monitor battery-percentage combine-framework reactive-programming state swift
Last synced: 24 days ago
JSON representation
A lightweight multi-platform framework for accessing battery info
- Host: GitHub
- URL: https://github.com/pmanot/battery
- Owner: pmanot
- License: mit
- Created: 2023-03-27T11:11:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-11T19:31:13.000Z (3 months ago)
- Last Synced: 2024-08-11T20:39:02.342Z (3 months ago)
- Topics: battery, battery-info, battery-information, battery-level, battery-monitor, battery-percentage, combine-framework, reactive-programming, state, swift
- Language: Swift
- Homepage:
- Size: 23.4 KB
- Stars: 10
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Battery
A lightweight multi-platform framework for accessing battery info
## Features
* Get battery percentage, charging state, low power mode state
* Observe battery changes through published properties
* Multi-platform support## Installation
You can add the Battery framework to your project via Swift Package Manager.
Simply go to File > Swift Packages > Add Package Dependency and enter the following URL: https://github.com/pmanot/Battery.## Usage
To use Battery, first, import the module:```
import Battery
```Then, create an instance of the Battery class:
```
let battery = Battery()
``````
var cancellables: [AnyCancellable] = []battery.$percentage.sink { percentage in
print("Battery percentage: \(percentage)")
}
.store(in: &cancellables)battery.$state.sink { state in
print("Battery state: \(state)")
}
.store(in: &cancellables)battery.$isLowPowerModeEnabled.sink { isEnabled in
print("Low power mode enabled: \(isEnabled)")
}
.store(in: &cancellables)
```## API
### `Battery`
The main class of the framework. Provides the following properties:- `percentage`: The battery percentage as an integer (0-100)
- `state`: The current state of the battery (BatteryState)
- `isLowPowerModeEnabled`: A boolean indicating whether low power mode is enabled or not### `BatteryState`
An enum representing the state of the battery. It has the following cases:
- `charging`: The battery is currently charging
- `discharging`: The battery is discharging
- `chargedAndPlugged`: The battery is fully charged and plugged in
- `unknown`: The battery state is unknown### `PowerSource`
An enum representing the power source. It has the following cases:- `powerAdapter`: The battery is connected to a power adapter
- `battery`: The battery is running on its own power
- `unknown`: The power source is unknown## License
Battery is available under the MIT license. See the LICENSE file for more info.