MobileMkch/README.md

173 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 бояр.