Что ждать разработчику от WWDC 2021
Мы с нетерпением ждали новую сессию WWDC, особенно после прошлогодних изменений, и, наконец, дождались! Кого-то Keynote разочаровал, т.к люди ждали больше и большего в плане анонсов и возможностей. Но мы-то знаем, что у нас впереди целая неделя, и очень много интересных видео-сессий по новинкам в iOS и Swift, за которые можно простить Apple и недостатки Keynote.
Итак, давайте пройдемся по тому, что нас ожидает.
В принципе все сессии можно поделить на несколько групп:
- новинки iOS и Swift;
- новинки SwiftUI, Widgets;
- accessibility;
- средства поддержки новых фичей.
1. Concurrency, async/await
Самая, на мой взгляд, ожидаемая вещь этого WWDC. В Swift 5.5 добавили очень много proposal по реализации механизма concurrency на async/await.
Concurrency (она же многопоточность) была в Swift и раньше, но раньше мы использовали Grand Central Dispatch с closure и коллбэками. Временами код превращался в callback-hell, а потеря вызова хотя бы одного коллбэка превращала дебаг в увлекательное приключение.
Теперь мы получим async/await, похожий по синтаксису на реализацию Task (там кстати будут Task) в .Net. Кто-то сравнивает это с корутинами. На мой взгляд не совсем верно, но посмотрим после сессии про Actors.
В любом случае это грандиозное и глобальное изменение, которое превратит код в конфетку.
Подробно можете пока глянуть у Пола Хадсона.
Разумеется, будут сессии и кодлабы и по доработке реализации многопоточности в SwiftUI, и при работе с Core Data, сетью.
Смотрите 8 – 10 июня.
2. Новинки SwiftUI
В прошлом году мы получили более-менее стабильную версию фреймворка SwiftUI, которую уже можно было использовать для разработки. В этом году Apple продолжают развивать данную технологию, адаптируя под нее и новые решения.
В сессию “What’s new in SwifUI” анонсированы новинки UI компонентов, расширенная поддержка мультиплатформенности (т.е под разные устройства Apple). Например, несколько сессий про разработку для WatchOS и MacOS.
Будут сессии и про многопоточность на SwiftUI, про работу с CoreData, локализацию приложений. Работу с графикой и перформансом. В “Demystify SwiftUI” нам расскажут про глубины (так заявлено, по крайней мере).
Лично мне бы хотелось узнать, а доработали ли Apple механизм навигации в SwiftUI каким-либо образом. Однако, в анонсах такая информация или отсутствует, или скрывается за лукавым “so much more”.
3. Swift, Foundation, UIKit
Вышедшая версия Swift 5.5, разумеется, содержит в себе изменения не только по многопоточности. Что это будет конкретно, нам расскажут в “What‘s new in Swift“.
Foundation также принесет много изменений. По крайней мере, связанных со строками и форматированием. “И не только”(с).
Расширение поддержки различных устройств требует изменений и визуальных. Новинки UIKit c поддержкой iPadOS, MacOS, улучшенным перформансом и сохранением приватности ждем на “What’s new in UIKit”. Также нас ждет сессии про дизайн-систему кнопок и action sheet, перед которыми Apple советуют посмотреть “Modernizing Your UI for iOS 13”.
4. Widgets, AppClips
WWDC 2020 нам представили новые виджеты (разрабатываются на SwiftUI) iOS. С одной стороны, это была воодушевляющая новинка, позволяющая привлечь больше внимания пользователей к приложению. С другой, вне присутствовали явные недоработки и недостатки.
В этом году Apple продолжают развивать эту технологию, о чем нам и расскажут на нескольких тематических сессиях.
Изменения коснутся и App Clips. Будут и новинки, перед которыми советуют посмотреть прошлогодние “Explore App Clips” и “Configure and link your App Clips”, и как построить блиц-приложение, чтобы оно было мощным, быстрым, но легким (ибо 10 мб).
5. Network, Privacy, Performance
Мы не ошиблись, и предположения о тенденции на усиление безопасности, обеспечение приватности, а значит, и ограничения, подтвердились. Что именно, узнаем опять же на сессиях.
Одной из причин можно назвать как выросший объем сетевого трафика. Другой — новые возможности по связи между устройствами Apple одного и того же пользователя.
Т.к и в том, и в другом случае нужно обеспечить хорошую сеть и перформанс, то много внимания отводится и работе с Network framework, акселерации и оптимизации.
6. Графика, аудио, ML, AR
Новые технологические возможности, как те же пространственные звонки в FaceTime, 3D карты, Object Capture предполагают расширенный и мощный функционал по работе с аудио, видео, машинному обучению, графикой и ARKit. На все будут соответствующие сессии.
Также нас ждут новинки AVFoundation, Apple Music Api, MusicKit (Meet MusicKit for Swift) и новый ShazamKit.
7. Accessibility
Мировая тенденция на развитие технологий, чтобы им могли пользоваться все, включая людей с ограниченными возможностями, сохраняется. Очень много внимания на WWDC 2021 будет отведено соответствующей тематике. Это будут сессии и по дизайну, поддержке в SwiftUI, различными устройствами, а также технологии VoiceOver и оффлайн работе с Siri.
8. XCode Cloud, Testflight for MacOS
Apple создали свой CI/CD сервис для построения приложений и фреймворков под все платформы. Это одна из крутейших новинок, которая здорово облегчит жизнь все разработчикам. Как настроить всю эту красоту, включая собственные workflow, смотрите на сессиях.
Также появляется возможность протестировать приложение через Testflight как на вашем макбуке, так и iMac. И что важно, интегрировать с Xcode Cloud. Подробнее на Meet TestFlight on Mac.
В общем, очень и очень много разных и интересных новинок и фичей. Посмотрим, что за материал нам дадут на самих сессиях, но предвкушаем много полезного.