На WWDC25 Apple представила WebView и WebPage для упрощения работы с веб-контентом в SwiftUI. Удивительно, но эти новые API уже доступны начиная с iOS 18.4. Давайте разбираться!
Новые API значительно упрощают обработку веб-контента в SwiftUI. Все детали в отдельном разделе документации
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
Уникальная фича - перевод с 2 языков на другие сразу. Например, с русского и английского.
Приложение разворачивается как сервер. Есть подробная инструкция и Docker образ
Автор описал больше про инструмент в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Swift concurrency. Executors, Actors и их связь с потокам
Полезная статья из серии Swift Concurrency, где автор разбирается в недрах:
🟢 Как определяется поток, на котором будет выполняться Task?
🟢 Почему в рамках одной Task поток может меняться?
🟢 Что такое Executor и на какие типы он делится?
🟢 За что отвечает TaskExecutor, а за что SerialExecutor?
🟢 Как определить текущий Executor по коду?
🟢 Как использовать свой самописный Executor?
🟣 Компоненты Swift Concurrency
🟢 Task и child task — базовые единицы для асинхронных функций.
🟢 Job — часть таски между точками прерываний.
🟢 Executor — распределяет Job по потокам.
🟢 Cooperative thread pool — пул потоков, равный количеству ядер устройства.
Типы Executor'ов
🟢 Global concurrent executor — дефолтный планировщик, распределяет Job'ы конкуррентно.
🟢 Serial executors — каждый actor имеет свой, выполняет джобы последовательно.
🟢 Main Actor executor — выполняет джобы на main thread.
🟡 Понимание механизма работы swift concurrency помогает контролировать и прогнозировать использование инструментов.
Полезная статья из серии Swift Concurrency, где автор разбирается в недрах:
Типы Executor'ов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
Автор рассматривает все основные подходы к навигации (часть статьи еще дополняется). SwiftUI сначала был представлен с
NavigationView
, потом его замененили на NavigationStack
стек в iOS 16. Все это время часть разработчиков строила навигаюцию вообще на базе UIKit
. В статье рассматриваются подходы:Environment
NavigationStack
и PatientNavigationStack
Environment Values
Добавляйте в
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Подписочные системы монетизации почти полностью заменили классическую покупку контента. Если для нас как пользователей это не лучшая новость, то как разработчикам требуется понимать как это использовать:
Полный отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Swift Testing предлагает новые возможности для юнит и функционального тестирования. Переход с XCTest на Swift Testing может быть сложным. Официальный гайд Apple не охватывает все практические аспекты.
Поиск и выполнение тестов:
XCTest
использует XCTestCase
с функциями среды выполнения Objective-C
.Swift Testing
использует макросы для генерации описания тестов.XCTest
выполняет тесты последовательно, Swift-тестирование — параллельно.Проблемы:
Task
Рекомендации по миграции:
Преимущества и недостатки миграции:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Когда-то давно, на старте карьеры, я попал на проект с Objective-C++. Не просто ручной подсчет ссылок а полноценное управление аллокацией памяти. С менее понятным кодом с тех пор я не сталкивался. И вот, он вернулся, интероп с C++:
Не думаю что кто-то в здравом уме будем писать логику на C++, но вот использовать готовые опенсорсные C++ движки или повышать производительность в местах ботлнеков может быть полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3