Async await in Swift через примеры
Очень достойная статья по async-await в Swift. Один из самых эффективных способов погрузиться в новую тему-через примеры, очередь пришла и для async-await.
🔴 Асинхронные методы заменяют кложуры, делая код более читаемым и эффективным
🔴 Использование ключевого слова await обеспечивает линейный порядок выполнения, упрощая асинхронный код
🔴 Переход к асинхронному ожиданию в существующих проектах может осуществляться постепенно с помощью различных вариантов рефакторинга
🔴 Переход на Swift 6 улучшает структурированный параллелизм и устраняет возможность появления "состояния гонки"
🔴 Изучение дополнительных возможностей параллелизма в Swift может еще больше повысить эффективность и безопасность кода
Очень достойная статья по async-await в Swift. Один из самых эффективных способов погрузиться в новую тему-через примеры, очередь пришла и для async-await.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍5
  Что используется у вас в проекте?
  Anonymous Poll
    68%
    GCD (DispatchQueue/DispatchGroup)
      
    50%
    async/await
      
    38%
    Combine
      
    12%
    Operations
      
    🔥2
  Media is too big
    VIEW IN TELEGRAM
  Реализация Hero анимации, используя SwiftUI NavigationTransition
Вы точно видели анимации в App Store - на WWDC24 добавили NavigationTransition в SwiftUI. Для реализации такой анимации в несколько строк. Но если остановиться на базовой конфигурации, переход получится не совсем как у Apple.
Автор в рамках статьи, на примерах допиливает эту анимацию. Все достаточно просто, но лаконично
Вы точно видели анимации в App Store - на WWDC24 добавили NavigationTransition в SwiftUI. Для реализации такой анимации в несколько строк. Но если остановиться на базовой конфигурации, переход получится не совсем как у Apple.
Автор в рамках статьи, на примерах допиливает эту анимацию. Все достаточно просто, но лаконично
👌2
  На WWDC24 расширили применимость SwiftUI и для работы со скролом. Нам добавили метод onScrollGeometryChange который предоставляет всю информацию о изменении геометрии скролла:
В скором времени, можно будет отказаться от костылей с использованием GeometryReader при работе с обычным скролом
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤3🔥2🤔1🎉1
  С момента появления расширений для Xcode, сообщество уже создало целое множество расширений. Сегодня хочу поделиться с вами теми, которые я использую или планирую.
Какими расширениями пользуетесь вы?
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Apple Developer Documentation
  
  XcodeKit | Apple Developer Documentation
  Create extensions to add commands to the Xcode source editor.
❤5
  Swift 6 приносит нам новый режим работы с многопоточностью, помогающий разработчикам на этапе компиляции видеть потенциальные проблемы и условия для гонки. Преимущества данного подхода раскроются только при использовании зависимостей, поддерживающих проверки безопасной многопоточности.
Чтобы понять, какие из зависимостей уже поддерживают Swift 6 многопоточность, в индексе пакетов будет отображаться уровень поддержки
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍8
  Forwarded from Android Broadcast
  
Получение D-U-N-S номера для мобильных разработчиков (4м) - статья с инструкцией по получению.
DUNS - это уникальный девятизначный идентификатор, присваиваемый одним из крупнейших кредитных бюро для бизнеса
#googleplay #appstore
DUNS - это уникальный девятизначный идентификатор, присваиваемый одним из крупнейших кредитных бюро для бизнеса
#googleplay #appstore
👍2
  Вышло в релиз приложение iOS IQ 
IQ - отличный пример пет-проекта iOS-разработчика. Если вам нравятся квизы по iOS разработке, хотите проверить свои знания по многопоточности, работе с памятью, архитектуре и множеству другого, советую это приложение!
🟣 Индивидуальная статистика
🟣 Личный ранг
🟣 Рейтинг среди игроков
🟣 История ответов и полезные ссылки
🟣 Приложение бесплатное и без встроенных покупок
IQ - отличный пример пет-проекта iOS-разработчика. Если вам нравятся квизы по iOS разработке, хотите проверить свои знания по многопоточности, работе с памятью, архитектуре и множеству другого, советую это приложение!
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥15👍8❤4🤔4🎉1👌1
  Ранее, в обзоре нововведений Xcode 16, я уже рассказывал про экспериментальный режим компиляции Swift модулей, в статье приводятся реальные примеры использования и бенчмарки скорости компиляции и отладки. Первоначальные тесты показали, ускорение наблюдается не всегда, но экспериментальность такого метода подсказывает нам о возможных улучшениях в процессе получения фидбека от нас
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥3
  1️⃣2️⃣3️⃣4️⃣5️⃣ SE-0431: isolated(any) Function Types
Swift 6 про работу с параллелизмом, в пропоузале добавляется новая возможность к функциональным значениям.
Суть проблемы:
Каждая декларация в Swift имеет некоторую четко определенную статическую изоляцию. Кложуры, однако, являются особенными. На их изоляцию влияет не только то, где они определены, но и то, что они захватывают. В данном предложении добавлена возможность проверить изолированность значения функции.
Кложур, помеченный
Добавление
Будет
Swift 6 про работу с параллелизмом, в пропоузале добавляется новая возможность к функциональным значениям.
Суть проблемы:
Каждая декларация в Swift имеет некоторую четко определенную статическую изоляцию. Кложуры, однако, являются особенными. На их изоляцию влияет не только то, где они определены, но и то, что они захватывают. В данном предложении добавлена возможность проверить изолированность значения функции.
Кложур, помеченный
@isolated(any), может "экспоузить" захваченную изоляцию во время выполнения.
func traverse(operation: @isolated(any) (Node) -> ()) {
let isolation = operation.isolation
}
Добавление
@isolated(any) к замыканию означает, что оно должно вызываться с await. Это верно, даже если оно не выходит из изоляции. Начиная со Swift 6, вывод кода типа:
Task { print("1") }
Task { print("2") }
Task { print("3") }
Будет
"1", "2", "3"❤5
  This media is not supported in your browser
    VIEW IN TELEGRAM
  В отличии от императивных подходов к навигации, при работе со SwiftUI создание View может происходить не так как мы думаем, исходя из опыта использования UIKit. Это приводит к инициализации экранов до того, как они действительно понадобятся. Статья показывает на примере:
Надеюсь, вы до этого уже дошли сами, это прям обязательный тер. минимум для всех кто использует SwiftUI
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🤔1