Swift Concurrency и CoreBluetooth: как построить современный BLE-сервис

На случай проблем с сетью в Ситидрайве есть оффлайн-сценарий — управление дверьми машины через Bluetooth. Недавно мы с командой обновили этот механизм и значительно улучшили интеграцию различных модулей телеметрии. Я взял на себя часть по iOS и попробовал применить новый Swift Concurrency поверх старого CoreBluetooth . В этой статье расскажу, какие подводные камни вылезли при совмещении structured concurrency и callback-ориентированного API, как их обойти и на что стоит обратить внимание, если вы тоже решите «прикрутить» современные async/await к старому API.

https://habr.com/ru/companies/citydrive/articles/946328/

#Swift #Swift_Concurrency #BLE #Bluetooth #iOS #каршеринг #каршеринговый_сервис #мобильная_разработка #IoT

Swift Concurrency и CoreBluetooth: как построить современный BLE-сервис

Представьте: вы прилетаете в аэропорт, бронируете автомобиль каршеринга, но авто на многоуровневой парковке. У вашего iPhone интернет есть, но у самой машины в этом месте связи нет — она не может...

Хабр

[Перевод] async let vs Task group

В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.

https://habr.com/ru/companies/otus/articles/928172/

#ios #swift #async_let #Task_group #параллелизм #конкуррентность #асинхронность #swift_concurrency #iOSразработка #обработка_ошибок

async let vs Task group

Не упустите эти пограничные случаи в своём коде В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные...

Хабр

Изоляция с помощью глобальных акторов в Swift Concurrency: варианты на примере @MainActor

Привет, Хабр! Меня зовут Алексей Григорьев, я техлид iOS-разработки продукта Membrana в МТС. Это тариф с приложением для управления приватностью в сети и окружением. Swift Concurrency принесла множество инструментов для управления многопоточностью. Среди них глобальные акторы, которые помогают обеспечивать безопасность данных и контролировать потоки выполнения. Один из самых распространенных и полезных глобальных акторов — это @MainActor, который гарантирует выполнение операций в главном потоке приложения. В этом посте я на его примере покажу все варианты, как можно реализовать изоляцию и что в итоге выведет код: на каком потоке будут выполнены update, internal update и set в property.

https://habr.com/ru/companies/ru_mts/articles/904378/

#mainactor #swift_concurrency #Глобальная_изоляция #разработка_мобильных_приложений #разработка_под_ios #swift #программирование

Изоляция с помощью глобальных акторов в Swift Concurrency: варианты на примере @MainActor

Привет, Хабр! Меня зовут Алексей Григорьев, я техлид iOS-разработки продукта Membrana в МТС. Это тариф с приложением для управления приватностью в сети и окружением. Swift Concurrency принесла...

Хабр

Обновления Swift Concurrency: что нас ждёт в Swift 6

Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске. Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency. В этой статье я постараюсь разобраться с основными изменениями в каждом пропозале и поделюсь своими заметками, тем, что мне показалось самым важным или интересным. В конце статьи бонус — Playground с тестами для каждого пропозала, чтобы можно было поиграть с кодом, детальнее разобраться с изменениями и понять, как они влияют на код, написанный на Swift 5.

https://habr.com/ru/companies/yandex/articles/879078/

#swift_6 #swift_concurrency #structured_concurrency #ios #ios_разработка

Обновления Swift Concurrency: что нас ждёт в Swift 6

Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске и ещё веду телеграм-канал . Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки...

Хабр