Improving the approachability of data-race safety
🖥 Документ из
❓ Модель
➡️ Предлагается изменить правила изоляции по умолчанию для модулей, чтобы они были изолированы к главному актеру, что упростит написание однопоточного кода.
➡️ Предлагаются инструменты для упрощения перехода существующих кодовых баз на новые функции конкурентности
➡️ Вводится концепция изолированных соответствий, позволяющая типам, изолированным к глобальному актеру, реализовывать протоколы без конфликтов с изоляцией.
ℹ️ Хоть документ и не новый, рекомендую с ним ознакомиться - сможете лучше понимать куда в целом движется развитие языка.
Swift Evolution описывает видение по повышению удобства Swift 6 concurrency, фокусируясь на устранении ложных ошибок data-race safety в последовательном коде и упрощении миграции. Основные цели — сохранить безопасность памяти, сделать базовый concurrency простым и продвинутое — естественным, с тремя этапами: последовательный код, async без параллелизма, затем parallelism для производительности.Swift 6 предполагает конкурентность по умолчанию, что приводит к ложным срабатываниям ошибок в коде, который на самом деле является однопоточным.Swift, включая автоматическую миграцию.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Bridging completion handlers to Swift's async/await
🔍 Если хотели провести миграцию с
✔️ Функция
⚠️ Для
🛡
completion handlers на async/await - загляните в статью. Вот пару советов из нее.withCheckedContinuation позволяет создать асинхронную функцию, которая обрабатывает результат из API с обработчиком завершения, обеспечивая безопасное возобновление выполнения.API, которые могут возвращать ошибки, можно использовать withCheckedThrowingContinuation, что позволяет обрабатывать ошибки с помощью синтаксиса try await.withCheckedContinuation и withCheckedThrowingContinuation обеспечивают проверку на наличие множественных вызовов resume, в то время как withUnsafeContinuation и withUnsafeThrowingContinuation не выполняют таких проверок, что делает их менее безопасными.Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍2❤1
Навигация на SwiftUI: чего не хватает и как исправить
❓ Извечный вопрос: курица или яйцо как сделать навигацию в
⚙️ Для масштабных проектов необходима поддержка различных навигационных компонентов, таких как Bottom Sheet, алерты и диплинки, что требует продуманной архитектуры.
➡️ Использование паттерна
🖥 Кастомные алерты в
➡️ Реализация динамических шторок в
➡️ Для сложных приложений с диплинками и кастомными алертами рекомендуется использовать
SwiftUI? В статье авторы попытались найти на него ответ, с учетом разных и сложных флоу. Coordinator позволяет разделить логику навигации и отображения, что упрощает поддержку и тестирование приложений.SwiftUI требуют сложной логики для отображения и управления, что может привести к ошибкам и усложнению кода.SwiftUI до iOS 16 была сложной, и для этого часто использовались UIKit-библиотеки, что увеличивало сложность навигации.UIKit, в то время как для менее сложных задач можно рассмотреть FlowStacks или NavigationStack.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3