Создайте набор инструментов разработчика для терминала Swift с помощью TUIkit | Pomodoro, Git Sta...
Stewart Lynch
0:00 / 0:00
Создайте набор инструментов разработчика для терминала Swift с помощью TUIkit | Pomodoro, Git Sta...
829 просмотров · 3 месяца назад
Stewart Lynch
27 тыс. подписчиков
829 просмотров · 3 месяца назад
В этом видео мы создаём DevToolkit — полностью интерактивное многопанельное терминальное приложение, написанное целиком на Swift с использованием TUIkit. Если вы смотрели первую часть этой серии, где мы настроили TUIkit и создали наше первое приложение, то здесь начинается самое интересное.
Мы используем NavigationSplitView для создания интерфейса с боковой панелью и тремя отдельными панелями:
🍅 Таймер Pomodoro — настраиваемый таймер обратного отсчёта от 5 до 60 минут с элементами управления запуском, паузой и сбросом. Установленная вами продолжительность сохраняется между сессиями с помощью @AppStorage, а сам таймер использует встроенный в TUIkit PulseTimer, поэтому ручное запускать рендеринг не требуется.
🔀 Панель состояния Git — отображение состояния Git в текущей рабочей директории. Она показывает название проекта, активную ветку, сообщение последнего коммита и количество изменённых файлов — при этом «грязные» рабочие деревья выделены красным цветом с помощью команд оболочки, вызываемых непосредственно из Swift.
🍅 📦 Трекер релизов проекта — панель состояния для каждого проекта, где вы можете регистрировать, находится ли ваш проект в разработке, TestFlight или выпущен, а также номер версии, дату выпуска и комментарий. Все данные сохраняются через @AppStorage, используя каталог проекта в качестве уникального ключа.
Попутно мы рассмотрим некоторые важные шаблоны, специфичные для TUIkit, которые отличаются от стандартного SwiftUI — например, почему .onAppear нужен флаг guard, как использовать вычисляемые свойства для обхода ограничений повторной отрисовки состояния и как создавать пользовательские привязки для моделей, поддерживаемых @AppStorage.
Мы также интегрируем пакет Rainbow Swift для добавления цветных заголовков панелей в наш пользовательский интерфейс, и в конце мы компилируем приложение как релизную сборку и устанавливаем его в /usr/local/bin, чтобы оно было доступно из любой директории в вашем терминале.
Если вы разработчик Swift, интересующийся созданием инструментов командной строки и терминала с синтаксисом, похожим на SwiftUI, то это для вас.
Если вы хотите поддержать мою работу, вы можете купить мне кофе :)
https://ko-fi.com/stewartlynch/
Моя рассылка
https://stewartlynch.kit.com
Приложение для Mac для списка каналов (бесплатно)
https://stewartlynch.gumroad.com/l/obsjz
Веб-приложение для списка каналов
https://stewartlynch.github.io/YouTube/
Содержание:
0:00 Введение
1:38 Навигация в режиме SplitView
10:50 Режим Pomodoro View
21:17 Режим Project View
32:18 Режим Update View
44:33 Добавление пакета Rainbow Swift
47:37 Установка приложения
Файлы стартового проекта: Нет
Завершено Проект: https://github.com/StewartLynch/DevTo...
Упомянутые в видео ссылки:
Скрипт оболочки (Gist): https://gist.github.com/StewartLynch/...
Функция загрузки (Gist): https://gist.github.com/StewartLynch/...
Пакет Rainbow: https://github.com/onevcat/Rainbow
Рекомендуемые ресурсы:
Книги Big Mountain Studio
AI Mastery in SwiftUI
https://www.bigmountainstudio.com/ai-...
SwiftUI Views Mastery
https://www.bigmountainstudio.com/adv...
Продвинутое освоение представлений SwiftUI
https://www.bigmountainstudio.com/adv...
Освоение анимаций SwiftUI
https://www.bigmountainstudio.com/ani...
Освоение SwiftData в SwiftUI
https://www.bigmountainstudio.com/swi...
Освоение Combine в SwiftUI
https://www.bigmountainstudio.com/com...
Комплект из 5 книг по SwiftUI
https://www.bigmountainstudio.com/boo...