iOS Broadcast
3.32K subscribers
1.71K photos
85 videos
975 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
🖥 Интеграция App intents в Spotlight (3 мин 🇺🇸)

С выходом новых iPhone Pro, наконец, стали актуальны кастомные интенты от приложений в приложение Команды (Shortcuts).
Одна из опций - кастомный Shortcut, который может представлять любую мини программу. Ваше приложение может добавить простую команду, которую будет удобно использовать как в формате самостоятельного действия (открыть последний купленый билет) так и в формате интеграции, которая принимает аргументы и возвращает значение. У меня, к примеру, есть шорткат который я запускаю через Spotlight для создания QR кодов, достаточно скопировать строку в буфер обмена и запустить шорткат QR, чтобы в буфере обмена появился QR код.

Как вы используете шорткаты и используете ли вообще? Верите в бум шорткатов с распространением action button? 👍👎
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
➡️ Как получить rootViewController в iOS (3 мин 🇺🇸)

Быстрый и простой способ получить rootViewController.
В iOS 13 появилась концепция несколько сцен и окон и Apple прекратила поддержку UIApplication.shared.keyWindow и UIApplication.shared.windows в iOS 13 и iOS 15 соответственно.
В статье приводится пример как быстро добавить поддержку rootViewController если очень нужно и приводится пример, почему этот способ 🚫 не всегда правильный и нужно переставать думать концепцией rootViewController и начинать думать connectedScenes 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎1
Как Airbnb пришли к SwiftUI (10 мин, 🇺🇸)

Путь Airbnb от самописного декларативного фреймворка 🐱 Epoxi к стандарту индустрии - 😀 SwiftUI. Epoxi - фреймворк для декларативного конструирования экранов был оберткой над UIKit, потенциально даже с возможностью Backend-Driven UI. Такие задачи привлекают классных инженеров к созданию фреймворка, но 🚫 не привлекают инженеров к разработке продуктовых фич.
Главный вывод для меня - после миграции на SwiftUI стали счастливы iOS инженеры, 77% заявили что стали более эффективны.

Бизнесу достаточно легко продать BDUI, кроссплатформу, даже если это ReactNative, но это не так просто продать разработчикам, особенно в продуктовых командах.
Искренне рад за Airbnb и их инженерную команду, счастливые разработчики = качественный продукт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎2
🔥 if & switch выражение в Swift 5.9 (2 min 🇺🇸)

В Swift 5.9 появилось упрощение для if и switch выражений, которок позволяет писать более короткий код, опуская ключевое слово return.
Эта фича напоминает новшевство Swift 5.1, SE-0255 - опускание ключевого слова return в однострочных функциях.
Хотя более короткий код не всегда приводит к более читабельному коду, пропуск ключевых слов return внутри выражений if и switch определенно способствует этому.
Ваш код становится легче и естественнее для чтения, что приводит к беспроигрышному результату.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👎1
Forwarded from Android Broadcast (Кирилл Розов)
Инструмент Emcee от AvitoTech продолжает развиваться и обрастает новыми возможностями (для Android и iOS)

Инструмент параллелит тестирование на разных машинах. Если не хотите настраивать свой сервер, то можно воспользоваться облачной инфраструктурой Emcee.

Больше информации в официальном канале Emcee
👍2👎1
🔥 Как использовать новый SwiftUI PhaseAnimator в iOS 17

В iOS 17 появилась новая View - PhaseAnimator с одноименным модификатором, которые позволяют просто создавать многошаговые анимации. Теперь в SwiftUI есть удобная замена UIKit animateKeyframes и addKeyframe 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎1
⚠️ Проверка подписи зависимостей в Xcode 15 (17 мин📹)
Проверка подписи бинарных фреймворков — это новая функция в Xcode 15, которая обеспечивает безопасность для разработчиков приложений на основе подписи кода, выполненной авторами SDK. 😍

📌 Что необходимо знать разработчикам приложений:
Xcode 15 автоматически проверяет зависимости вашего приложения и защищает целостность вашей цепочки поставок, предупреждая вас в случае обнаружения проблемы.
Xcode теперь отображает новый раздел в Инспекторе, в котором отображается статус подписи для xcframework, который вы включаете в свое приложение.

✔️ Статус подписи
В этом разделе содержится информация о подписи, например личность автора. Он покажет, подписан ли xcframework
идентификатор программы разработчиков Apple
самоподписанный сертификат или
в настоящее время не подписан
Xcode запишет идентификатор при первом использовании xcframework и проверит, что он не изменится во время последующих сборок.

‼️ Подпись изменена
Если подпись изменилась, сборка вашего приложения завершится неудачно с соответствующим сообщением об ошибке.
Сборка не удалась при изменении подписи
При выборе ошибки отображается предупреждение, объясняющее, что личность разработчика изменилась, и показывает, как ожидаемая личность соотносится с тем, что присутствует в новой версии. Изменение может указывать на то, что двоичная структура была скомпрометирована. Изменение может быть законным. При необходимости свяжитесь с автором SDK для получения разъяснений через проверенный общедоступный канал.

📣 Что необходимо знать авторам SDK:
Авторам SDK настоятельно рекомендуется подписывать свои XCFrameworks, но не принуждают к этому.
Для авторов SDK важно подписывать SDK криптографической подписью, поскольку это позволяет разработчику приложения подтвердить личность и гарантирует, что код не был изменен или подделан после его подписания.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1
Изменения в клавиатуре iOS 17

В iOS 17 клавиатура была перенесена в отдельный процесс, почти полностью работающий вне приложения.
Аспекты этого нового асинхронного подхода теперь могут вносить некоторые небольшие различия в скорости реакции. Особенно если приложение чувствительно к времени ввода текста, изменениям выделения или любым другим операциям, связанным с текстом, следует помнить об изменении.
👍3👎1
Forwarded from Android Broadcast (Кирилл Розов)
В этом году @android_broadcast номинировали на премию Highload++ "за вклад в сообщество".

Прошу вас поддержать мой проект голосом и показать сплоченность мобильного сообщества. Голосование проходит тут

Пост уже был, но голосование запустили с начала и теперь можно отдать не один голос, а три!
⚡️ Очень крутые новости по доработке 🐛 LLDB дебаггера Swift 5.9

Что это дает для разработчиков:
👉 Вывод переменных в консоли с помощью p и po быстрее и понятнее
👉 Поддержка Generic параметров выражений
👉 Более точное понимание скоупа выражения и переменных

Те самые изменения, которые мы, обычно не замечаем, но они значительно улучшают опыт взаимодействия с языком

* LLDB дебаггер - следующее поколение высокоэффективного дебаггера, являющегося частью LLVM проекта
👍11👎1
👀 В iOS 17 у свойства textContentType появились новые варианты

🗣️ Дата рождения:
👉 birthdate - дата рождения
👉 birthdateDay - компонент дня в дате рождения
👉 birthdateMonth - компонент месяца в дате рождения
👉 birthdateYear - компонент года в дате рождения

🗣️ Карта:
👉 creditCardSecurityCode - код безопасности карты
👉 creditCardName - все части ФИО, указанные на карте
👉 creditCardGivenName - имя, указанное на карте
👉 creditCardMiddleName - отчество, указанное на карте
👉 creditCardFamilyName - фамилия, указанная на карте
👉 creditCardExpiration - срок действия кредитной карты
👉 creditCardExpirationMonth - компонент месяца срока действия кредитной карты
👉 creditCardExpirationYear - компонент года срока действия кредитной карты
👉 creditCardType - тип кредитной карты

Если у вас в приложении есть поле ввода для карты или даты рождения, новые инпут типы можно применить уже сегодня, пометив строчку if #available(iOS 17, *)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎1
В SwiftUI каждый год появляются новые ViewModifier, которые хочется использовать уже сейчас, но для сохранения обратной совместимости не понятно куда вставить if #available. Хочу поделиться с вами своим подходом к опциональным модификаторам, которые помогают подготовиться к миграции на новые API а так же добавить функциональность в те версии где это возможно

1️⃣ Создаем дженерик Wrapper Backport
2️⃣ Добавляем его к View
3️⃣ Добавляем нужную нам реализацию в Backport
4️⃣ Используем тот же ViewModifier только из backport

А как вы решаете эту задачу?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17👎1