iOS Dev
Список всех новых фреймворков в одной таблице 📖 А вот здесь их можно отфильтровать и почитать подробнее. @iOS Dev
Список всех новых фреймворков, доступных в iOS 16
⚫ App Intents — для Siri и быстрых команд.
⚫ AVRouting — для потокового мультимедиа в маршруте.
⚫ BackgroundAssets — фоновая загрузка тяжелых ресурсов.
⚫ CarKey — удалённые функции авто без ключа.
⚫ Swift Charts — графики на каждой Apple-платформе.
⚫ DeviceDiscoveryExtension — стриминг медиа на стороннее устройство.
⚫ DeviceDiscoveryUI — подключаем tvOS к мобильному приложению.
⚫ Distributed — для создания распределённых систем.
⚫ ExtensionFoundation — исполняемые пакеты для расширения функциональности других приложений.
⚫ ExtensionKit — для расширения функциональности других приложений, представив пользовательский интерфейс.
⚫ MetalFX — для повышения производительности Metal.
⚫ Push To Talk — cистемный пользовательский интерфейс для служб Push-to-Talk вашего приложения.
⚫ RegexBuilder — регулярные выражения теперь на более понятном языке.
⚫ RoomPlan — для создания 3D-модели комнаты, интерактивно помогая людям сканировать свое физическое окружение с помощью камеры устройства.
⚫ Spatial — для создания трёхмерных математических примитивов и управления ими.
⚫ WeatherKit — погодные условия и оповещения для пользователей.
🙆 Лично я выделил бы Swift Charts, ExtensionKit, RegexBuildex. Всё это выглядит впечатляюще!
😎Собрал список в одном месте специально для разработчиков и читателей:
@iOS Dev
⚫ App Intents — для Siri и быстрых команд.
⚫ AVRouting — для потокового мультимедиа в маршруте.
⚫ BackgroundAssets — фоновая загрузка тяжелых ресурсов.
⚫ CarKey — удалённые функции авто без ключа.
⚫ Swift Charts — графики на каждой Apple-платформе.
⚫ DeviceDiscoveryExtension — стриминг медиа на стороннее устройство.
⚫ DeviceDiscoveryUI — подключаем tvOS к мобильному приложению.
⚫ Distributed — для создания распределённых систем.
⚫ ExtensionFoundation — исполняемые пакеты для расширения функциональности других приложений.
⚫ ExtensionKit — для расширения функциональности других приложений, представив пользовательский интерфейс.
⚫ MetalFX — для повышения производительности Metal.
⚫ Push To Talk — cистемный пользовательский интерфейс для служб Push-to-Talk вашего приложения.
⚫ RegexBuilder — регулярные выражения теперь на более понятном языке.
⚫ RoomPlan — для создания 3D-модели комнаты, интерактивно помогая людям сканировать свое физическое окружение с помощью камеры устройства.
⚫ Spatial — для создания трёхмерных математических примитивов и управления ими.
⚫ WeatherKit — погодные условия и оповещения для пользователей.
🙆 Лично я выделил бы Swift Charts, ExtensionKit, RegexBuildex. Всё это выглядит впечатляюще!
😎Собрал список в одном месте специально для разработчиков и читателей:
@iOS Dev
Немного о том, что умеет новый Xcode
1️⃣ На 30% меньше двоичный файл. SDK можно ставить отдельно.
2️⃣ Проекты собираются на 25% быстрее благодаря улучшенному параллелизму на всех этапах сборки и соединения.
3️⃣ А новая временная шкала сборки помогает выявить неожиданно затянувшиеся задачи сборки и узкие места в вашей сборке. Как тут не упомянуть Build Graph от Михаила Рубанова. Может быть, это новые возможности?
4️⃣ Новый target создает единый интерфейс SwiftUI для использования на iOS, iPadOS, macOS и tvOS.
5️⃣ Регулярки в Swift с подсветкой синтаксиса, поддержкой рефакторинга и многим другим.
6️⃣ Swift, SwiftUI и Xcode 14 работают как единое целое. Превью SwiftUI сразу же интерактивно, а светлый и темный интерфейсы доступны одним щелчком мыши.
@iOS Dev
1️⃣ На 30% меньше двоичный файл. SDK можно ставить отдельно.
2️⃣ Проекты собираются на 25% быстрее благодаря улучшенному параллелизму на всех этапах сборки и соединения.
3️⃣ А новая временная шкала сборки помогает выявить неожиданно затянувшиеся задачи сборки и узкие места в вашей сборке. Как тут не упомянуть Build Graph от Михаила Рубанова. Может быть, это новые возможности?
4️⃣ Новый target создает единый интерфейс SwiftUI для использования на iOS, iPadOS, macOS и tvOS.
5️⃣ Регулярки в Swift с подсветкой синтаксиса, поддержкой рефакторинга и многим другим.
6️⃣ Swift, SwiftUI и Xcode 14 работают как единое целое. Превью SwiftUI сразу же интерактивно, а светлый и темный интерфейсы доступны одним щелчком мыши.
@iOS Dev
Обновления для Simulator в iOS 16
🎉 Simulator теперь поддерживает удаленные уведомления в iOS 16 при запуске в macOS 13 на Mac с Apple silicon или T2. Используется Apple Push Notification Service Sandbox. Каждый симулятор генерирует токен из комбинации самого симулятора и аппаратного обеспечения Mac.
🎉 Уведомления поддерживают больше функций с помощью .apns payload или команды simctl push.
🎉 simctl теперь поддерживает управление симуляцией местоположения, включая запуск сценариев и интерполяцию между списком путевых точек.
⚫ simctl addmedia прокачан для поддержки многих дополнительных форматов изображений (включая многие популярные форматы RAW).
⚫ Теперь вы можете загружать устройства симулятора, например x86_64 на Mac с Apple silicon, используя новый аргумент командной строки --arch в simctl boot.
Внимание! Токены симулятора могут быть длиннее, чем токены физического устройства. Не задавайте жестко определенную длину или формат для этих токенов.
@iOS Dev
🎉 Simulator теперь поддерживает удаленные уведомления в iOS 16 при запуске в macOS 13 на Mac с Apple silicon или T2. Используется Apple Push Notification Service Sandbox. Каждый симулятор генерирует токен из комбинации самого симулятора и аппаратного обеспечения Mac.
🎉 Уведомления поддерживают больше функций с помощью .apns payload или команды simctl push.
🎉 simctl теперь поддерживает управление симуляцией местоположения, включая запуск сценариев и интерполяцию между списком путевых точек.
⚫ simctl addmedia прокачан для поддержки многих дополнительных форматов изображений (включая многие популярные форматы RAW).
⚫ Теперь вы можете загружать устройства симулятора, например x86_64 на Mac с Apple silicon, используя новый аргумент командной строки --arch в simctl boot.
Внимание! Токены симулятора могут быть длиннее, чем токены физического устройства. Не задавайте жестко определенную длину или формат для этих токенов.
@iOS Dev
This media is not supported in your browser
VIEW IN TELEGRAM
В Xcode 14 добавили code snippet для генерации memberwise initializer 🎉
Ну наконец-то! Раньше для этого можно было юзать, конечно, правую кнопку мыши и так далее, но теперь-то заживём 😅
@iOS Dev
Ну наконец-то! Раньше для этого можно было юзать, конечно, правую кнопку мыши и так далее, но теперь-то заживём 😅
@iOS Dev
Новый синтаксис в Swift 5.7 для optional unwrapping
😎 В Swift 5.7 появился новый, более лаконичный способ optional unwrapping с помощью операторов
👌Теперь мы можем просто опустить присваивание после оператора
Также это сработает и для
👍 Конечно, у нас все еще есть возможность делать как раньше: из-за стиля кода, либо если мы хотим дать другое имя преобразуемому опциональному значению.
@iOS Dev
😎 В Swift 5.7 появился новый, более лаконичный способ optional unwrapping с помощью операторов
if let
и guard let
. 👌Теперь мы можем просто опустить присваивание после оператора
if let
, и компилятор Swift автоматически преобразует наш опциональный параметр в конкретное значение с точно таким же именем.Также это сработает и для
guard
.👍 Конечно, у нас все еще есть возможность делать как раньше: из-за стиля кода, либо если мы хотим дать другое имя преобразуемому опциональному значению.
@iOS Dev
SwiftUI в ячейках UITableView или UICollectionView с помощью UIHostingConfiguration
⏳ С момента своего первоначального появления в 2019 году SwiftUI обладал приличной совместимостью с UIKit. Экземпляры UIView и UIViewController можно было обернуть для полной совместимости со SwiftUI, а UIHostingController позволял нам отображать SwiftUI в контроллере на базе UIKit.
🤔 Однако, несмотря на то, что в macOS существовал NSHostingView для встраивания SwiftUI в любой NSView, в iOS никогда не было простого способа сделать также. Мы могли взять UIHostingController, но даже это решение было так себе.
😉 В 14 оси ввели content configurations. Этот API теперь был расширен
Взаимодействие между SwiftUI и UIKit становится все более мощным, и это здорово.
🛠У меня в рабочем проекте не используется SwiftUI, но теперь я вижу веский повод попробовать.
@iOS Dev
⏳ С момента своего первоначального появления в 2019 году SwiftUI обладал приличной совместимостью с UIKit. Экземпляры UIView и UIViewController можно было обернуть для полной совместимости со SwiftUI, а UIHostingController позволял нам отображать SwiftUI в контроллере на базе UIKit.
🤔 Однако, несмотря на то, что в macOS существовал NSHostingView для встраивания SwiftUI в любой NSView, в iOS никогда не было простого способа сделать также. Мы могли взять UIHostingController, но даже это решение было так себе.
😉 В 14 оси ввели content configurations. Этот API теперь был расширен
UIHostingConfiguration
, позволяющим определять содержимое ячейки, используя любую иерархию SwiftUI. Здесь статья с разбором, описывающая и некоторые сложности.Взаимодействие между SwiftUI и UIKit становится все более мощным, и это здорово.
🛠У меня в рабочем проекте не используется SwiftUI, но теперь я вижу веский повод попробовать.
@iOS Dev
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одна фича нового Xcode — Sticky Headers при скролле
😉 Наглядно видна иерархия, работает и для Objective-C тоже.
📓 Разработчикам альтернативных IDE стоит взять на заметку, выглядит очень удобно.
@iOS Dev
😉 Наглядно видна иерархия, работает и для Objective-C тоже.
📓 Разработчикам альтернативных IDE стоит взять на заметку, выглядит очень удобно.
@iOS Dev
Открылась регистрация на WWDC labs и lounges от Apple
Что это вообще такое?
💬 Digital lounges
Ежедневно в Slack проходит множество интересных мероприятий.
⚫ Можно задавать вопросы по проектированию и дизайну.
⚫ Следить за переписками в режиме реального времени во время совместного просмотра.
⚫ Знакомиться с другими разработчиками в непринуждённой обстановке.
⚫ Экспериментируйте с новейшими фреймворками.
🔵 Викторина против лучших в своём деле 9 июня.
💻 Лаборатории
⚫ Получите индивидуальные консультации по основам разработки или сложным концепциям.
⚫ Узнайте, как внедрять новые технологии Apple, принципы дизайна и многое другое.
Кому можно участвовать?
🙋 Активности открыты для всех участников программ Apple Developer Program и Apple Developer Enterprise Program, а также для победителей 2022 Swift Student Challenge.
Где?
Регистрация на Labs здесь.
Регистрация на Lounges здесь.
@iOS Dev
Что это вообще такое?
💬 Digital lounges
Ежедневно в Slack проходит множество интересных мероприятий.
⚫ Можно задавать вопросы по проектированию и дизайну.
⚫ Следить за переписками в режиме реального времени во время совместного просмотра.
⚫ Знакомиться с другими разработчиками в непринуждённой обстановке.
⚫ Экспериментируйте с новейшими фреймворками.
🔵 Викторина против лучших в своём деле 9 июня.
💻 Лаборатории
⚫ Получите индивидуальные консультации по основам разработки или сложным концепциям.
⚫ Узнайте, как внедрять новые технологии Apple, принципы дизайна и многое другое.
Кому можно участвовать?
🙋 Активности открыты для всех участников программ Apple Developer Program и Apple Developer Enterprise Program, а также для победителей 2022 Swift Student Challenge.
Где?
Регистрация на Labs здесь.
Регистрация на Lounges здесь.
@iOS Dev
Теперь можно изменять размер для sheetPresentation!
😉 Например, если вам нужен участок, который сейчас имеет высоту всего 250 пунктов, это легко сделать с помощью кода выше.
Когда вы создаёте свой detent provider, можно использовать
🎉 Неплохо! Кроме этого, можно использовать и прошлые свойства
@iOS Dev
😉 Например, если вам нужен участок, который сейчас имеет высоту всего 250 пунктов, это легко сделать с помощью кода выше.
Когда вы создаёте свой detent provider, можно использовать
UISheetPresentationControllerDetentResolutionContext
, чтобы увидеть, например, trait
collection
или установить максимальное значение. 🎉 Неплохо! Кроме этого, можно использовать и прошлые свойства
UISheetPresentationController
, как установка, например, .largestUndimmedDetentIdentIdentifier
.@iOS Dev
Как добавить автоматическое изменение размера ячеек UICollectionView или UITableView в iOS 16
😎 Изменение, которое наверняка заставит тех из нас, кто годами полагался на
ℹ️ Обратите внимание, речь идёт именно про изменение размера (у нас уже давно были self sizing cells).
А теперь, например, если у вас есть лейбл, который то прячется, то вновь показывается, больше не нужно выполнять магические заклинания, чтобы изменить размер ячейки, вычислить ее высоту или что-то еще — теперь это доступно прямо из коробки.
📝 И ещё кое-что, это свойство теперь включено по умолчанию.
@iOS Dev
😎 Изменение, которое наверняка заставит тех из нас, кто годами полагался на
UICollectionView
и UITableView
, плакать от радости и облегчения (как заметил Джордан Морган, написавший одним из первых про эту фичу), теперь автоматически управляет размером ячеек при изменении их содержимого. ℹ️ Обратите внимание, речь идёт именно про изменение размера (у нас уже давно были self sizing cells).
А теперь, например, если у вас есть лейбл, который то прячется, то вновь показывается, больше не нужно выполнять магические заклинания, чтобы изменить размер ячейки, вычислить ее высоту или что-то еще — теперь это доступно прямо из коробки.
📝 И ещё кое-что, это свойство теперь включено по умолчанию.
@iOS Dev
SF-символы получили ещё один веский повод посмотреть на них под другим углом
С каждым годом они становятся сложнее и полезнее. Даже если бы нам каждый год добавляли больше символов, это уже было бы неплохо 😉.
Буквально вчера я уже писал про то, что в Apple упростили их интеграцию в наши приложения. Но это не всё!
В Apple ищут способы для расширения возможностей многих вещей и добавления новых фреймворков. И сразу после того, как нам предоставили разные стили рендеринга символов, появилась возможность ещё и по-разному их заполнять.
Короче говоря, мы можем «заполнить» глиф на основе процентного значения от 0 до 1. Примеры использования, о которых можно подумать сразу:
1️⃣ Прогресс загрузки или обновления.
2️⃣ Сила сигнала Wi-Fi.
3️⃣ Заряд вашего телефона (и не только его).
4️⃣ Размер волн на море (простите, лето).
😎 В общем, примеров использования этого простого улучшения может быть много, и здорово, что символы постоянно прокачивают.
@iOS Dev
С каждым годом они становятся сложнее и полезнее. Даже если бы нам каждый год добавляли больше символов, это уже было бы неплохо 😉.
Буквально вчера я уже писал про то, что в Apple упростили их интеграцию в наши приложения. Но это не всё!
В Apple ищут способы для расширения возможностей многих вещей и добавления новых фреймворков. И сразу после того, как нам предоставили разные стили рендеринга символов, появилась возможность ещё и по-разному их заполнять.
Короче говоря, мы можем «заполнить» глиф на основе процентного значения от 0 до 1. Примеры использования, о которых можно подумать сразу:
1️⃣ Прогресс загрузки или обновления.
2️⃣ Сила сигнала Wi-Fi.
3️⃣ Заряд вашего телефона (и не только его).
4️⃣ Размер волн на море (простите, лето).
😎 В общем, примеров использования этого простого улучшения может быть много, и здорово, что символы постоянно прокачивают.
@iOS Dev
This media is not supported in your browser
VIEW IN TELEGRAM
Упрощаем написание и понимание кода в Swift 5.7 использованием some
В своем канале постараюсь приводить самые занятные моменты сессий в виде небольших постов с разбором.
На гифке объявление идентично предыдущему, но ненужный список параметров типа и where исчезли, потому что нам не всегда нужна выразительность, которую они обеспечивают.
Запись
Немного про синтаксис some Animal
1️⃣ Слово some указывает на то, что вы работаете с определенным типом.
2️⃣ За ключевым словом some всегда следует требование соответствия.
3️⃣ В данном случае конкретный тип должен соответствовать протоколу Animal, что позволит нам использовать требования протокола Animal для значения параметра.
4️⃣ Ключевое слово some можно использовать в типах параметров и результатов.
😉 Если вы уже писали код SwiftUI, вы использовали
@iOS Dev
В своем канале постараюсь приводить самые занятные моменты сессий в виде небольших постов с разбором.
На гифке объявление идентично предыдущему, но ненужный список параметров типа и where исчезли, потому что нам не всегда нужна выразительность, которую они обеспечивают.
Запись
some Animal
более понятна, поскольку уменьшает синтаксический шум и включает семантическую информацию о параметре animal прямо в объявление параметра.Немного про синтаксис some Animal
1️⃣ Слово some указывает на то, что вы работаете с определенным типом.
2️⃣ За ключевым словом some всегда следует требование соответствия.
3️⃣ В данном случае конкретный тип должен соответствовать протоколу Animal, что позволит нам использовать требования протокола Animal для значения параметра.
4️⃣ Ключевое слово some можно использовать в типах параметров и результатов.
😉 Если вы уже писали код SwiftUI, вы использовали
some
. Some View
несёт точно такой же смысл.@iOS Dev