173 lines
6.8 KiB
Markdown
173 lines
6.8 KiB
Markdown
# MobileMkch
|
||
|
||
Мобильный клиент для борды mkch.pooziqo.xyz
|
||
|
||
## Возможности
|
||
|
||
- Просмотр всех досок Мкача
|
||
- Просмотр тредов в каждой доске
|
||
- Просмотр деталей треда и комментариев
|
||
- Поддержка изображений и видео
|
||
- Темная/светлая тема
|
||
- Навигация с кнопкой "Назад"
|
||
- Улучшенный заголовок с статическими кнопками
|
||
- Система настроек с сохранением:
|
||
- Тема (темная/светлая)
|
||
- Последняя посещенная доска
|
||
- Автообновление
|
||
- Показ файлов
|
||
- Компактный режим
|
||
- **Полная поддержка постинга:**
|
||
- Аутентификация по ключу
|
||
- Аутентификация по passcode
|
||
- Создание тредов
|
||
- Добавление комментариев
|
||
- Автоматическое обновление после постинга
|
||
- Кнопка "Обновить" для ручного обновления
|
||
- Поддержка Android и iOS
|
||
- **Оптимизации для мобильных устройств:**
|
||
- Кэширование данных для быстрой загрузки
|
||
- Дебаунсинг UI обновлений
|
||
- Оптимизация потребления батареи
|
||
- Агрессивная сборка мусора на мобильных
|
||
- Ограничение частоты сетевых запросов
|
||
- **Многостраничность для списка тредов:**
|
||
- Настраиваемый размер страницы (5-20 тредов)
|
||
- Навигация между страницами
|
||
- Ограничение тредов для больших досок
|
||
- **Управление кэшем:**
|
||
- Очистка кэша досок
|
||
- Очистка кэша тредов для всех досок
|
||
- Очистка кэша деталей тредов
|
||
- Очистка всего кэша
|
||
|
||
## Аутентификация и постинг
|
||
|
||
### Настройка аутентификации
|
||
|
||
1. Откройте настройки в приложении
|
||
2. Введите ключ аутентификации (если есть)
|
||
3. Введите passcode для постинга (если есть)
|
||
4. Используйте кнопки "Тест ключа" и "Тест passcode" для проверки
|
||
|
||
### Создание тредов
|
||
|
||
1. Перейдите в нужную доску
|
||
2. Нажмите "Создать тред"
|
||
3. Заполните заголовок и текст
|
||
4. Нажмите "Создать тред"
|
||
|
||
### Добавление комментариев
|
||
|
||
1. Откройте тред
|
||
2. Нажмите "Добавить комментарий"
|
||
3. Введите текст комментария
|
||
4. Нажмите "Добавить комментарий"
|
||
|
||
### Автоматическое обновление
|
||
|
||
- После создания треда автоматически обновляется список тредов
|
||
- После добавления комментария автоматически обновляется список комментариев
|
||
- Используйте кнопку "Обновить" для принудительного обновления
|
||
|
||
## Сборка
|
||
|
||
### Desktop
|
||
|
||
```bash
|
||
go build
|
||
./MobileMkch
|
||
```
|
||
|
||
### Android
|
||
|
||
1. Установите Android Studio (включает SDK и NDK):
|
||
```bash
|
||
# macOS
|
||
brew install --cask android-studio
|
||
|
||
# Или скачайте с https://developer.android.com/studio
|
||
```
|
||
|
||
2. Установите Fyne CLI:
|
||
```bash
|
||
go install fyne.io/fyne/v2/cmd/fyne@latest
|
||
```
|
||
|
||
3. Настройте переменные окружения:
|
||
```bash
|
||
export ANDROID_HOME=$HOME/Library/Android/sdk
|
||
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk
|
||
```
|
||
|
||
4. Соберите APK:
|
||
```bash
|
||
fyne package --os android --app-id com.mkch.mobile
|
||
```
|
||
|
||
5. Установите на устройство:
|
||
```bash
|
||
adb install MobileMkch.apk
|
||
```
|
||
|
||
### iOS
|
||
|
||
1. Установите Xcode из App Store
|
||
|
||
2. Установите Fyne CLI:
|
||
```bash
|
||
go install fyne.io/fyne/v2/cmd/fyne@latest
|
||
```
|
||
|
||
3. Соберите IPA:
|
||
```bash
|
||
fyne package --os ios --app-id com.mkch.mobile
|
||
```
|
||
|
||
4. Откройте в Xcode:
|
||
```bash
|
||
open MobileMkch.xcodeproj
|
||
```
|
||
|
||
5. Подпишите и установите через Xcode или TestFlight
|
||
|
||
**✅ iOS И Android сборка протестирована и работает!**
|
||
|
||
## Требования
|
||
|
||
- Go 1.24+
|
||
- Fyne v2.6.2
|
||
- Android SDK (для Android)
|
||
- Xcode (для iOS)
|
||
|
||
## Технологии
|
||
|
||
- Go 1.24+
|
||
- Fyne v2.6.2
|
||
- HTTP клиент для API с поддержкой сессий
|
||
- Система кэширования с TTL
|
||
|
||
## Структура
|
||
|
||
- `main.go` - точка входа
|
||
- `api/client.go` - HTTP клиент для mkch API с поддержкой аутентификации
|
||
- `models/models.go` - структуры данных
|
||
- `settings/settings.go` - система настроек
|
||
- `cache/cache.go` - система кэширования с поддержкой пагинации
|
||
- `ui/` - пользовательский интерфейс
|
||
- `manager.go` - управление экранами
|
||
- `boards_screen.go` - список досок
|
||
- `threads_screen.go` - треды доски
|
||
- `thread_detail_screen.go` - детали треда с кнопкой обновления
|
||
- `create_thread_screen.go` - создание тредов
|
||
- `add_comment_screen.go` - добавление комментариев
|
||
- `settings_screen.go` - экран настроек с тестированием аутентификации
|
||
- `optimization.go` - утилиты оптимизации
|
||
- `mobile_optimizations.go` - оптимизации для мобильных устройств
|
||
|
||
## Интересный факт!
|
||
|
||
Но данный клиент имеет обратную совместимость с поддержкой ПК! А настройки хранятся в файле `settings.json` в папке `~/.config/mkch/` и вы можете их использовать на ПК! Я оффициально поддерживаю этот функционал потому что клиент первым запускается на моем ПК, а только затем тестируется на мобильных устройствах.
|
||
|
||
Сборка проста, `go build` и запускайте `./MobileMkch` (или с .exe если винда)
|
||
P.S. на Маках вообще должно быть просто fyne package и у вас будет .app файл, вроде запускается, тестово залью на [relays.lol/releases](https://relays.lol/releases) для ARM бояр. |