🈲 Combine: что делать с утечками памяти, потерей ивентов и нестабильностью операторов



Многие разработчики воспринимают Combine как отличную альтернативу для RxSwift, к тому же из коробки совместимую со SwiftUI. По крайней мере, именно так позиционируют фреймворк его создатели из Apple: «Внедрив Combine, вы упростите чтение и обслуживание своего кода». Мы в Яндекс Диске поверили им и переписали множество модулей. Спойлер: всё оказалось не так радужно, как нам рассказывали.



🔷 В статье на Хабре iOS-разработчик Никита Конашенко подробно разобрал, как на самом деле работают основные примитивы в Combine:



🟠 Publishers

🟠 Operators

🟠 Schedulers

🟠 Subscription

🟠 BackPressure



И рассказал обо всех багах, датарейсах, утечках памяти и неявном поведении, которые с этими примитивами связаны. А ещё показал, как всё это можно починить.



Статья поможет iOS-разработчикам, которые уже используют Combine, решить связанные с ним проблемы. А тем, кто пока просто интересуется, — сформировать мнение о фреймворке.



И если всё-таки решите переходить на Combine, то ищите в тексте нашу библиотеку с фиксами и экстеншенами.



Подписывайтесь:

💬 @Yandex4Mobile

📹 @YandexforMobile