Постоянное обновление данных из интернета

swift

#1

Всем привет! вопрос: нужно чтобы приложение периодически обновляло ui данными из интернета. не при появлении вью или по нажатию кнопки, а само посылало запросы время от времени и пробрасывало эти данные на все остальные экраны. как это грамотнее реализовать в связке со swiftUI? приходит в голову таймер, но выглядит как костыль.


#2

Самое простое Firebase: встроенные в этот бекенд методы чтения данных имеют возможность назначать “слушателя” за изменением в БД, те при любом изменение в БД данные будут автоматом прихоть в приложение.


#3

А если без Firebase и сторонних бэкендов? данные получаю по API с конкретного ресурса. Должно же быть какое-то стандартное решение для таких задач.


#4

Нотификации или websocket


#5

А в Combine какой-нибудь dataTaskPublisher - он тоже разово запрос делает или может как-то периодически посылать?


#6

Не пользовался им, но судя по описанию, это аналог RxSwift, только в представлении Apple.
И если это так, то это не то что вам нужно.

Хотя, если немного почитать о нем, то его можно использоваьт в связке с нотификациями. Но это все равно по сути будут чистые нотификации, только их обработка будет через Combine.

P.S. для вашей задачи в любом случае нужно будет модифицировать серверную часть. Если только не делать переодические запросы по таймеру.


#7

Сервер публичный, не мой. Не могу его модифицировать. Похоже остается только таймер…


#8

Тогда у вас просто нет других вариантов.