docs: подробный README (разбор проекта при переносе в Gitea)

Старый README сохранён как README.upstream.md.
Этот коммит содержится в:
2026-08-20 04:18:35 +09:00
родитель 3b6b87a27a
Коммит 9f1e3c8043
2 изменённых файлов: 78 добавлений и 17 удалений
+51 -17
Просмотреть файл
@@ -1,27 +1,61 @@
# [Traccar Manager for Android](https://www.traccar.org/manager)
# traccar-manager-android (форк)
[![Get it on Google Play](http://www.tananaev.com/badges/google-play.svg)](https://play.google.com/store/apps/details?id=org.traccar.manager)
Android-приложение Traccar Manager — тонкий клиент-обёртка над веб-интерфейсом сервера Traccar. Приложение спрашивает адрес сервера, проверяет его через `GET /api/server` и дальше показывает штатный веб-интерфейс в WebView, добавляя нативные возможности: push-уведомления через Firebase, вход по биометрии, скачивание отчётов, обработку внешних ссылок и передачу координат телефона в веб-приложение.
## Overview
Форк сделан как резервная копия официального репозитория [traccar/traccar-manager-android](https://github.com/traccar/traccar-manager-android) (автор — Anton Tananaev) в самохостовом Gitea: приложение используется вместе со своим сервером Traccar, и независимая копия исходников позволяет пересобрать APK без доступа к GitHub.
Traccar Manager is a mobile application to manage GPS tracking devices. It requires a Traccar server instance to work.
Документация оригинала (ссылка на Google Play, команда, лицензия Apache 2.0) сохранена в [README.upstream.md](README.upstream.md).
## Team
## Отличия от оригинала
- Anton Tananaev ([anton@traccar.org](mailto:anton@traccar.org))
Изменений нет. Все 106 коммитов принадлежат авторам оригинала (102 — Anton Tananaev, 4 — внешние контрибьюторы). Собственных правок владельца форка в истории нет. Форк взят как резервная копия.
## License
## Стек
Apache License, Version 2.0
- Kotlin 1.8.0, Android SDK (compileSdk/targetSdk 33, minSdk 19)
- Gradle 7.6 + Android Gradle Plugin 7.4.1
- AndroidX: `core-ktx` 1.9.0, `preference-ktx` 1.2.0, `lifecycle-viewmodel-ktx` 2.5.1, `localbroadcastmanager` 1.1.0, `biometric-ktx` 1.2.0-alpha05, `multidex` 2.0.1, Material Components 1.7.0
- Flavor `google`: Firebase BOM 29.0.3 — Analytics, Crashlytics, Cloud Messaging (push-уведомления)
- Android WebView + JavaScript-мост (`@JavascriptInterface`)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
## Структура
http://www.apache.org/licenses/LICENSE-2.0
| Путь | Назначение |
|---|---|
| `app/src/main/java/org/traccar/manager/MainActivity.kt` | Хост-активность: если адрес сервера ещё не сохранён — показывает `StartFragment`, иначе `MainFragment` |
| `app/src/main/java/org/traccar/manager/StartFragment.kt` | Экран первого запуска: ввод адреса сервера и его проверка запросом `api/server` |
| `app/src/main/java/org/traccar/manager/MainFragment.kt` | Основной экран: WebView с веб-интерфейсом Traccar, мост `postMessage` (события `login`/`authentication`/`logout`/`server`), скачивание отчётов через DownloadManager, открытие внешних ссылок, разрешения на геолокацию и уведомления |
| `app/src/main/java/org/traccar/manager/SecurityManager.kt` | Хранение токена сессии и подтверждение входа через `BiometricPrompt` |
| `app/src/google/java/org/traccar/manager/ManagerMessagingService.kt` | Приём push-уведомлений Firebase (в том числе payload с `eventId`) |
| `app/src/google/java/org/traccar/manager/GoogleMainApplication.kt` | Инициализация Firebase для flavor `google` |
| `app/src/main/res/layout/` | Всего два макета: `activity_main.xml` и `fragment_start.xml` |
| `app/src/main/res/xml/network_security_config.xml` | Разрешён нешифрованный HTTP-трафик (для серверов без TLS) |
| `.github/` | Только CONTRIBUTING, FUNDING и шаблоны issue. CI-workflow в репозитории нет |
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Собственного UI управления устройствами в приложении нет — вся функциональность приходит с сервера в виде веб-страницы.
## Как собрать/запустить
```bash
./gradlew assembleRegularDebug # сборка без сервисов Google
./gradlew assembleRegularRelease
./gradlew assembleGoogleRelease # вариант с Firebase (push-уведомления)
```
Два product flavor'а: `regular` (по умолчанию) и `google`. Для `google`-сборки задача `copyJson` копирует `google-services.json` из внешнего каталога `../../environment/google-services/traccar-manager-android.json` — этого каталога в репозитории нет, потребуется собственный файл Firebase, иначе собирать flavor `regular`. Unit-тестов в проекте нет.
## Конфигурация
- `url` (SharedPreferences, `MainActivity.PREFERENCE_URL`) — адрес сервера Traccar. Вводится пользователем на первом экране, может быть переустановлен из веб-интерфейса сообщением `server` через JS-мост. С 2022 года по умолчанию подставляется схема HTTPS.
- Токен сессии сохраняется `SecurityManager` и выдаётся веб-приложению только после подтверждения биометрией.
- Сборочные параметры: `applicationId org.traccar.manager`, `versionCode 36`, `versionName 4.0`, `gradle.properties` содержит только `android.useAndroidX=true`.
Секретов в репозитории нет: ключи Firebase подставляются извне при сборке.
## Состояние
Рабочий, но копия устаревшая: 106 коммитов, последний — 10.02.2023 (Anton Tananaev, «Update project and version»), версия приложения 4.0 (versionCode 36). Оригинал с тех пор развивался дальше, форк не синхронизировали. Собственных коммитов владельца форка нет, поэтому дата последней своей правки отсутствует.
## Что не доделано
Меток TODO/FIXME и заглушек в коде нет — это релизная версия официального приложения. Замечания по коду: используются устаревшие API (`AsyncTask` в `StartFragment`, `android.app.Fragment`, файлы помечены `@file:Suppress("DEPRECATION")`), `biometric-ktx` подключён alpha-версией. Применительно к форку не хватает синхронизации с upstream: копия отстаёт от оригинала более чем на три года.
+27
Просмотреть файл
@@ -0,0 +1,27 @@
# [Traccar Manager for Android](https://www.traccar.org/manager)
[![Get it on Google Play](http://www.tananaev.com/badges/google-play.svg)](https://play.google.com/store/apps/details?id=org.traccar.manager)
## Overview
Traccar Manager is a mobile application to manage GPS tracking devices. It requires a Traccar server instance to work.
## Team
- Anton Tananaev ([anton@traccar.org](mailto:anton@traccar.org))
## License
Apache License, Version 2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.