Site icon AppTractor

5 вещей, на которые стоит обратить внимание iOS-разработчикам в 2022 году

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

В этом коротком посте я перечислил пять вещей, которые, как я считаю, помогут вам стать лучшим разработчиком в 2022 году. Или, скорее, в первой половине 2022 года. Я ожидаю, что Apple запустит несколько новых интересных вещей на WWDC в этом году, и они займут ваше внимание во второй половине года.

Тем не менее, если вы сосредоточитесь на пяти вещах, перечисленных в этой статье, я уверен, что к концу года вы станете более сильным разработчиком.

Обратите внимание, что этот список не следует рассматривать как «полное» руководство, как стать хорошим iOS-разработчиком в 2022 году. Он также не является списком наиболее важных тем для всех, кто занимается разработкой под iOS.

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

Со вступлением покончено, давайте перейдем к первой теме в моем списке.

1. Использование SwiftUI вместе с UIKit (и наоборот)

Один из самых противоречивых вопросов, которые я видел в 2021 году, вероятно, заключается в том, готов ли SwiftUI к использованию в работающих приложениях. На мой взгляд, этот вопрос слишком расплывчатый, потому что ответ зависит от того, какое определение понятия «production ready» у человека в его контексте. На мой взгляд, более важным является тот факт, что SwiftUI уже можно прекрасно использовать в ваших приложениях. Хотите ли вы идти ва-банк или нет, это ваш выбор. Бывают случаи, когда ставка только на SwiftUI невозможна по разным причинам.

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

К счастью, мы можем использовать SwiftUI и UIKit одновременно в наших проектах, и я настоятельно рекомендую людям сделать это. Убедитесь, что вы умеете и понимаете, как смешивать SwiftUI с приложением UIKit или как вы можете вернуться к UIKit в приложении SwiftUI, если обнаружите, что сталкиваетесь с ограничениями при использовании исключительно SwiftUI.

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

2. Архитектура приложений

Нет, я не имею в виду «изучить VIPER» или «изучить все архитектуры». На самом деле, я не говорю, что вы должны изучать какую-то конкретную архитектуру приложения.

На мой взгляд, гораздо важнее понять принципы, на которых построена практически любая архитектура; разделение забот. Знание того, как и когда разделить функциональность вашего приложения на разные компоненты, а также знание того, как эти компоненты должны быть структурированы, чрезвычайно важно, когда вы хотите написать код, который легко понять, легко рефакторить и легко протестировать.

Попробуйте изучить такие темы, как принцип единой ответственности, внедрение зависимостей, абстракции, протоколы, дженерики и многое другое. Как только вы изучите эти темы, вы обнаружите, что множество архитектурных шаблонов — это просто разные применения одних и тех же принципов. Другими словами, множество архитектур предоставляют вам и вашей команде основу для размышлений о различных слоях вашей кодовой базы, а не о совершенно уникальном способе работы.

Менее очевидная причина узнать больше об архитектуре приложений заключается в том, что это поможет вам написать код, который может работать в мире SwiftUI, а также в мире UIKit, что чрезвычайно полезно, учитывая то, что я объяснил в первом пункте этого списка. Возможность создавать кодовую базу, которая работает как с SwiftUI, так и с UIKit, чрезвычайно полезна и, безусловно, поможет вам получить больше удовольствия от смешивания фреймворков пользовательского интерфейса.

3. Async-Await

Если и есть одна тема, которую я просто не мог исключить из этого списка, так это async-await. Вернее, новая модель параллелизма Swift. С введением async-await Apple не просто добавила некоторый синтаксический сахар (например, как async-await по сути является сахаром по сравнению с промисами в JavaScript). Apple представляет совершенно новую современную систему параллелизма, которую мы можем использовать в наших приложениях.

Такие темы, как структурированный параллелизм, акторы, группы задач и т.д., чрезвычайно интересны для изучения в этом году. Особенно потому, что Apple удалось портировать копию Swift Concurrency вплоть до iOS 13. Убедитесь, что вы используете Xcode 13.2 или новее, если хотите использовать Swift Concurrency в приложениях, предназначенных для iOS 13.0 и выше, и все должно хорошо работать.

Если вы хотите узнать больше о Swift Concurrency, в моем блоге уже есть пара постов.

4. Core Data

Да, это довольно старый фреймворк, и его корни в Objective-C иногда проявляются. Несмотря на это, Apple явно по-прежнему заинтересована в том, чтобы люди использовали и принимали Core Data, учитывая тот факт, что они добавили новые функции для Core Data + SwiftUI в iOS 15, а предыдущие версии iOS также получили различные обновления Core Data.

Заменит ли Apple Core Data более удобной для Swift альтернативой в ближайшее время? Я, честно говоря,не знаю. Я не думаю, что Apple сделает полную замену в ближайшее время. Более вероятно, что Apple сохранит основные элементы Core Data и вдобавок предоставит нам более удобный для Swift API. Таким образом, переход от текущего API к более новому может быть выполнен шаг за шагом, и нашим приложениям не придется проходить через какую-то серьезную миграцию, если мы хотим использовать самые последние и лучшие технологии. Очень похоже на то, как Apple представляла SwiftUI.

Является ли Core Data лучшим способом сохранения данных во всех случаях? Возможно нет. Это чрезвычайно сложно реализовать и слишком тяжело для большинства приложений? Нет, совсем нет. Core Data на самом деле не так страшен, и он очень хорошо интегрируется со SwiftUI. Посмотрите это видео, которое я сделал, например, об использовании Core Data в приложении SwiftUI.

Если вы хотите узнать больше о Core Data в этом году, я настоятельно рекомендую вам взять мою книгу «Practical Core Data». Она научит вас всему, что вам нужно знать, чтобы эффективно использовать Core Data в приложениях SwiftUI и UIKit.

5. Доступность

И последнее, но не менее важное в моем списке — это тема, о которой я сам должен узнать больше. Доступность часто считается необязательной, «фичей» или чем-то, что вы делаете в последнюю очередь в процессе разработки. Или, честно говоря, нередко доступность вообще не рассматривается в дорожной карте.

Когда вы думаете о доступности таким образом, есть большая вероятность, что ваше приложение вообще недоступно, потому что вы никогда не занимались ей. Я не совсем уверен, где я впервые услышал это, но если вы не уверены, доступно ли ваше приложение или нет, то оно недоступно.

Доступность — это то, за чем мы должны активно следить, чтобы каждый мог использовать наши приложения. Инструменты Apple для реализации и тестирования специальных возможностей действительно хороши, и я должен признать, что знаю о них слишком мало. Так что в 2022 году доступность будет в моем списке вещей, на которых нужно сосредоточиться.

Источник

Exit mobile version