SwiftUI: особенности, плюсы и минусы и о том, как создают iOS-приложения
SwiftUI — фреймворк для создания iOS-приложений
SwiftUI — это фреймворк с набором готовых библиотек для создания пользовательского интерфейса в iOS-приложениях. Этот инструмент, разработанный Apple, пришёл на смену UIKit — последний почти во всём устраивал разработчиков, но создание элементов в части UI занимало много времени.
SwiftUI не стоит путать со Swift — языком программирования, с помощью которого пишут приложения для платформы Apple. Его используют преимущественно для разработки на платформах iOS и macOS, но также он может пригодиться и на других проектах. Этот язык популярен среди разработчиков: по итогам декабря 2022 года он занял 15-е место в рейтинге «Топ 50 языков программирования» по версии индекса TIOBE.
SwiftUI: особенности разработки, преимущества и недостатки
Вся разработка с помощью SwiftUI происходит в специальной интегрированной среде — Xcode. Она создана компанией Apple специально для работы с платформами iOS, macOS, watchOS и tvOS. Далее разберём, какие есть особенности у SwiftUI.
Плюсы SwiftUI:
- Декларативный подход — это парадигма, при которой главную роль играет решение задачи, и описывается ожидаемый результат, а не способ его получения. Это позволяет лучше сфокусироваться на задаче.
- Скорость вёрстки — адаптировать приложения на свифт в большинстве случаев действительно быстро, однако стоит оговориться, что это справедливо для стандартных экранов. Для особых форматов, таких как Apple TV или Apple Watch потребуется дополнительно адаптировать некоторые элементы вёрстки.
- Живое превью — возможность динамического интерактивного предпросмотра любых макетов пользовательских представлений. В SwiftUI эта функциональность доступна через Xcode.
- Совместимость с UIKit и AppKit. SwiftUI предназначен для работы вместе с UIKit (фреймворком для создания приложений iPhone, iPod touch и iPad) и AppKit (набором инструментов для создания графического интерфейса). Это даёт возможность постепенного внедрения новых UI-элементов в существующие проекты.
- Готовые инструменты для дизайна — с их помощью можно работать на специальном холсте, а все изменения будут синхронизироваться с кодом в соседнем редакторе. Код отображается в виде предварительного просмотра по мере ввода данных. В процессе Свифт разработки можно просматривать созданные элементы в светлой и тёмной темах.
Несмотря на большое количество плюсов, SwiftUI не безупречен. Возможно, его минусы — лишь зоны роста, которые со временем станут не актуальными. Вот недостатки, на которые мы обратили внимание в процессе Swift разработки:
Минусы SwiftUI:
- Недостаточно готовых библиотек — многим разработчикам всё ещё не хватает встроенных функций, которые одинаково хорошо справлялись бы с нужной функциональностью на всех версиях.
- Низкая совместимость версий — каждая новая версия может отличаться от предыдущей, что требует от разработчика дополнительных ресурсов, чтобы переписать часть кода. Справедливости ради отметим, что в последних версиях iOS SwiftUI стал преподносить меньше неприятных сюрпризов.
- Нехватка специалистов — так как SwiftUI считается относительно новым фреймворком, не так много разработчиков, которые долгое время на нём работают и накопили высокий уровень экспертизы. Однако и этот минус можно превратить в преимущество, для тех, кто хочет попробовать свои силы. Потребность в таких специалистах на русском рынке только растёт.
Кейсы использования
На SwiftUI создают приложения для самых разных сфер бизнеса: нефтедобычи, e-commerce и банков. Именно это фреймворк использовался при разработке приложения СберМаркета — лидера в области доставки продуктов в России. Возможности SwiftUI позволяют делать удобные, лёгкие и быстрые приложения с интуитивно понятным управлением и приятным пользовательским опытом.
Наша команда iOS-разработчиков реализует и масштабирует проекты для различных отраслей и компаний. Мы используем возможности SwiftUI в том числе в e-commerce приложениях, так как его характеристики в скорости крайне важны для ритейла.
Средняя оценка наших iOS-приложений в App Store — 4,71.
Опыт Surf: что, кроме SwiftUI, помогает нам в iOS-разработке
В своей работы мы активно используем внутренние разработки и решения для работы с таблицами, сетью, а также библиотеки с самыми распространёнными фичами. У нашей команды iOS-разработчиков большой опыт реализации проектов в самых разных отраслях бизнеса, что позволяет оптимизировать разработку и сэкономить время.
- Bundler — позволяет получить идентичную среду для запуска проекта на любом компьютере, что ускоряет разработку и снижает количество ошибок, связанных с разными средами и версиями библиотек.
- SurfGen — собственное решение от Surf, способное ускорить разработку за счёт автоматизации рутинных задач. Инструмент работает через запросы к серверу по API, который описан в формате Swagger (OpenAPI).
- SwiftGen — помогает создавать безопасный доступ к изображениям, шрифтам, цветовым палитрам и т. д. Это значительно ускоряет выполнение монотонных, но трудоёмких задач, например, изменение цвета элементов или замена иконок. SwiftGen представляет собой собственный набор библиотек для генерации кода сетевых сервисов, ускоряющий процесс разработки до 20%.
- Swiftlint и SwiftFormat — помогают следовать установленному стилю кода и обеспечивают согласованность проекта. Это снижает расходы на разработку и поддержку кодовой базы.
- Fastlane используется в процессе CI/CD — непрерывного развёртывания в процессе разработки — для управления запросами на включение и загрузки приложения через TestFlight и AppDistribution. Этот инструмент обеспечивает высококачественный код и тоже экономит время разработки.