Documentation

서비스 (Services)

타이머·배터리·네트워크·위치 — 화면 밖의 값으로 앱을 움직이기

3 min read

서비스(Service) 는 눈에 보이는 UI 가 아니라, 앱이 실행되는 동안 살아있는 값을 공급하는 기능입니다. 정해진 주기로 신호를 보내는 타이머, 이 기기의 배터리·네트워크 상태, 현재 위치 — 이런 값들이 서비스에서 나옵니다.

서비스 종류

  • Timer — 지정한 간격으로(한 번 또는 반복) 발화합니다.
  • Battery — 배터리 잔량·충전 상태. 권한이 필요 없습니다.
  • Connectivity — 네트워크 연결 여부와 종류(Wi-Fi/셀룰러). 권한이 필요 없습니다.
  • Location — 현재 위치(위도·경도·고도·속도 등). 사용자의 위치 권한을 요청합니다.

서비스는 프로젝트 전역 또는 특정 화면 소속으로 만들 수 있습니다. 화면 소속 서비스는 그 화면이 나타날 때 시작되고 사라질 때 멈춥니다.

발화하면 무슨 일이 일어나나

서비스가 발화(fire)할 때의 동작을 두 가지 중에서 고릅니다.

  • Action Flow 실행 — 지정한 Action Flow 를 실행합니다. 측정값(Reading)은 플로우의 파라미터로 주입되어 액션에서 바로 사용할 수 있습니다.
  • Data Binding — Action Flow 없이, 측정값의 필드를 프로젝트 데이터에 바로 기록합니다. 그 데이터에 바인딩된 라벨·맵 등이 즉시 갱신됩니다.

측정값의 구조는 서비스 종류별 Built-in 스키마(읽기 전용)로 제공되어, 데이터를 다루는 곳 어디서든 참조할 수 있습니다.

시작과 정지

  • Auto Start — 앱(또는 소속 화면)이 시작될 때 자동으로 시작합니다.
  • Action Flow 의 Service Start / Service Stop 액션으로 원하는 시점에 켜고 끌 수 있습니다.
  • 서비스는 시작하는 즉시 현재 값으로 한 번 발화하므로, 첫 화면부터 값이 채워집니다.

1초 반복 타이머 + 현재 시각 기록 + 라벨 바인딩 — 세 가지면 시계 앱이 됩니다. Location 서비스의 측정값을 Map 에 바인딩하면 내 위치를 따라오는 지도가 됩니다.