https://github.com/w2sv/wifi-widget
Android app providing a fully configurable widget for the monitoring of your WiFi connection details.
https://github.com/w2sv/wifi-widget
android android-application connectivity devops fdroid jetpack-compose kotlin networking widget wifi
Last synced: 11 months ago
JSON representation
Android app providing a fully configurable widget for the monitoring of your WiFi connection details.
- Host: GitHub
- URL: https://github.com/w2sv/wifi-widget
- Owner: w2sv
- License: gpl-3.0
- Created: 2022-11-11T07:46:00.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-10T03:59:20.000Z (almost 2 years ago)
- Last Synced: 2024-04-10T05:04:51.642Z (almost 2 years ago)
- Topics: android, android-application, connectivity, devops, fdroid, jetpack-compose, kotlin, networking, widget, wifi
- Language: Kotlin
- Homepage: https://play.google.com/store/apps/details?id=com.w2sv.wifiwidget
- Size: 16.7 MB
- Stars: 117
- Watchers: 4
- Forks: 5
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
WiFi Widget

------
Android app providing a fully configurable widget for the monitoring of your WiFi connection details.
------
Screenshots
|  |  |  |
|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
|  |  |  |
Download
Features
### In-App
- Neat Material 3 Design, featuring smooth animations wherever they're appropriate
- Configurable theme:
- Light / dark
- Dynamic / static colors
- AMOLED black
- Adaptive layouts for landscape & portrait mode
- Live WiFi Status display with property copy-to-clipboard functionality on click
### Widget
- Property copy-to-clipboard functionality on click
- **Configuration options:**
- Appearance:
- Size
- from 2x1 to fullscreen
- Light/dark theme with static/dynamic, or entirely custom colors
- Background opacity
- Font size
- Property value alignment (left | right)
- Displayed properties:
- SSID
- BSSID
- IP Addresses:
- Loopback
- Site Local
- Link Local
- Unique Local Address
- Multicast
- Global Unicast
- Public
- fetched from [api.ipify.org](https://api.ipify.org)
---
- For address types supporting IPv4 & IPv6, you may choose which versions to include (IPv4 | Ipv6 | both)
- Display of prefix lengths (IPv4 & IPv6), and/or subnet masks (IPv4 only)
- Frequency
- Channel
- Link Speed
- RSSI
- Signal Strength
- Standard
- WiFi Generation
- Security Protocol
- Gateway
- DNS(s)
- DHCP
- NAT64 Prefix
- From [ip-api.com/](https://ip-api.com/)
- Location:
- Zip Code
- District
- City
- Region
- Country
- Continent
- GPS Location
- ASN
- ISP
- Property appearance order
- Bottom bar elements inclusion:
- Last refresh date time
- Buttons:
- Refresh data
- Open WiFi settings
- Open widget settings
- Data refreshing:
- Interval
- Whether to refresh on low battery
Tech Stack
- Kotlin only
- Jetpack Compose for in-app UI, xml for widget UI
- Coroutines & flows
- [Dagger-Hilt](https://dagger.dev/hilt/) for dependency injection
- [OkHttp](https://square.github.io/okhttp/) for network requests, [kotlinx serialization](https://github.com/Kotlin/kotlinx.serialization) for JSON parsing
- [compose-destinations](https://github.com/raamcosta/compose-destinations) for navigation
- Proto & Preferences data store
- JUnit 4, [mockito](https://github.com/mockito/mockito), [robolectric](https://robolectric.org/) & [turbine](https://github.com/cashapp/turbine) for unit testing
- JUnit 4 Compose android (instrumented) testing
- Androidx Macro benchmarking & baseline profile generation with app-specific usage journey, implemented with [UI Automator](https://developer.android.com/training/testing/other-components/ui-automator)
Architecture
- Multi-modular build
- Convention plugins for gradle code reuse, whilst keeping modules independent from one another
- "Clean architecture" (or however you want to call it), with the UI and data layers depending on the domain layer, which exposes the data model and repository interfaces
Dependency Graph
Credits
Logo foreground by Hilmy Abiyyu Asad taken
from here,
where it is licensed
under Creative Commons(Attribution 3.0 unported).
Donations
License
GPL-3.0 License © w2sv [2022 - Present]




