Temel bir fitness uygulaması geliştirme

Bu kılavuz, birçok Sağlık ve Fitness uygulamasının ortak temelini oluşturan temel bir mobil adım sayacı uygulaması oluşturma konusunda size yol gösterir.

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

  • Bir mobil cihazdan adım verilerini almak için SensorManager.
  • Yerel veri depolama için oda.
  • Cihazda sağlık ve fitness verilerini depolamak ve paylaşmak için Health Connect.

Veri okuma ve gerekli araçlar ile ilgili ek destek için Adımlarınızı bir mobil cihazdan izlemek için Android Sensor Yöneticisi'ni kullanma konusuna bakın.

Health Connect özelliğini kullanmak için geliştirme ortamınızı henüz ayarlamadıysanız bu başlangıç adımlarını uygulayın.

Avuç içi cihazlarda izin isteme

Egzersiz verilerini almadan önce istekte bulunmanız ve uygun izinleri almanız gerekir.

En iyi uygulama olarak, yalnızca ihtiyacınız olan izinleri isteyin ve kullanıcı uygulamayı başlattığında tüm izinleri tek seferde istemek yerine her izni ilgili bağlamda istediğinizden emin olun.

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

<?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 izin isteği belgelerine bakın.

Ayrıca manifest dosyasında bir FOREGROUND_SERVICE tanımlamanız da gerekir. ACTIVITY_RECOGNITION iznini istediğiniz için FOREGROUND_SERVICE_TYPE_HEALTH değerini beyan edin:

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

Ön plan hizmetleri ve ön plan hizmet türleri hakkında daha fazla bilgi edinmek için Ön plan hizmetleri sayfasını ziyaret edin.

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

Kullanıcı arayüzü durumunu düzgün bir şekilde yönetmek için ViewModel kullanın. Jetpack Compose ve ViewModels bu iş akışına daha ayrıntılı bir bakış sunar.

Ayrıca, Compose ile kullanıcı arayüzleri oluşturmak için önemli bir parça olan ve Tek Yönlü Veri Akışı gibi mimari en iyi uygulamalarını takip etmenize olanak tanıyan kullanıcı arayüzü katmanını kullanın. Kullanıcı arayüzü katmanları hakkında daha fazla bilgi edinmek için kullanıcı arayüzü katmanı belgelerine bakın.

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 şeyler ters gittiğinde bir mesaj gösterir.

ViewModel, bu durumları Kotlin Flow olarak gösterir. Olası durumları temsil eden sınıf ve nesneleri yerleştirmek için kapalı bir sınıf kullanın:

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

Ardından Compose kullanıcı arayüzü bu Flow öğesini bir Oluştur State olarak toplar ve üzerlerinde işlem yapar:

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