Введение:
Если вы ищете введение в SwiftUI, это послужит хорошей отправной точкой.
Это мой опыт изучения/создания первого приложения SwiftUI, которое было создано во время изучения системы компоновки SwiftUI.
Я попытался создать приложение для iPad (поскольку iPhone не подходит для этого приложения), которое отображало бы резюме на основе предоставленного ему контента в предполагаемом формате.
Вот репозиторий Github приложения для iPad с открытым исходным кодом для получения полной информации.
Весь шаблон приложения/резюме основан на этом шаблоне резюме с добавлением всего нескольких настроек.
Итак, теперь у нас есть готовый пользовательский интерфейс для приложения, которое мы собираемся разработать с помощью SwiftUI.
Кроме того, я планировал сделать пару дополнений относительно требований к приложению:
- Тематика. Все приложение должно быть легко "Тематически настраиваемым", т. е. легко настраивать/применять темы.
- Значки: приложение не должно использовать никакие изображения и должно использовать только шрифты, чтобы оно легко адаптировалось к нашему требованию Темы. Все шрифты, используемые в проекте, взяты отсюда.
- Данные. И, конечно же, данные должны быть настраиваемыми, поэтому мы извлекаем данные возобновления из отдельного файла json, встроенного в проект.
Мои заметки об обучении/пробах:
- Компоненты SwiftUI, такие как View, Text, Image и т. д., являются основными строительными блоками и поддерживаются всеми платформами Apple. Эта шпаргалка (SwiftUI против UIKit) должна помочь вам быстро приступить к работе.
- SwitUI, похоже, сильно вдохновлен компонентным подходом React. Он позволяет создавать повторно используемые компоненты, которые можно легко использовать в проектах.
- Большая часть моего времени была потрачена на изучение системы компоновки фреймворка, так что именно здесь лежит самая большая кривая обучения.
- Система компоновки SwiftUI начинается с нижней части иерархии представлений и просит каждое дочернее представление расположить или настроить/изменить размер себя в зависимости от границ его родителя, а затем идет дальше вверх по потоку и просит родительское или верхнее представление расположить своих дочерних элементов в пределах своих границ.
- Представления могут быть сложены вертикально, горизонтально, по глубине с помощью VStack, HStack и ZStack соответственно.
- Такие модификаторы, как resizable, backgroundColor и т. д., можно использовать для изменения свойств представления, и самое лучшее в них то, что все они могут быть объединены в цепочку с декларативным характером API, чтобы иметь краткий синтаксис для достижения сложного пользовательского интерфейса с минимальной кодовой базой.
- «Разделитель» используется для достижения гибкого макета, т. е. при размещении между двумя представлениями, он занимает все оставшееся пространство, кроме пространства, занимаемого двумя компонентами пользовательского интерфейса в любых стеках.
- Модификаторы «frame» и «padding» позволяют нам определять размер и поля представления.
Другие примечания:
- Самое интересное здесь — это @State, @Binding и другие оболочки свойств SwiftUI, а также возможности их использования с платформой Combine.
- Есть еще некоторые проблемы, с которыми я сталкиваюсь, любая помощь этому новичку приветствуется;)
- Теперь это приложение легко переносимо и на Mac.
Вывод:
Я надеюсь, что это приложение для iPad поможет кому-то быстро освоить основы компоновки компонентов пользовательского интерфейса с использованием инфраструктуры SwiftUI, а также послужит инструментом для новых соискателей.
Первоначально опубликовано на https://saru2020.blogspot.com 10 апреля 2020 г.