akhmed 9098340f2a YanDisk v1.0.1: тёмная иконка по теме системы, вкладки (Скриншоты скрыт, Файлы→Доступные мне), синк по умолчанию 'В облаке', ПРАВКИ.md
- Иконка: AppIconDark.icns + переключение Dock-иконки по effectiveAppearance (KVO)
- Сайдбар: убран 'Скриншоты', 'Файлы' → 'Доступные мне' (заглушка), первая вкладка — все файлы и папки
- SyncPolicyStore.globalMode по умолчанию .cloudOnly ('В облаке')
- build.sh/smoke_test.sh: SDKROOT из Xcode (фикс SDK-конфликта тулчейна 6.3.3/SDK 6.4)
- ПРАВКИ.md: полный аудит и план доработок
2026-09-15 21:16:22 +03:00

YanDisk

Нативный SwiftUI-клиент Яндекс.Диска для macOS (Apple Silicon).

Возможности

  • Авторизация OAuth
  • Просмотр Диска: папки, файлы, «Недавние», «Корзина»
  • Чтение / скачивание, загрузка (кнопка и drag-and-drop)
  • Копирование, перемещение, переименование, дублирование
  • Удаление в Корзину, восстановление, очистка Корзины
  • Синхронизация ~/Yandex.Disk: Везде / Только на компьютере / Только в облаке
  • Общий доступ: ссылка, права, пароль, срок действия
  • Иконка в меню-баре, светлая и тёмная темы

Сборка

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

Иконка

Исходники: icons/Icon-iOS-*.png (1024×1024).
Собранные ресурсы:

  • Resources/AppIcon.icns — Dock/Finder
  • Resources/Assets.xcassets/AppIcon.appiconset — варианты light/dark (HIG)

Пересборка иконки:

./scripts/generate_icons.sh

Темы

Настройки → Основные → Тема: Как в системе / Светлая / Тёмная.
Значение хранится в AppStorage("Appearance").

Структура

Sources/YanDisk/
  App/     точка входа, AppDelegate, окна
  Core/    API, OAuth, Keychain, модели, AppStore
  Sync/    движок синхронизации
  UI/      меню-бар, браузер, шаринг, настройки, вход
icons/     исходные PNG иконки
Resources/ Info.plist, AppIcon.icns, Assets.xcassets

Авторизация

  1. Иконка облака → Добавить аккаунт
  2. Войти через Яндекс
  3. Вставить access_token
S
Description
macOS-клиент Яндекс.Диска (SwiftUI, REST API): файлы, синхронизация, общий доступ
Readme
5.9 MiB
2026-09-15 22:34:27 +03:00
Languages
Swift 94.4%
Shell 5.6%