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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
Переходы через зум

Мне всегда нравились переходы через зум, это было частью магии iOS когда она называлась еще iPhoneOS, но с iOS 18 в SwiftUI сделать такой переход стало значительно проще.
🟢Переходы с масштабированием доступны для навигации push/pop и полноэкранных переходов
🟢В SwiftUI переходы между масштабами легко реализовать с помощью модификаторов navigationTransition и matchedTransitionSource
🟢В UIKit можно настроить исходное представление и View назначения с помощью свойства preferredTransition
🟢Исходное представление может быть любым, но должно соответствовать View, который запускает переход
🟢Жесты, такие как сжатие, прокрутка по вертикали и горизонтали, доступны для интерактивного изменения масштаба

Материалы:
🟣WWDC24 переходы через зум в SwiftUI и UIKit (14 мин.)
🟣Официальный туториал Apple по реализации переходов через зум в UIKit
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
Swift-Testing. Параметризованные тесты

Параметризованные тесты в Swift помогают проверять функции с различными входными данными. Все рассматривается на примере теста для разделения измерений частоты сердечных сокращений на зоны в приложении CardioBot:
🟢Параметр arguments макроса @Test позволяет передавать параметры тестовым функциям
🟢По умолчанию Swift тестирует с комбинацией всех доступных параметров 25 раз
🟢Функция zip может использоваться для объединения параметров и запуска теста 5 раз
🟢Массивы и другие типы данных, соответствующие протоколу сбора данных, могут использоваться для передачи аргументов
🟢Параметризованные тесты помогают улучшить качество кода и избежать ошибок в тестировании
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥽 RealityKit. Симуляция стекла через прозрачные объекты
На старте карьеры, после получения навыков iOS разработки, я заинтересовался разработкой игр. Собрал несколько демок в Unity, реализовал проект с одногрупниками по замене старого тренажера современной игрой и потерял интерес. Я понял что в разработке игр нет никакой магии, но много костылей. Vision Pro возродил интерес к этой области. Просто посмотрите, как это красиво!

🔵Рендеринг прозрачных объектов в 3D-системах сложен. Стекло является наиболее распространенным прозрачным предметом. Эту задачу обычно решают через прозрачные объекты. В этом подходов множество нюансов
🔵При низкой металлизации - стекло потеряет отражения, при высокой - станет слишком темным.
🔵Непрозрачность стекла: слишком высокая - стекло будет выглядеть твердым и потеряет прозрачность, слишком низкая - стекло станет слишком прозрачным и потеряет отражения
🔵Стеклянные предметы, созданные таким образом, выглядят искусственно.
🔵Имитация преломления стекла с помощью излучения окружающей среды - лучший подход.
🔵Преломление фона можно смоделировать, контролируя нормали отражения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📱 Изучаем интерактивные Bottom Sheets в SwiftUI

Как это часто бывает, Apple добавила Bottom Sheets компонент в свои приложения без добавления в UIKit и только после того как он "настоялся" сделала его публичным. На WWDC21появился компонент для UIKit, а в iOS 16 для SwiftUI добавили возможность презентации presentationDetents(_:). Каким бы простым этот компонент не казался, кроличья нора по его настройке и кастомизации - гигантская:
🟢SwiftUI имеет Bottom Sheets разных размеров
🟢Bottom Sheet автоматически упорядочиваются снизу вверх
🟢Индикатор перетаскивания на листе регулируется автоматически в зависимости от количества Bottom Sheets
🟢Динамическое управление высотой Bottom Sheet возможно с помощью привязки
🟢Предотвращение скрытия Bottom Sheets возможно с помощью модификатора interactiveDismissDisabled(_:)
🟢Фоновое взаимодействие с Bottom Sheet возможно с помощью модификатора presentationBackgroundInteraction(_:)

Автор собрал все эти нюансы в одной статье, удобно 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2