Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
2066 - Telegram Web
Telegram Web
🐥 Ожидание нескольких асинхронных задач в Swift
Группы задач позволяют выполнять несколько параллельных задач и ждать их завершения. async let синтаксис предлагает неявный способ работы с группами задач.

1️⃣Пример использования асинхронного запуска
🔵Две асинхронные задачи taskA и taskB
🔵Вам нужно обработать результат выполнения двух задач
🔵При использовании await дважды выполнение будет приостановлено дважды

2️⃣Реализация через withTaskGroup
🔵Создаём группу задач с двумя дочерними задачами taskA и taskB
🔵Задачи A и B выполняются одновременно
🔵Код стал оптимальнее но сложнее в восприятии

3️⃣Упрощение через async let
🔵В Swift есть синтаксический сахар для API групп задач - async let
🔵Задачи A и B выполняются одновременно
🔵Код остался оптимальным и простым
🔵Нет ключевого слова await, async let отложено инициализирует значения, как только асинхронная задача вернёт свой результат
Please open Telegram to view this post
VIEW IN TELEGRAM
📱 Использование инспектора в SwiftUI
Инспектор предоставляет подробную информацию о выбранном контенте. Используется для структурированного просмотра, редактирования или настройки свойств объектов, действий или файлов.
🔵Модификатор inspector(isPresented:content:) отображает содержимое в зависимости от ОС и ориентации устройства
🔵В iOS инспектор представлен в виде листа, в iPadOS и macOS — в виде боковой панели
🔵Инспектор может быть прикреплен к контейнеру просмотра или навигационной структуре
🔵Панель инструментов может быть размещена внутри или за пределами инспектора
🔵Можно использовать минимальную, идеальную и максимальную ширину для гибкой настройки
🔵Можно настроить высоту листа, фон презентации, взаимодействие с предысторией представления и другие параметры

Рекомендации по использованию
🟢Используйте инспектор только для подробной настройки
🟢Интегрируйте и настраивайте inspector для повышения удобства использования и поддержания согласованности платформы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👿 Темная сторона разработки Apple: Почему разработчикам все сложнее на платформах Apple
Небольшой разбор завирусившейся статьи про боль и страдания разработчиков платформы Apple. Автор еще не сталкивался с тем через что проходят разработчики банковских приложений в РФ.
Apple превратилась в гиганта с триллионным капиталом, который рассматривает разработчиков как ресурс. Экосистема разработчиков Apple стала самой враждебной среди крупных платформ. Бесконечная бюрократия, меняющиеся правила и слабая поддержка делают разработку приложений для Apple рискованным:
🔵Apple больше не видит необходимости в поддержке разработчиков.
🔵Новые устройства Apple часто сопровождаются сбоями в экосистеме приложений.
🔵Apple не задает вопросов о причинах неудач и антимонопольных проблемах.
🔵Разработка для Apple требует преодоления бюрократических препятствий.
🔵Множество соглашений, налоговых форм и законов усложняют процесс.
🔵Техническая документация и поддержка Apple оставляют желать лучшего.
🔵Поддержка Apple часто не решает проблемы, а лишь подтверждает ожидаемое поведение.
🔵Ежегодные обновления операционной системы Apple требуют постоянного обновления приложений.
🔵Постоянные изменения и устаревание API создают головную боль для разработчиков.
🔵Веб-разработка предлагает больше контроля и меньше головной боли.

Разработка для Apple стала сложной и рискованной из-за бюрократии и слабой поддержки. Apple не видит необходимости в поддержке разработчиков, что отражается на их доходах. Разработчики вынуждены работать изо всех сил, чтобы оставаться на месте, а не заниматься инновациями. Создание успешного приложения для Apple похоже на игру в покер.Apple может уничтожить успешное приложение ради своей выгоды. Разработка для Apple стала испытанием на выносливость. iOS и macOS остаются технически сильными, но бизнес-оправдание инвестиций усложняется.
Please open Telegram to view this post
VIEW IN TELEGRAM
🆓 Новое в Swift 6.1: Функции определения области тестирования
Swift 6.1 и Xcode 16.3 представили новые функции для улучшения вывода типов и инструментов параллелизма. Определение области тестирования зарелизили вместе со Swift, а ребята из Point Free уже заадоптили в свои утилиты для тестирования.

🟢Одна из важных функций - определение области тестирования, улучшающая три библиотеки: Dependencies, SnapshotTesting и Macro Testing.
🟢Определение области тестирования позволяет настраивать ресурсы для тестов и упрощает параллельное тестирование.
🟢Новая платформа тестирования Swift поддерживает определение области тестирования с самого начала.
🟢Определение области тестирования открывает синтаксис для безопасного переопределения глобальных переменных в тестах и подходит для параллельного тестирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
На этом Мобиусе я буду рассказывать про опыт Т-банка по обеспечению надежности. Расскажу про внедрение клиентской аналитики, метрик и наблюдению за всем в реальном времени. Приходите послушать доклад, оставайтесь после доклада пообщаться! Суть посещения любой конференции в нетворкинге, буду рад со всеми познакомиться 😌
Please open Telegram to view this post
VIEW IN TELEGRAM
🐥 Swift. Структурированные и неструктурированные задачи
Отличный разбор структурированных и неструктурированных задач. Структурированные присоединяются к текущей древовидной структуре задач, а неструктурированные запускают новую древовидную структуру задач.

Родительские и дочерние задачи
🔵Родительская задача порождает дочерние задачи.
🔵Дочерние задачи возвращают результаты родительской задаче.

Древовидная структура задач
🔵Родительские и дочерние задачи образуют единое целое.
🔵Структурированные задачи могут быть дочерними или родительскими.
🔵Неструктурированные задачи могут быть только корневыми узлами.

Завершение задач и групповое завершение
🔵Целевая группа завершает свои дочерние задачи, когда выполнение завершает закрытие группы задач.
🔵Родительская задача может завершиться после завершения целевой группы.
🔵Вложенные неструктурированные задачи не вызывают внешнюю задачу для ожидания завершения. Они ведут себя как "запусти и забудь".

Правило групповой отмены
🔵Если родительская задача отменена, все её дочерние задачи также отменяются.
🔵Отмена задачи не приводит к её остановке, а указывает на то, что результаты не понадобятся.

Правило распространения ошибок
🔵Если ошибка распространяется за пределы локальной области, все дочерние задачи неявно отменяются и неявно ожидаются.
🔵Ошибки распространяются только из задач, которые явно ожидаемы.

Наследование контекста
🔵Неструктурированные задачи наследуют приоритет задачи и локальные значения задачи.
🔵Структурированные задачи не наследуют изоляцию участников от контекста, в котором они созданы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
2025/07/03 09:03:34
Back to Top
HTML Embed Code: