Files
YanDisk/README.md
T
akhmed 19e8360712 v1.0.2: Избранное (метка + вкладка), Доступные мне (реестр публичных ссылок)
- Избранное: правый клик → «В избранное», звезда в строке, метки в UserDefaults, вкладка подгружает ресурсы по путям
- Доступные мне: кнопка «+» добавляет публичную ссылку; метаданные через официальный GET /v1/disk/public/resources; открытие/копирование/удаление
- Ограничение платформы задокументировано (ПРАВКИ.md): REST API не отдаёт список shared-with-me
- smoke_test: фикс пути бандла
2026-09-15 22:12:49 +03:00

83 lines
3.5 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.
# YanDisk
Нативный SwiftUI-клиент Яндекс.Диска для macOS (Apple Silicon).
## Возможности
- Авторизация OAuth (токен в Keychain)
- Просмотр Диска: все файлы и папки, «Недавние», «Корзина»
- **Избранное**: правый клик → «В избранное» (метка хранится локально, звезда в списке)
- **Доступные мне**: реестр публичных ссылок, полученных от других пользователей (кнопка «+» на вкладке; открытие в браузере, копирование, удаление)
- Чтение / скачивание, загрузка (кнопка и drag-and-drop)
- Копирование, перемещение, переименование, дублирование
- Удаление в Корзину, восстановление, очистка Корзины
- Синхронизация `~/Yandex.Disk`: **Везде** / **Только на компьютере** / **Только в облаке** (по умолчанию — «Только в облаке»)
- Общий доступ: ссылка, права, пароль, срок действия
- Иконка приложения подстраивается под тему системы (светлая/тёмная), иконка в меню-баре
## План доработок
Аудит кода, найденные неоптимальные места и порядок работ — в [ПРАВКИ.md](ПРАВКИ.md).
Актуальные задачи также заведены в Issues Gitea: https://git.statix.sbs/akhmed/YanDisk/issues
## Сборка
```bash
cd /Users/statix/Projects/YanDisk
./build.sh
open .build/YanDisk.app
```
Установка в `/Applications`:
```bash
rm -rf /Applications/YanDisk.app
cp -R .build/YanDisk.app /Applications/
codesign --force --deep --sign - /Applications/YanDisk.app
```
Smoke-тесты (сборка + проверка OAuth-парсинга, кодирования путей и бандла):
```bash
./smoke_test.sh
```
## Иконка
Исходники: `icons/Icon-iOS-*.png` (1024×1024).
Собранные ресурсы:
- `Resources/AppIcon.icns` — Dock/Finder (светлая тема)
- `Resources/AppIconDark.icns` — Dock/Finder (тёмная тема)
- `Resources/Assets.xcassets/AppIcon.appiconset` — варианты light/dark (HIG)
Пересборка иконки:
```bash
./scripts/generate_icons.sh
```
## Темы
Настройки → Основные → **Тема**: Как в системе / Светлая / Тёмная.
Значение хранится в `AppStorage("Appearance")`. Иконка Dock переключается автоматически
по `effectiveAppearance` (`AppDelegate.updateAppIcon()`).
## Структура
```
Sources/YanDisk/
App/ точка входа, AppDelegate, окна
Core/ API, OAuth, Keychain, модели, AppStore
Sync/ движок синхронизации
UI/ меню-бар, браузер, шаринг, настройки, вход
icons/ исходные PNG иконки
Resources/ Info.plist, AppIcon.icns, AppIconDark.icns, Assets.xcassets
```
## Авторизация
1. Иконка облака → **Добавить аккаунт**
2. **Войти через Яндекс**
3. Вставить `access_token`