Что значит "обновлен"
Большинство пользователей iPhone знают, что потянув экран вниз, можно обновить контент во многих приложениях — это классический жест pull-to-refresh, и именно это мы имеем в виду под "обновлен". Ранние версии Splync не поддерживали эту функцию. Единственный способ обновить экран — это закрыть приложение и снова открыть. Это было не слишком неудобно, так как приложение сохраняло ваш вход в систему начиная с версии Splync v1.3, но это было неидеально. Поскольку Splync стремится быть самым простым трекером совместного бюджета, обновление экрана должно быть полностью легким. Вот почему мы ввели pull-to-refresh в версии v1.10, сделав Splync полностью обновляемым.
Два способа обновления данных в Splync(Полная перезагрузка / Обновление вида)
На главном экране, где вы видите свое фото профиля, список друзей и список проектов, pull-to-refresh выполняет полную перезагрузку. Он заново получает все данные аккаунта, что похоже на выход из системы и повторный вход. Из-за этого обновление может занять около секунды, пока отображается сообщение о загрузке. На экране проекта, где отображается ваш список расходов, тот же жест запускает более легкое обновление вида. Обновляются только данные, специфичные для проекта, такие как изменения категорий и обновления расходов. Нет необходимости ждать целую секунду, чтобы увидеть, добавил ли кто-то новый расход. Также обратите внимание: Splync не автоматически получает данные проекта с сервера в фоновом режиме. Приложение проверяет обновления только когда вы вносите изменения, когда открываете расход для просмотра его деталей или когда вручную обновляете страницу проекта.
Почему не синхронизация в реальном времени
Некоторые пользователи могут ожидать, что обновления проекта появятся мгновенно, когда друг добавит новый расход. Синхронизация в реальном времени звучит удобно, но у нее есть свои недостатки. Постоянные фоновые обновления требуют больше заряда батареи, больше мобильных данных и более сложное серверное подключение, что может замедлить приложение для всех. Подход Splync по запросу делает работу легкой и отзывчивой и предотвращает внезапные изменения экрана, когда вы проверяете бюджет. Есть также соображения безопасности. Постоянное подключение к серверу увеличивает окно для несанкционированного доступа и требует дополнительной логики аутентификации в фоновом режиме. Обновляя данные только по вашему запросу, Splync минимизирует ненужную сетевую активность и делает доступ к данным более предсказуемым и контролируемым.
Как работает .refreshable
Сначала я думал, что это обновление будет простым. В Swift, языке разработки для iOS, вы можете включить pull-to-refresh, просто добавив модификатор .refreshable к ScrollView или List. Однако это не сработало так, как я ожидал. После изучения проблемы я понял коренную причину. Я хотел добавить pull-to-refresh ко всему верхнему экрану, который содержит список друзей и список проектов. Но в оригинальном дизайне оба этих компонента также были прокручиваемыми. В результате .refreshable не знал, к какому прокручиваемому региону он относится, и жест не всегда обнаруживался. Чтобы исправить это, я перестроил список друзей и список проектов так, чтобы они больше не были прокручиваемыми сами по себе. Это безопасно, так как верхний уровень представления сам прокручивается, когда контент превышает высоту экрана. Как только я упростил структуру и обеспечил наличие только одного прокручиваемого контейнера, .refreshable наконец-то заработал как задумано. Я также добавил обычную кнопку обновления, чтобы пользователи могли просто нажать для обновления.
Не работает тяга? Потяните чуть дальше
В большинстве приложений iOS pull-to-refresh не активируется в момент, когда вы начинаете тянуть. SwiftUI имеет встроенный порог жеста: система ждет, пока вы потянете вниз на определенное расстояние, прежде чем запустить обновление. Это предотвращает случайные обновления, когда вы просто начинаете прокручивать с верхней части экрана. Splync следует этому стандартному поведению. Вы можете заметить, что короткое потягивание не обновляет контент, но чуть более длинное — достаточное, чтобы появился индикатор обновления — запускает обновление. Этот дизайн делает взаимодействие осознанным. Он предотвращает нежелательные обновления, особенно на экранах, где пользователи часто прокручивают длинные списки расходов или проектов. Как только вы слегка "перепотянете" верхнюю границу и индикатор появится, обновление начнется, как только вы отпустите палец. Это небольшой нюанс, но он способствует более плавному и предсказуемому опыту. Для ясности: дело не в том, чтобы тянуть дольше или прикладывать больше усилий. Главное — потянуть на большее расстояние.
Маленькая функция, тщательно проработанная
Pull-to-refresh может показаться незначительной функцией, но ее создание включало в себя проектные решения, техническую перестройку и удивительное количество соображений 'за кулисами'. Splync v1.10 делает обновление данных естественным, осознанным и предсказуемым — именно таким, каким оно должно быть в самом простом приложении для ведения совместного бюджета. Надеюсь, это обновление сделает ваш опыт более плавным и даст представление о том внимании, которое уделяется каждой детали. Спасибо, что используете Splync.