Tworzenie podstawowej aplikacji do fitnessu

Z tego przewodnika dowiesz się, jak utworzyć podstawową aplikację mobilną licznika kroków, stanowi wspólną podstawę wielu Aplikacje do fitnessu.

Ten przepływ pracy integruje te interfejsy API:

  • SensorManager do pobierania danych dotyczących kroków z urządzenia mobilnego.
  • Pomieszczenie na lokalne przechowywanie danych.
  • Health Connect służy do przechowywania i udostępniania danych o zdrowiu i aktywności fizycznej na urządzeniu.

Więcej informacji o odczytywaniu danych i wymaganych narzędziach znajdziesz w sekcji Korzystanie z: Menedżera czujników Androida do śledzenia kroków na urządzeniu mobilnym.

Jeśli nie masz jeszcze skonfigurowanego środowiska programistycznego do korzystania z Health Connect, postępuj zgodnie z tymi wskazówkami pierwsze kroki kroków.

Poproś o uprawnienia na urządzeniu przenośnym

Przed uzyskaniem danych dotyczących ćwiczeń musisz poprosić o odpowiednie uprawnień.

Zalecamy, aby prosić o przyznanie uprawnień tylko w przypadku, gdy są potrzebne wymagaj każdego uprawnienia w kontekście, zamiast prosić o wszystkie uprawnień jednocześnie, gdy użytkownik uruchomi aplikację.

Czujnik licznika kroków, z którego korzysta wiele aplikacji do ćwiczeń, wykorzystuje Uprawnienia: ACTIVITY_RECOGNITION. Dodaj to uprawnienie w pliku AndroidManifest.xml. plik:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools">

  <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>

</manifest>

Aby w czasie działania poprosić o uprawnienie ACTIVITY_RECOGNITION, zapoznaj się z dokumentację prośby o uprawnienia.

Musisz też zadeklarować FOREGROUND_SERVICE w pliku manifestu. Ponieważ Ty proszą o uprawnienie ACTIVITY_RECOGNITION, zadeklaruj FOREGROUND_SERVICE_TYPE_HEALTH:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_HEALTH"/>

Odwiedź Usługi działające na pierwszym planie. aby dowiedzieć się więcej o usługach i typach usług na pierwszym planie.

Zarządzanie stanem interfejsu za pomocą modelu widoku danych

Aby prawidłowo zarządzać stanem interfejsu użytkownika, użyj ViewModel. Jetpack Compose i ViewModels umożliwiają bardziej szczegółowe przyjrzenie się tej procesu tworzenia kampanii.

Używaj też warstw interfejsu użytkownika, które są kluczowym elementem tworzenia UI za pomocą Compose. i pozwala stosować sprawdzone metody dotyczące architektury, Jednokierunkowy przepływ danych. Aby dowiedzieć się więcej o nakładaniu warstw interfejsu użytkownika, zapoznaj się z artykułem Dokumentacja warstwy interfejsu

W tej przykładowej aplikacji interfejs użytkownika ma 3 podstawowe stany:

  • Wczytywanie: pokazuje obracające się okrąg.
  • Treść: pokazuje informacje o liczbie kroków na dziś.
  • Błąd:pokazuje komunikat, gdy coś poszło nie tak.

ViewModel ujawnia te stany jako Flow Kotlin. Użyj zapleczonej klasy do: zawierają klasy i obiekty, które reprezentują możliwe stany:

class TodayScreenViewModel(...) {

  val currentScreenState: MutableStateFlow<TodayScreenState> = MutableStateFlow(Loading)

  [...]

}

sealed class TodayScreenState {
    data object Loading : TodayScreenState()
    data class Content(val steps: Long, val dailyGoal: Long) : TodayScreenState()
    data object Error: TodayScreenState()
}

Interfejs tej funkcji zapisuje ten element Flow jako element State w narzędziu do tworzenia wiadomości i działa na nim:

val state: TodayScreenState = todayScreenViewModel.currentScreenState.collectAsState().value