"새로고침 가능"이란
대부분의 iPhone 사용자들은 화면을 아래로 당기면 많은 앱에서 콘텐츠가 새로고침된다는 것을 본능적으로 알고 있습니다. 이것이 바로 "새로고침 가능"의 의미입니다. 이전 버전의 Splync는 이 기능을 지원하지 않았습니다. 화면을 새로고침하는 유일한 방법은 앱을 닫았다가 다시 여는 것이었습니다. Splync v1.3부터 로그인이 유지되었기 때문에 큰 문제는 아니었지만, 이상적이지 않았습니다. Splync는 가장 쉬운 공유 예산 관리 앱을 목표로 하기 때문에, 화면 새로고침이 완전히 쉬워야 합니다. 그래서 v1.10에서는 아래로 당겨 새로고침하는 기능을 도입하여 Splync를 완전히 새로고침 가능하게 만들었습니다.
Splync가 데이터를 새로고침하는 두 가지 방법(전체 새로고침 / 화면 업데이트)
홈 화면에서는 프로필 사진, 친구 목록, 프로젝트 목록이 표시되며, 아래로 당기면 전체 새로고침이 이루어집니다. 이는 모든 계정 관련 데이터를 다시 가져오는데, 마치 로그아웃했다가 다시 로그인하는 것과 비슷합니다. 이 때문에 로딩 메시지가 표시되면서 새로고침이 약 1초 정도 걸릴 수 있습니다. 지출 목록이 표시되는 프로젝트 화면에서는 같은 아래로 당기는 제스처가 가벼운 화면 업데이트를 실행합니다. 카테고리 변경이나 지출 업데이트와 같은 프로젝트 특정 데이터만 새로고침됩니다. 누군가가 새로운 지출을 추가했는지 보기 위해 1초를 기다릴 필요가 없습니다. 또 하나 알아두셔야 할 점은 Splync는 서버에서 프로젝트 데이터를 자동으로 가져오지 않습니다. 앱은 사용자가 변경을 가할 때, 지출을 열어 세부 정보를 볼 때, 프로젝트 페이지를 수동으로 새로고침할 때만 업데이트를 확인합니다.
실시간 동기화는 왜 안 되나요
일부 사용자는 친구가 새로운 지출을 추가하면 바로 프로젝트 업데이트가 나타나기를 기대할 수도 있습니다. 실시간 동기화는 편리해 보이지만 중요한 단점이 있습니다. 지속적인 백그라운드 업데이트는 더 많은 배터리와 모바일 데이터를 필요로 하며, 더 복잡한 서버 연결을 요구하여 모두에게 앱이 느려질 수 있습니다. Splync의 온디맨드 접근 방식은 경험을 가볍고 반응 빠르게 유지하며, 예산을 검토할 때 화면이 갑자기 변하지 않도록 방지합니다. 보안 문제도 고려해야 합니다. 서버에 지속적으로 연결되면 무단 접근 가능성이 높아지고, 백그라운드에서 추가 인증 로직이 필요합니다. 사용자가 행동할 때만 새로고침하게 함으로써 Splync는 불필요한 네트워크 활동을 최소화하고 데이터 액세스를 더 예측 가능하고 통제되게 유지합니다.
.refreshable 코드의 비하인드
처음에는 이 업데이트가 간단할 거라고 생각했습니다. iOS 개발에 사용되는 Swift에서는 ScrollView나 List에 .refreshable 수식어를 붙이면 됩니다. 그러나 기대한 대로 작동하지 않았습니다. 문제를 파고들면서 근본 원인을 깨달았습니다. 친구 목록과 프로젝트 목록을 포함하는 상단 화면 전체에 아래로 당겨 새로고침을 추가하고 싶었습니다. 그러나 원래 디자인에서는 이 두 구성 요소가 모두 스크롤 가능했습니다. 결과적으로, .refreshable은 어느 스크롤 가능한 영역에 속하는지 알 수 없었고, 제스처가 일관되게 감지되지 않았습니다. 이를 해결하기 위해 친구 목록과 프로젝트 목록을 더 이상 독립적으로 스크롤할 수 없도록 구조를 변경했습니다. 이는 안전한 방법입니다. 왜냐하면 최상위 뷰 자체가 콘텐츠가 화면 높이를 초과할 때 스크롤되기 때문입니다. 구조를 단순화하고 하나의 스크롤 가능한 컨테이너만 있게 하자 .refreshable이 의도대로 정확히 작동했습니다. 또한 사용자가 탭하여 새로고침할 수 있는 일반적인 새로고침 버튼도 추가했습니다.
아래로 당기기가 잘 되지 않으세요? 조금 더 당겨보세요
대부분의 iOS 앱에서는 아래로 당기기를 시작할 때 바로 새로고침이 활성화되지 않습니다. SwiftUI에는 내장된 제스처 임계값이 있어서 특정 거리까지 당기기 전에는 새로고침이 시작되지 않습니다. 이는 단순히 화면 상단에서 스크롤을 시작할 때 부주의한 업데이트를 방지합니다. Splync도 이 표준 동작을 따릅니다. 짧게 당기면 콘텐츠가 새로고침되지 않지만, 새로고침 표시기가 나타날 정도로 조금 더 길게 당기면 업데이트가 시작됩니다. 이 디자인은 상호작용을 의도적으로 유지합니다. 특히 사용자가 긴 지출 목록이나 프로젝트를 자주 스크롤하는 화면에서 원치 않는 새로고침을 피할 수 있습니다. 상단 경계를 살짝 '넘어서' 표시기가 나타나면 손가락을 떼자마자 새로고침이 시작됩니다. 작은 디테일이지만 부드럽고 예측 가능하게 만듭니다. 명확히 하자면, 오래 당기거나 강한 압력을 가하는 것이 아닙니다. 중요한 것은 더 긴 거리를 당기는 것입니다.
작지만 정성껏 만든 기능
아래로 당겨 새로고침은 작은 상호작용처럼 보일지 모르지만, 설계 선택과 기술적 재구성, 놀랄 만한 수많은 고려사항이 필요했습니다. Splync v1.10은 데이터 새로고침을 자연스럽고 의도적이며 예측 가능하게 만듭니다. 가장 쉬운 공유 예산 앱에서 마땅히 그래야 하는 방식입니다. 이 업데이트가 더 부드러운 경험을 제공하고 매 세부 사항에 담긴 정성을 엿볼 수 있기를 바랍니다. Splync를 사용해 주셔서 감사합니다.