Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Вопрос по заморозке объектов. #9

Open
Starmel opened this issue Apr 5, 2021 · 1 comment
Open

Вопрос по заморозке объектов. #9

Starmel opened this issue Apr 5, 2021 · 1 comment
Assignees
Labels
question Further information is requested

Comments

@Starmel
Copy link

Starmel commented Apr 5, 2021

Для общения с KMM кодом используем прокладку в виде типа, который похож на cold Single Rx тип.

https://gist.github.com/d249f04577a72fae3874b08b31a2c39f

Чтобы на iOS не было проблем с обращением к Kotlin объектам на разных потоках, есть расширение, которое фризит результаты перед возвратом на платформу.

https://gist.github.com/41d9bf9a1f7e2d3c2993997a5888ac9f

Есть ли какие-то подводные камни, что это может привести к утечкам памяти или другим проблемам? Спасибо за ответ.

@Alex009
Copy link
Member

Alex009 commented Apr 8, 2021

Привет!
Сам подход к утечкам привести не должен. Если утечки и возникнут то по другим причинам (чаще всего циклы с участием swift объектов этому виной - если цикл состоит из объектов созданных самим котлином то сборщик мусора это заметит и почитстит, а вот при участии свифтовых объектов сборщик не справится - нужны слабые ссылки в правильных местах).
гарантированная заморозка перед передачей на платформу несет явную пользу - не надо задумываться о том что объект полученный с котлина нельзя на другие потоки кидать, а с данной реализацией можно кидать объект по потокам и все будет ок. главное чтобы интерфейс этих объектов не содержал никаких возможностей для редактирования (то есть иммутабельные классы использовать как результаты) - иначе если кто-то с натива дернет метод редактирования то получит креш о попытке мутировать замороженный объект

@Alex009 Alex009 self-assigned this Apr 8, 2021
@Alex009 Alex009 added the question Further information is requested label Apr 8, 2021
Alex009 added a commit that referenced this issue Mar 22, 2022
…ragments

sharing data between fragments and activities
Alex009 added a commit that referenced this issue Jun 18, 2022
IceRock University #9 - permissions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants