Введение:

Если вы ищете введение в 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 г.