Size: a a a

iOS Developers — русскоговорящее сообщество

2019 November 26

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
Не совсем понял про делегат, тоесть условно, модуль реализует протокол делегата, условные удалить и добавить сообщение, а как пробрасывать объект, если стек вызова заранее неизвестен, тоесть я не знаю куда перейдет пользователь и через сколько вызовов опять в чат зайдет
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
и через какие модули он пойдет
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
Меня просто удивило, что в вк при back swipe я сразу вижу изменения в первом инстансе чата, тоесть это явно локально делается
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Vlad Kuznetsov
Не совсем понял про делегат, тоесть условно, модуль реализует протокол делегата, условные удалить и добавить сообщение, а как пробрасывать объект, если стек вызова заранее неизвестен, тоесть я не знаю куда перейдет пользователь и через сколько вызовов опять в чат зайдет
я изначально думал что вложенность может быть только такая: чат - профиль - чат - профиль. и делегат ничего не передавал бы, а только информировал бы предыдущий чат про стоизошли изменения, и нужно обность таблицу до актуальных данных
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
Sasha_A
Можно же сделать что бы не сбросился, обновиться все данные что показаны. Во всех чатах так
ну вот к примеру на втором инстансе удалили сообщение из пятой секции , при возвращении на первый мне получается нужно получить с сервака данные несколько раз (там пагинация), сравнить с имеющимися и обновить вью?
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Vlad Kuznetsov
ну вот к примеру на втором инстансе удалили сообщение из пятой секции , при возвращении на первый мне получается нужно получить с сервака данные несколько раз (там пагинация), сравнить с имеющимися и обновить вью?
сказано было что данные после любых изменений сохраняются и локально, т.е. если пользователь что-то изменил на 10-й вложености, или же моментально после изменений и успешной записи в КорДату оповестить 1-ю вложенность об изменениях, или в момент viewWillApear обновить из локальной базы. при изменениях на сервер ходить только один раз во всей вложенности (я бы конечно так не делал, но это один из путей как срезать углы, что бы не использовать или Rx, или NotificationCenter или переделывать архитектуру более глобально)
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
хм, тоесть самым правильным выбором будет все же rx/notification
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Vlad Kuznetsov
хм, тоесть самым правильным выбором будет все же rx/notification
более-менее нормальный вариант, это иметь сервис который не синглтон, а инжектится в каждое окно чата, и при изменения в КорДате обновляет окно
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
ну сервис и так инжектится в интерактор. Ладно, буду пробовать, спасибо за варианты)
источник

IL

Ivan Lupenkov in iOS Developers — русскоговорящее сообщество
The operation couldn’t be completed. (kCLErrorDomain error 0.) locationManager.
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Vlad Kuznetsov
ну сервис и так инжектится в интерактор. Ладно, буду пробовать, спасибо за варианты)
может я тогда не понял вопрос вообще) а в чем проблема? ты в одном месте обновляешь данные, сервит актуальные данные раздает во всех других местах
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
А как сервис может раздавать данные во все другие места, если по инстансу на модуль? Или держать ссылку на сервис вне модуля, а в самом модуле weak? Просто сейчас сервис создается и инжектируется в интерактор, и только там и живет, не имея доступа за его пределы
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
Изначально архитектура сервисов не предусматривала, все было в самих интеракторах, сейчас вынес работу с сетью и базой в сервисы, но до этого так не делал, так что может я просто тупой и не понял как их нужно применять
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
Vlad Kuznetsov
А как сервис может раздавать данные во все другие места, если по инстансу на модуль? Или держать ссылку на сервис вне модуля, а в самом модуле weak? Просто сейчас сервис создается и инжектируется в интерактор, и только там и живет, не имея доступа за его пределы
сервис данных может так и продолжать жить, я имел в виду сервис немного выше уровнем, который имел бы один инстанс, инжектился бы во все чаты и если в одном из чатов изменились данные, (после записи этих данных в кор дату) во всех других шел бы в этоу кор дату и вытягивал бы актуальные данные. ну и опимизировать это можно довольно далеко, например если изменения было удалено сообщение которое было написано месяц назад, а в другом чате промотана переписка только на неделю назад - ничего не делать.
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
интересный вариант, хотя это, помоему, идет в разрез с Viper архитектурой
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
но не критично
источник

S

Sasha_A in iOS Developers — русскоговорящее сообщество
ну а если архитектура вообще не критична и нужно в прямом смысле сделать за 15 минут, то NSNotificationCenter) при любом изменении или на уровне чата или на уровне кор даты отправлять сообщение, и все чаты на него подписаны. Ну и лишний раз нет смысла обновлять тот чат что на данный момент открыт. Но если что я такой вариант не советовал)
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
ахаха, ну за 15 минут это точно не наш вариант
источник

VK

Vlad Kuznetsov in iOS Developers — русскоговорящее сообщество
просто думал, вдруг есть какое стандартное решение, которым все пользуются в подобном случае, но, видимо, нет
источник

Y

Yuri in iOS Developers — русскоговорящее сообщество
В пятницу собираемся в москве (бар), ориентировочно в 18-00, вступайте кто пойдет
@ios_shodka
источник