fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Ответ на большой вопрос: стоит ли изучать SwiftUI, UIKit или и то, и другое?

Ответ на большой вопрос: стоит ли изучать SwiftUI, UIKit или и то, и другое?

Похоже, что все хотят услышать ответ: “Забудьте о старом UIKit – вы должны сосредоточиться на SwiftUI!”. Однако простая истина заключается в том, что подавляющее большинство людей не добьются успеха, следуя этому совету, и стоит объяснить, почему, немного подробнее.

Прежде чем перейти к деталям, я хочу прояснить одну вещь: SwiftUI – это замечательный фреймворк пользовательского интерфейса, и он на 100% абсолютно точно станет будущим разработки приложений на платформах Apple. Однако, если вы хотите создавать отличные приложения сегодня – или в любой момент в ближайшие один-два года – вам также на 100% необходимы знания UIKit, особенно если вы намерены сделать разработку приложений своей карьерой.

Ладно, с этим покончено, проблемы с концентрацией на SwiftUI при игнорировании UIKit сводятся к трем вещам:

  1. Ограниченный охват API.
  2. Ограниченное внедрение.
  3. Ограниченная поддержка.

Давайте разберемся в этом…

Ограниченный охват API

Независимо от того, хотите ли вы работать в компании или просто создавать приложения для хобби в свободное время, одним из недостатков SwiftUI является то, что в настоящее время он не имеет такого же широкого охвата API, как UIKit.

Например, если вы хотите отобразить текст с возможностью редактирования, вы можете использовать UITextView в UIKit, но собственный TextEditor в SwiftUI будет работать только с обычными строками. Или если вы хотите показать текстовое поле в оповещении, это возможно в UIKit, но невозможно в SwiftUI.

Это не лень Apple, а, похоже, намеренное решение: вместо того, чтобы выпускать обертки для всех своих API, а затем вносить изменения, они используют более осторожный подход и добавляют API постепенно. Это должно (я надеюсь!) уменьшить количество ломающих изменений, которые мы увидим в будущем, потому что это дает инженерам Apple больше времени на оттачивание подмножества API, которые они собираются поставлять.

Во многих случаях вы найдете обходные пути, но, честно говоря, это утомительно, когда вы знаете, что конкретная вещь тривиальна в UIKit, но трудна или даже невозможна в SwiftUI. Иногда это даже простые вещи: как изменить вставки разделителей в таблице? Или добавить текстовое поле в оповещение? Все это просто в UIKit, но недоступно в SwiftUI.

С каждым годом я ожидаю, что в SwiftUI будет добавляться все больше функциональности, чтобы привести его к паритету с UIKit, но сейчас многие ключевые компоненты все еще отсутствуют.

Ограниченное внедрение

SwiftUI был анонсирован только на WWDC2019, и доступен в устройствах на iOS 13 или более поздних версиях. Это сразу же означает, что:

  • Почти каждое приложение, написанное на сегодняшний день, использует UIKit.
  • Любому приложению, которому требуется поддержка iOS 12 или более ранней версии, просто не повезло с SwiftUI.

Это означает, что если вы планируете получить работу разработчика iOS в ближайшие два года, опыт работы с UIKit будет фактически обязательным, потому что это то, что используют существующие кодовые базы. На самом деле, я полностью ожидаю, что через год или два UIKit все еще будет доминирующей платформой пользовательского интерфейса. Никто – даже Apple, я думаю! – не ожидает, что сообщество iOS перейдет на SwiftUI какими-то быстрыми темпами. В приложения на UIKit вложено много кода, много времени и много денег, и у него впереди долгая и счастливая жизнь.

Некоторые пытаются провести параллели между принятием Swift и SwiftUI, что, на мой взгляд, не очень полезно. Принятие Swift было быстрым, потому что он работал с каждым из фреймворков, поддерживаемых Apple (UIKit, SpriteKit и т. д.), а также уже поддерживал iOS n-1, поэтому многие компании могли сразу же перейти на него.

Еще раз хочу повторить, что SwiftUI абсолютно точно станет будущим разработки для платформ Apple, но потребуется много времени, чтобы добиться принятия на уровне UIKit.

А пока SwiftUI – идеальный кандидат для небольших приложений, личных приложений, приложений для хобби, прототипов или общих экспериментов. А если вам посчастливится работать в компании, которая использует исключительно SwiftUI, наслаждайтесь этим!

Ограниченная поддержка

UIKit существует уже более десяти лет, что означает: а) почти каждая проблема, с которой вы можете столкнуться, уже была решена другими, и б) существует множество библиотек, предоставляющих расширения и настройки.

Хотя некоторые учащиеся могут представить, что старшие разработчики держат в голове огромное количество UIKit, простая правда заключается в том, что все мы используем Google, Stack Overflow, Hacking with Swift и многое другое для поиска решений проблем. Когда вы в отчаянии, это может быть буквально вставка сообщений об ошибках на веб-сайт, но независимо от того, как вы получаете ответы, вы экономите много времени на их поиск в Интернете.

SwiftUI, просто в силу того, что он значительно новее, имеет значительно меньше доступных решений. На самом деле, обычно приходится искать то, что никто еще не пробовал – вы буквально первый человек. Это может быть очень весело, но если у вас есть реальный проект, который вы действительно хотите отправить, это также может быть удручающей потерей времени.

Итак… Вы хотите сказать, что мне не стоит изучать SwiftUI?

Нет! Со SwiftUI очень интересно работать, и с его помощью можно создавать чудесные вещи. Вся остальная часть этой книги призвана помочь вам начать работу со SwiftUI как можно быстрее и эффективнее – я бы не стал ее писать, если бы не считал SwiftUI потрясающим.

Я пытаюсь сказать, что существование SwiftUI не сделало UIKit каким-то образом устаревшим: если вы собираетесь получить работу по разработке iOS в ближайшие два года, умение использовать UIKit будет либо обязательным требованием, либо весомым бонусом.

Таким образом, отвечая на вопрос прямо: да, вам следует заняться изучением SwiftUI, потому что это будущее разработки приложений на платформах Apple, но в какой-то момент вам все равно придется изучить UIKit, потому что эти навыки будут полезны еще долгие годы.

С каждым годом все три перечисленные выше проблемы будут уменьшаться по мере роста популярности, внедрения и поддержки SwiftUI, а по мере роста SwiftUI UIKit начнет сокращаться. Однако, по крайней мере сейчас, вам действительно нужны оба варианта.

SPONSORED Подписки в приложении – это боль для реализации, трудно тестировать и полно побочных случаев. RevenueCat делает это простым и надежным, чтобы вы могли вернуться к созданию своего приложения. О, и это бесплатно, если ваше приложение зарабатывает менее $10 тыс. в месяц.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *