v1.0.4
YanDisk
Нативный SwiftUI-клиент Яндекс.Диска для macOS (Apple Silicon).
Возможности
- Авторизация OAuth (токен в Keychain)
- Просмотр Диска: все файлы и папки, «Недавние», «Корзина»
- Избранное: правый клик → «В избранное» (метка хранится локально, звезда в списке)
- Доступные мне: папки, к которым доступ дали другие пользователи (обнаружение по полю
share.is_owned == falseв листинге API; права rw/r в контекстном меню) - Чтение / скачивание, загрузка (кнопка и drag-and-drop)
- Копирование, перемещение, переименование, дублирование
- Удаление в Корзину, восстановление, очистка Корзины
- Синхронизация
~/Yandex.Disk: Везде / Только на компьютере / Только в облаке (по умолчанию — «Только в облаке») - Общий доступ: ссылка, права, пароль, срок действия
- Иконка приложения подстраивается под тему системы (светлая/тёмная), иконка в меню-баре
План доработок
Аудит кода, найденные неоптимальные места и порядок работ — в ПРАВКИ.md. Актуальные задачи также заведены в Issues Gitea: https://git.statix.sbs/akhmed/YanDisk/issues
Сборка
cd /Users/statix/Projects/YanDisk
./build.sh
open .build/YanDisk.app
Установка в /Applications:
rm -rf /Applications/YanDisk.app
cp -R .build/YanDisk.app /Applications/
codesign --force --deep --sign - /Applications/YanDisk.app
Smoke-тесты (сборка + проверка OAuth-парсинга, кодирования путей и бандла):
./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)
Пересборка иконки:
./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
Авторизация
- Иконка облака → Добавить аккаунт
- Войти через Яндекс
- Вставить
access_token
Description
macOS-клиент Яндекс.Диска (SwiftUI, REST API): файлы, синхронизация, общий доступ
5.9 MiB