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
2065 - 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
2025/07/04 18:59:05
Back to Top
HTML Embed Code: