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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
📱 Предотвращение скриншотов экрана в SwiftUI

Есть множество сценариев, в которых требуется изменять содержимое экрана или реагировать на попытку сделать скриншот экрана. Если в UIKit с этим все разобрались, то про SwiftUI многие забывают. В статье разбирается SwiftUI модификатор, интегрированный с UIKit, для скрытия контента во время создания снимков экрана
🔵SwiftUI предоставляет функцию конфиденциальности для предотвращения появления конфиденциального контента на скриншотах и записях экрана
🔵Функция полезна для приложений, обрабатывающих личные пользовательские данные
🔵Модификатор hideWithScreenshot будет создан на основе UITextField с isSecureTextEntry для скрытия содержимого
🔵Конечный результат - автоматическое скрытие конфиденциального контента
🔵Гибкое решение позволяет выборочно применять модификатор к определенным View для обеспечения конфиденциальности
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
iOS Broadcast
🔨 Миграция с Combine на AsyncAlgorithms Очень необычная и глубокая статья. Автор статьи демонстрирует, как перенести реактивный Combine код на AsyncAlgorithms. Что приятно, автор разбирается в реактивном программировании и любит Combine, от этого статья раскрывается…
Очень интересный пример, почему Combine актуален даже в мире Swift Concurrency. При миграции на Swift 6 включаются проверки на потенциальные проблемы с многопоточностью и работа с NotificationCenter требует обеспечения явной потокобезопасности. Эту ошибку легко исправить с Combine, интеграция с NotificationCenter у которого давно реализована:
🔵Объединяем 3 паблишера в один поток данных Publishers.MergeMany
🔵Явно указываем что хотим получать ивенты в главном потоке receive(on: DispatchQueue.main)
🔵Не забываем про то что assign захватывает сильной ссылкой и либо добавляем [weak self] либо вспомогательную функцию weakAssign
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Замеряем производительность iOS

В прошлом году появилось новое приложение Threads, которое стало самым быстрорастущим в истории, набрав 100 миллионов пользователей за пять дней. Сегодня число пользователей превышает 200 миллионов в месяц. Команда разработкт выросла с небольшой группы опытных инженеров до более чем сотни разработчиков. Перед командой стояла непростая задача, создать и сохранить ощущение быстродействия приложения для наилучшего первого пользовательского опыта. Команда выделила 4 метрики производительности, над которыми они сфокусировались:
🟢FIRE. Задержка отрисовки изображений. Он показывает, сколько людей не смогли загрузить картинку
🟢TTNC. Время до завершения запроса. Показывает, как быстро загружается новая лента
🟢cPSR. Он показывает, как часто людям удаётся загрузить картинку, текст или видео
🟢Задержка навигации. Это важно для удобства пользователей. Чтобы её измерить, они провели отдельный тест.

Люблю читать статьи от бигтеха, в них часто есть практики которые привычны для корпорации но не очевидны рядовым разработчикам. Мне показались эти метрики важными для формирования пользовательского опыта, но мало кто думает о них при запуске приложения стартапа новой соц. сети
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3