|
1 | | -# Wessage |
| 1 | +# Wessage (Wear OS Companion) |
2 | 2 |
|
3 | | -Wear OS messaging app focused on fast glance-and-reply workflows with a modern glass style. |
| 3 | +Wessage is a modern, minimal Wear OS messaging companion focused on: |
4 | 4 |
|
5 | | -## Stack |
| 5 | +- fast glance + reply on watch |
| 6 | +- clean glass-style UI |
| 7 | +- local-first sync with your phone app |
6 | 8 |
|
7 | | -- Kotlin `2.2.10` |
8 | | -- AGP `9.1.0` |
9 | | -- Wear Compose Foundation `1.5.6` |
10 | | -- Wear Compose Material 3 `1.5.6` |
11 | | -- Compile SDK `36`, min SDK `29` |
| 9 | +## For Most Users |
12 | 10 |
|
13 | | -## Architecture Notes |
| 11 | +Download from the **Releases** page: |
14 | 12 |
|
15 | | -- Wear-native scaffolding: `AppScaffold -> ScreenScaffold -> ScalingLazyColumn` |
16 | | -- Swipe-back navigation with `BasicSwipeToDismissBox` |
17 | | -- Single source of truth in `MessagingViewModel` with `StateFlow` |
18 | | -- Lifecycle-aware state collection via `collectAsStateWithLifecycle()` |
| 13 | +- https://github.com/celestialtaha/Wessage/releases |
19 | 14 |
|
20 | | -## Releases (Maintainers) |
| 15 | +Install the latest watch APK, open the app once, and keep Bluetooth enabled. |
21 | 16 |
|
22 | | -Releases are generated from tags matching `v*` (for example `v1.1.0`) via GitHub Actions. |
| 17 | +## What You Need |
23 | 18 |
|
24 | | -Typical assets: |
| 19 | +- Android phone with the companion phone app installed |
| 20 | +- A Wear OS watch paired to that phone |
| 21 | +- Bluetooth enabled on both devices |
25 | 22 |
|
26 | | -- `app-debug.apk` |
27 | | -- `app-release-signed.apk` (when signing secrets are configured) |
28 | | -- `app-release-unsigned.apk` (fallback) |
29 | | -- `SHA256SUMS.txt` |
| 23 | +Internet is not required for normal phone-watch message sync once pairing is active. |
| 24 | + |
| 25 | +## Setup in 2 Minutes |
| 26 | + |
| 27 | +1. Install the latest phone app release (from `celestialtaha/Messages`). |
| 28 | +2. Install the latest watch app release from this repo. |
| 29 | +3. Open the phone app, then open Wessage on the watch. |
| 30 | +4. Grant permissions on phone/watch when prompted. |
| 31 | +5. Wait a few seconds for initial thread sync. |
| 32 | + |
| 33 | +## Privacy |
| 34 | + |
| 35 | +- No separate cloud account is required. |
| 36 | +- Sync is phone <-> watch over Wear OS data layer. |
| 37 | +- Data is not sent to third-party servers by this app for core sync. |
30 | 38 |
|
31 | | -Release flow: |
| 39 | +## Troubleshooting |
32 | 40 |
|
33 | | -1. Bump version in `app/build.gradle.kts`. |
34 | | -2. Push changes to `main`. |
35 | | -3. Tag and push: |
| 41 | +- No messages on watch: |
| 42 | + - Open both apps once (phone first, then watch). |
| 43 | + - Confirm watch is paired and connected. |
| 44 | + - Keep Bluetooth on. |
| 45 | +- Slow first sync: |
| 46 | + - Initial sync can take longer than incremental updates. |
| 47 | + |
| 48 | +## Maintainers: Release Process |
| 49 | + |
| 50 | +Tag any commit with `v*` (example `v1.0.0`) to trigger release workflow: |
36 | 51 |
|
37 | 52 | ```bash |
38 | | -git tag v1.1.0 |
39 | | -git push origin v1.1.0 |
| 53 | +git tag v1.0.0 |
| 54 | +git push origin v1.0.0 |
40 | 55 | ``` |
41 | 56 |
|
42 | | -4. Workflow creates a GitHub Release and uploads APK assets. |
43 | | - |
44 | | -### Optional Signing Secrets |
| 57 | +Workflow outputs: |
45 | 58 |
|
46 | | -- `ANDROID_SIGNING_KEY_BASE64` |
47 | | -- `ANDROID_ALIAS` |
48 | | -- `ANDROID_KEYSTORE_PASSWORD` |
49 | | -- `ANDROID_KEY_PASSWORD` |
| 59 | +- `app-debug.apk` |
| 60 | +- `app-release-signed.apk` (if secrets exist) |
| 61 | +- `app-release-unsigned.apk` (fallback) |
| 62 | +- `SHA256SUMS.txt` |
0 commit comments