README: обновлено описание v2.0 (расширенный маршрут, WebView)

This commit is contained in:
2026-09-27 09:07:46 +00:00
parent b0d47f488d
commit 3e61ae7e74

View File

@@ -1,78 +1,55 @@
# Автобус №127 — Расписание (Android)
[![Лицензия: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](#лицензия)
Приложение для Android с расписанием автобуса **№127** по маршруту
**Полярные Зори ⇄ Зашеек** (Мурманская область, Кандалакшский район).
Написано на **Kotlin** с использованием **Android SDK** и Material Components.
Тёмная тема, аккуратные карточки и «чипы» расписания.
Приложение с расписанием автобуса **№127** по маршруту
**Кандалакша — Полярные Зори — Зашеек** (Мурманская область).
## Возможности
- Расписание на **будни**, **субботу** и **воскресенье** (переключатель вкладок).
- Блок **«Ближайшие рейсы»** — три ближайших отправления с подсчётом
«через N минут» (время по **МСК**, обновляется каждые 30 сек).
- Полные списки рейсов **туда** (ПЗ → Зашеек) и **обратно** (Зашеек → ПЗ),
аккуратно переносящиеся по 5 в строке.
- Тёмная тема (#121212) с оранжево-красным акцентом.
- Адаптивная иконка-автобус (Adaptive Icon).
- Живые часы местного времени (МСК) в шапке.
## Скриншот
<sub>Иконка приложения — стилизованный автобус на градиентном фоне.</sub>
- **Выбор остановки** — Кандалакша / Полярные Зори / Зашеек. При выборе
показываются доступные направления (куда можно уехать).
- **Ближайшие рейсы** — по 3 на каждое направление, с подсчётом
«через N ч M мин» (время по **МСК**, обновляется каждые 30 сек).
- **Автоопределение дня недели** — будни/выходные.
- **Полное расписание** — по кнопке раскрывается вся таблица
(4 остановки: Кандалакша · ПЗ→Зашеек · Зашеек · ПЗ→Кандалакша).
- Тёмная тема, живые часы МСК, подсветка ближайших рейсов (< 15 мин).
## Технические данные
| Параметр | Значение |
|-----------------|-----------------------------------|
| Язык | Kotlin 1.9.22 |
| Минимальный SDK | 26 (Android 8.0) |
| Целевой SDK | 34 (Android 14) |
| Сборка | Gradle 8.6 + Android Gradle Plugin 8.2.2 |
| UI | Material Components, ConstraintLayout |
## Сборка
Проект собирается системным Gradle (на хосте `192.168.1.46` gradle распакован
в `~/BusSchedule127/gradle-8.6`):
```bash
export ANDROID_HOME=~/Android/Sdk
export JAVA_HOME=/usr
export PATH=$PATH:~/BusSchedule127/gradle-8.6/bin
cd BusSchedule127
gradle clean assembleRelease --no-daemon
```
Подписанный APK появится в:
`app/build/outputs/apk/release/app-release.apk`
> Для подписи используется keystore `~/bus127.keystore` (alias `bus127`).
> Секретные ключи в репозиторий не включены — генерируйте свои
> через `keytool` перед релизной сборкой.
| Параметр | Значение |
|-----------------|------------------------------|
| Тип | WebView-обёртка (HTML/JS) |
| Минимальный SDK | 26 (Android 8.0) |
| Целевой SDK | 34 (Android 14) |
| Сборка | Gradle 8.6 + AGP 8.2.2 |
| Подпись | keystore `~/bus127.keystore` (alias `bus127`) |
## Структура
```
BusSchedule127/
apk-webview/ # исходники APK (WebView)
├── app/
│ ├── build.gradle
│ └── src/main/
│ ├── AndroidManifest.xml
│ ├── java/ru/ua1zbe/bus127/MainActivity.kt
│ └── res/
│ ├── drawable/ # фоны, чипы, иконка-автобус
│ ├── layout/ # activity_main.xml
│ ├── mipmap-anydpi-v26/ # адаптивная иконка
│ └── values/ # colors, strings, themes
├── build.gradle
├── settings.gradle
├── gradle.properties
└── README.md
│ ├── java/ru/ua1zbe/bus127/MainActivity.java
│ ├── assets/index.html # интерфейс (HTML/JS)
│ └── res/values/strings.xml
└── settings.gradle, build.gradle, gradle.properties
web/index.html # веб-версия (та же страница, для браузера)
```
## Сборка
```bash
export JAVA_HOME=$HOME/jdk-17.0.20.1+1
export ANDROID_HOME=$HOME/Android/Sdk
cd apk-webview
~/gradle-8.6/bin/gradle assembleRelease --no-daemon
```
Готовый APK — в [релизах](../../releases) и в репозитории `android_apk`.
## Лицензия
MIT — свободное использование и модификация.
MIT.