SwiftUI
Лайвкодинг: проект с нуля.
Проект с нуля - серия видеозаписей, где с самого нуля и до готового приложения, шаг за шагом, видео за видео, собираемся в онлайне и реализуем по частям.
Технический стек: SwiftUI 3 версии, Core Data, Structured Concurrency, Поддержка кастомной темы, дизайн система, Tuist, REDUX, Unit.
- Remote git.
- Offline first.
- Push notifications.
- Многомодульность.
- Cторизы для рецептов.
- Локализация для нескольких языков.
- Работа с БД: добавление в любимые, работа без интернета.
[Видео 0] Настройка и обсуждение проекта.
Вводное видео - выбирали стек технологий, обсуждали, что следует реализовать, рассматривали дизайн.
Ссылка для просмотра: boosty | телеграмм
[Видео 1] Структура проекта.
Обсудили SF Symbols, и взаимосвязь с иконками из фигмы. Рассмотрели новое, начиная с Xcode 15, решение для работы со строками, локализацией, небольшой обзор на Xcode: работа с логами, ошибками, дебаг меню. Начальная реализация Tusit'a + небольшой обзор на него. Рассмотрели AppDelegate, @main и App protocol. Начало реализации TabView + обсуждение данного элемента.
Ссылка для просмотра: boosty | телеграмм
[Видео 2] Декомпозиция элементов, синтаксис и гит.
В этом видео мы обсудили, какое именование стоит давать для feature-module, реализация toolbar'a и разница между кастомным и системным тулбаром. Обсудили декомпозицию ui элементом, как это влияет на работу, ревью, расширение и дебаггинг.
Под конце обсудили работу с git, рассмотрели интерактивный rebase, важность squash, как изменить уже запущенный commit message, и немного затронули тему pull-request'a.
Ссылка для просмотра: boosty | телеграмм
[Видео 3] Настройка core части для будущей темы.
В этом видео, мы реализовали кастомную тему. При помощи данной тему постараемся реализовать целую дизайн систему, на основе которой у нас будут и шрифты, и цвета, и тени и градиент и дизайн элементы, на подобие тех, что мы уже сделали(см. закреп в ТГ). 🤝
На данном этапе всего-лишь два цвета, но зато наша тема работает, умеет меняться + реализовали DI, при помощи @EnvironmentObject, а заодно посмотрели, зачем вообще он нужен? В чем разница между @Environment и @EnvironmentObject, а может-быть стоит использовать @ObservedObject, что думаете? Пишите ваш фидбек, не забывайте про ваши реакции (лайки / дизлайки / огоньки да голуби), чтобы я понимал, нравится ли вам такой формат, спасибо!
Ссылка для просмотра: boosty | телеграмм
Дизайн система.
Серия обучающих видео-гайдов по реализации элементов для дизайн системы. Начиная от кнопки и заканчивая тоглами / вьюхами. В каждом видео демонстрирую необходимые шаги для достижения корректного поведения, расширяемость, отказоустойчивость и работоспособности на все 136%.
[Design system] Реализация элемента на SwiftUI: Toast 1/3
Ссылка для просмотра: boosty
[Design system] Реализация элемента на SwiftUI: Toast 2/3
Ссылка для просмотра: boosty
[Design system] Реализация элемента на SwiftUI: Toast 3/3
Ссылка для просмотра: boosty
[Design system] Компонент для SwiftUI: от А до Я 1/6
Ссылка для просмотра: boosty
Код ревю: рефакторинг кода.
Серия видео-роликов, в котором в лайм режиме производился рефакторинг на "вандальский код". Видео может-быть длинным, советую смотреть в перемотке х2 / х3-х4.
[Live code] Рефакторинг проекта на SwiftUI | 1/4
Ссылка для просмотра: boosty
[Live code] Рефакторинг проекта на SwiftUI | 2/6
Ссылка для просмотра: boosty
[Live code] Рефакторинг проекта на SwiftUI: Business logic / 3/6
Ссылка для просмотра: boosty
SwiftUI: property wrapper's
Серия обучающих видео про все property wrapper's. Начинается видео всегда с теории и заканчивается практикой + реальные примеры (теория / практика).
State
Разобрали дебаггинг SwiftUI: от оптимального, до минимального.
Рассмотрели анатомию @State:
- Когда использовать.
- Как использовать правильно.
- Какие есть варианты работы и что они в себе несут.
Рассмотрели подробнее работу "initialValue" и "wrappedValue".
Ссылка для просмотра: boosty | notion
Property Wrappers: Environment и EnvironmentObject
В данном воркшопе рассмотрели:
- Использование в проекте, какую проблему решает.
- Как правильно взаимодействовать, какие нюансы могут быть при работе.
- Как заводить кастомные значения, прокидывать и работать.
- На небольшой блок-схеме закрепили все, что разобрали + summary.
Ссылка для просмотра: boosty | notion
Разбор домашних заданий
В этом блоке собраны разборы на домашние задания по SwiftUI. В каждом разборе я объясняю и разбираю, зачем те или иные вещи необходимо реализовать. Блок с описание каждого дз можно посмотреть в ноушене.
Разбор задания № 1 по вёрстке | SwiftUI
Всем привет, это разбор домашнего задания, советую реализовать сначала самим, а потом сравнить с тем как получилось у меня и отписать в комментарии, сколько правок пришлось вам вносить и как вы считаете, они необходимы? Т.е улучшают итоговый вариант?
Ссылка для просмотра: boosty
Разбор задания № 2 по вёрстке | SwiftUI
Всем привет, это разбор второго задания по вёрстке. Здесь мы уже познакомимся с декомпозицией, попробуем её, поработаем с ForEach, а так же увидим, как нам поможет @State при работе с рейтингом.
Ссылка для просмотра: boosty
Разбор задания № 3 по вёрстке | SwiftUI
Всем привет, это разбор третьего задания по вёрстке. Здесь мы научимся располагать элементы в той или иной области корректно, работать с переиспользованием для однотипных элементов, выбирать нужнуюструктуру данных для переиспользования, поймете выигрыш при использовании ZStack, работа с замыканиями.
Ссылка для просмотра: boosty
Разбор задания № 4 по вёрстке | SwiftUI
Всем привет, это разбор четвёртого задания по вёрстке. Здесь мы научимся работать с переиспользуемыми элементами чуть глубже: fixedSize и ideal width / height нам в этом помогут. Выясним как пригодится overlay / background, если у нас вью содержит еще одну вью. Научимся применять несколько модификаторов для группы вью, чтобы не дублировать. На себе покажу, что значит забыть про spacing для V / H стека :D
Поработаем с локализацией при помощи Environment и Localizing.
Ссылка для просмотра: boosty