Оглавление

    SwiftUI: особенности, плюсы и минусы и о том, как создают iOS-приложения

    SwiftUI — фреймворк для создания iOS-приложения 

    SwiftUI — это фреймворк с набором готовых библиотек для создания пользовательского интерфейса в iOS-приложениях. Этот инструмент, разработанный Apple, пришёл на смену UIKit — последний почти во всём устраивал разработчиков, но создание элементов в части UI занимало много времени. SwiftUI не стоит путать со Swift — языком программирования, с помощью которого пишут приложения для платформы Apple. Его используют преимущественно для разработки на платформах iOS и macOS, но также он может пригодиться и на других проектах. Этот язык популярен среди разработчиков — по итогам декабря 2022 года он занял 15-е место в рейтинге «Топ 50 языков программирования» по версии индекса TIOBE.

    С помощью SwiftUI создаются приложения для всех продуктов Apple. Источник: developer.apple.com

    SwiftUI: особенности разработки, преимущества и недостатки

    Вся разработка с помощью SwiftUI происходит в специальной интегрированной среде — Xcode. Она создана компанией Apple специально для работы с платформами iOS, macOS, watchOS и tvOS. Далее разберём, какие есть особенности у SwiftUI.

    Плюсы SwiftUI

    • Декларативный подход — это парадигма, при которой главную роль играет решение задачи, и описывается ожидаемый результат, а не способ его получения. Это позволяет лучше сфокусироваться на задаче.
    • Скорость вёрстки — адаптировать приложения на свифт в большинстве случаев действительно быстро, однако стоит оговориться, что это справедливо для большинства стандартных экранов. Для особых форматов, таких как Apple TV или Apple Watch придётся адаптировать некоторые элементы вёрстки.
    Узнайте больше о том, как мы используем возможности SwiftUI
    Читать кейсы
    • Живое превью — возможность динамического интерактивного предпросмотра любых макетов пользовательских представлений. Эта функциональность доступна через Xcode.
    Возможность живого превью SwiftUI в Xcode. Источник: developer.apple.com
    • Совместимость с UIKit и AppKit. SwiftUI предназначен для работы вместе с UIKit (фреймворком для создания приложений iPhone, iPod touch и iPad) и AppKit (набором инструментов для создания графического интерфейса). Это даёт возможность постепенного внедрения новых UI-элементов в существующие проекты. 
    • Готовые инструменты для дизайна — с их помощью можно работать на специальном холсте, а все изменения будут синхронизироваться с кодом в соседнем редакторе. Код отображается в виде предварительного просмотра по мере ввода данных. Есть возможность просматривать созданные элементы в светлой и тёмной теме.
    Управление элементами дизайна SwiftUI в Xcode. Источник: developer.apple.com

    Несмотря на большое количество плюсов, SwiftUI не безупречен. Возможно, его минусы — лишь зоны роста, которые со временем станут не актуальными. Вот недостатки, на которые мы обратили внимание:

    Минусы SwiftUI:

    • Недостаточно готовых библиотек — многим разработчикам всё ещё не хватает встроенных функций, которые одинаково хорошо справлялись бы с нужной функциональностью на всех версиях. 
    • Низкая совместимость версий — каждая новая версия может отличаться от предыдущей, что требует от разработчика дополнительных ресурсов, чтобы переписать часть кода. Справедливости ради отметим, что с последними версиями iOS таких проблем стало меньше. 
    • Нехватка специалистов — так как SwiftUI считается относительно новым фреймворком, не так много разработчиков, которые долгое время на нём работают и накопили высокий уровень экспертизы. Однако и этот минус можно превратить в преимущество, для тех, кто хочет попробовать свои силы. Потребность в таких специалистах на русском рынке только растёт.
    Хотите заказать iOS-разработку у настоящих профессионалов?
    Заполните форму и мы обсудим ваш проект

    Кейсы использования

    На SwiftUI создают приложения для самых разных сфер бизнеса: нефтедобычи, e-commerce и банков. Именно с помощью этого фреймворка написан СберМаркет — лидер в области доставки продуктов в России. Возможности SwiftUI позволяют делать удобные, лёгкие и быстрые приложения с интуитивно понятным управлением и приятным пользовательским опытом.

    Наша команда iOS-разработчиков реализует и масштабирует проекты для различных отраслей и компаний. Мы используем возможности SwiftUI в том числе в e-commerce приложениях, так как его характеристики в скорости крайне важны в ритейле.

    Средняя оценка наших iOS-приложений в App Store — 4,71.

    Опыт Surf: что, кроме SwiftUI, помогает нам в iOS-разработке

    В своей работы мы активно используем внутренние разработки и решения для работы с таблицами, сетью, а также библиотеки с самыми распространёнными фичами. У нашей команды iOS-разработчиков большой опыт реализации проектов в самых разных отраслях бизнеса, что позволяет оптимизировать разработку и сэкономить время.

    • Bundler — позволяет получить идентичную среду для запуска проекта на любом компьютере, что ускоряет разработку и снижает количество ошибок, связанных с разными средами и версиями библиотек.
    • SurfGen — собственное решение от Surf, способное ускорить разработку за счёт автоматизации рутинных задач. Инструмент работает через запросы к серверу по API, который описан в формате Swagger (OpenAPI). 
    • SwiftGen — помогает создавать безопасный доступ к изображениям, шрифтам, цветовым палитрам и т. д. Это значительно ускоряет выполнение монотонных, но трудоёмких задач, например, изменение цвета элементов или замена иконок. Это собственный набор библиотек для генерации кода сетевых сервисов, ускоряющий процесс разработки до 20%.
    • Swiftlint и SwiftFormat помогают следовать установленному стилю кода и обеспечивают согласованность проекта. Это снижает расходы на разработку и поддержку кодовой базы.
    • Fastlane используется в процессе CI/CD — непрерывного развёртывания в процессе разработки — для управления запросами на включение и загрузки приложения через TestFlight и AppDistribution. Этот инструмент обеспечивает высококачественный код и тоже экономит время разработки.
    Хотите создать приложение для iOS за 3-6 месяцев?
    Заполните форму и давайте обсудим ваш проект