-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Labels
refactoringTechnical improvementsTechnical improvements
Milestone
Description
Надо переписать левую панель со структурой проекта на SwiftUI. Так мы сможем показывать ее не только в приложении для мака, но и на айпаде и в очках на visionOS.
Сначала делаем копию для айфона-айпада, а когда все напишем, то можно и на маке будет использовать.
Повторить плоскую структуру
- Сделать базовую инфраструктуру для фичи: на айпаде она слева, можно показывать и скрывать
- Использовать UISplitViewController и понять подходит ли supplementary-стиль для настроек
- Прокинуть объект Frame, относительно которого надо рисовать.
- Перерисовывать NavigatorView когда добавляют или удаляют элементы
- Научиться рисовать содержимое одного из фреймов в виде плоского списка.
- В качестве описания использовать раскрашенное описание элемента
- Проверить, что тинт правильно срабатывает: когда окно неактивно, то все раскрашенные элементы должны превратиться в серые. Не знаю насколько правильно это ваще умеет работать в SwiftUI
- Переписать на SwiftUI классы из
VoiceOver Designer -> Features -> NavigatorвShared -> Sources -> Navigator. Можно начать изучать отNavigatorController, для него есть заглушкаNavigatorView. - Проверить как работает на айфоне. Наверно, поведение нужно хитрое: при открытии документа показывать канвас, но добавить кнопку открытия списка элементов в навбар. Ну или просто никогда не показывать :D
- Выбор элемента в навигаторе должен открывать настройка элемента (наверно, так на маке работает, но не уверен, что это паттерн для айпада)
- Выбор фрейма должен загружать фрейм в канвас, потому что сейчас айпад работает только с одним фреймом за раз. Возможно, в будущем это стоит переделать, но пока проще так
Иерархическая структура
- Можем показать всю вложенность: фреймы, контейнеры, элементы. Наверно, фрейм должен переключаться через кнопка в навигейшен-баре (про это задачка ниже), а вот список должен показывать все элементы. Контейнеры можно сделать отдельными секциями, а вложенности контейнеров в контейнеры у нас нет пока.
Какая-то статья про collapsable
Несколько фреймвов
- В артборде может быть несколько фреймов, надо переключать их с помощью кнопок < и > в навигейшен баре.
- Рядом сделать кнопку добавления нового фрейма через добавление картинки
Поддержка перетаскивания
- Документация Apple
- Kodeko
- Medium
- После перетаскивания надо вызывать метод у presenter, который правильно разложить объект в структуре
- Если переместить строку после или перед элементом, то она должен переместиться туда
- Если перетащить одну строчку на другую, то они завернутся в контейнер
- Можно переность элементы между фреймами
- Поддержать редактирование списка:
- Могу удалять элементы или выдели
- Могу выбрать несколько элементов, должен появиться тулбар, в котором будет кнопка «объединить»
- Интегрировать в macOS версию и удалить старый пакет Navigator
Баги для Миши
- Обновлять канвас после изменений в настройках
- Визуально не выделяется выбранный элемент в канвасе
- После добавления элемента он не появляется в навигаторе
- Добавленный элемент сохраняется после закрытия документа, а вот изменение его свойств — нет
- Окно настроек нельзя интерактивно закрыть
- Углы у настроек не скруглились (но виновата в этом NavigationView в SwiftUI, лол)
- Распознавание текста не запускается при выборе элемента
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
refactoringTechnical improvementsTechnical improvements
Type
Projects
Status
No status