Temel bir fitness uygulaması geliştirme

Bu kılavuzda, dönüşüm etkinlikleri için kullanılabilecek temel bir mobil adım sayacı sağlık ve ölçüm hizmetleri için ortak bir temel Fitness uygulamaları.

Bu iş akışı aşağıdaki API'leri entegre eder:

  • Bir mobil cihazdan adım verilerini almak için SensorManager.
  • Yerel verilerin depolanması için oda.
  • Health Connect, cihazda sağlık ve fitness verilerini depolayıp paylaşmak için kullanılır.

Veri okuma ve gerekli araçlar konusunda ek destek için Mobil cihazdan adımları izlemek için Android Sensör Yöneticisi'ni kullanın.

Uygulamanızı kullanmak için geliştirme ortamınızı henüz Health Connect aşağıdaki adımları uygulayın başlama adım.

Avuç içi cihazda izin isteme

Egzersiz verilerini almadan önce talepte bulunmanız ve uygun izinleri almanız gerekir izin verir.

En iyi uygulama olarak, yalnızca ihtiyacınız olan izinleri isteyin ve her izni bağlam içinde isteyerek Kullanıcı uygulamayı başlattığında bir defada gerekli izinleri vermelidir.

Pek çok egzersiz uygulamasının kullandığı adım sayacı sensörü ACTIVITY_RECOGNITION izni. Bu izni AndroidManifest.xml dosyanıza ekleyin dosya:

<?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>

Çalışma zamanında ACTIVITY_RECOGNITION iznini istemek için şu sayfaya bakın: izin isteği belgelerini inceleyin.

Ayrıca, manifest dosyasında bir FOREGROUND_SERVICE bildiriminde bulunmanız gerekir. Şu andan itibaren: ACTIVITY_RECOGNITION iznini istiyor, şunu belirtin: FOREGROUND_SERVICE_TYPE_HEALTH:

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

Ön plan hizmetleri sayfasını ziyaret edin inceleyebilirsiniz.

ViewModel kullanarak kullanıcı arayüzü durumunu yönetme

Kullanıcı arayüzü durumunu doğru şekilde yönetmek için bir ViewModel kullanın. Jetpack Compose ve ViewModels, bu yapılandırmanın iş akışını takip edin.

Ayrıca, Compose ile kullanıcı arayüzleri oluşturmanın kritik bir parçası olan kullanıcı arayüzü katmanını kullanın. gibi mimari en iyi uygulamaları izlemenizi sağlar. Tek Yönlü Veri Akışı. Kullanıcı arayüzü katmanı hakkında daha fazla bilgi için Kullanıcı arayüzü katmanı dokümanları.

Bu örnek uygulamada, kullanıcı arayüzünün üç temel durumu vardır:

  • Yükleniyor: Dönen bir daire gösterir.
  • İçerik: Bugünkü adımlarınızla ilgili bilgileri gösterir.
  • Hata: Bir sorun olduğunda mesaj gösterir.

ViewModel, bu durumları Kotlin Flow olarak gösterir. Korumalı sınıf kullanarak şunları yapabilirsiniz: olası durumları temsil eden sınıf ve nesneleri içerir:

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()
}

Daha sonra Compose kullanıcı arayüzü, bu Flow öğesini Compose State olarak toplar ve işlem yapar:

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