Core Motion'ın Step İzlemedeki Rolü Anlamak

Apple'ın Core Motion çerçevesi, geliştiricilerin düşük seviyeli sinyal işlemesine odaklanmasını sağlayan birleşik bir API'dir.In abstracting the complexities of raw sensör data from accelerometer, gyroskop, ve pedometre, Core Motion, düşük seviyeli sinyal işlemesine dayanan bir API sağlar. Modern fitness uygulamaları Core Motion'a gerçek zamanlı ve tarihsel adım, mesafe tahminleri ve hatta aktivite sınıflandırmalarına dayanır - tüm kullanıcı gizliliğine ve cihaz performansına saygı gösterir.

Adım takip kalbinde, geliştiricilerin doğrudan bir hızlamalarını gerektiren bir ölçüm için kullandıkları hız ve görüntüyü ortaya koyan, farklı iPhone ve Apple Watch modellerinde tutarlılık sağlar.

Adım ve Aktivite İzleme için Temel Bileşenler

CMPedometre - İlk Adım İzleme Interface

[FONT=0)CMPedometre[[Dönetici:0)[Dönetici:0) Sınıf, iOS uygulamaları için adım verileri elde etmek için başlangıç noktasıdır. hem de ) Bu ölçümler, geliştiricilerin kullanıcılara sunabilmeleri için sağlar.

CMPedometre kullanmadan önce, bu tür vakaları mükemmel bir şekilde ele geçirmelisiniz ve tüm modern iOS cihazlarının bir yerleşik pedometre olmadan eski model veya Apple Watches'u desteklemesi gerekir.Uzgun bir uygulama bu tür davaları mükemmel bir şekilde idare eder ve bu özelliği devre dışı bırakır.

CMMotionManager – Raw Sensör Advanced Use Cases için Erişim

CMPedometre en çok adım adım adım adım adım adıma ihtiyaç duyarken, [[0)CMMotionManager) geliştiricilere cihazın başarılı bir şekilde erişim sağlar, gyroskop ve magnetometre için en iyi şekilde rezervuar algoritmaları, olağandışı gait analizi için kullanılabilir, veya yönlendirme okumaları ile adım verileri bir araya getirmeniz gerektiğinde.

CMMotionManager'ın otomatik olarak adım sayılarını hesaplamadığı unutmayın; kendi filtrelemenizi ve mantığı çiğ hızlandırma değerlerini kullanarak uygulamanız gerekir. Bu yaklaşım daha karmaşık ve tipik olarak sadece yürüyüş senaryolarında hassas veya tespit etmek zorunda kalırsanız (örneğin tekerlekli sandalye kullanımı).

CMStepCounter ve Migration

iOS sürümlerini kullanarak sürüm için [[FONT=FONT=FONT=0) sürümler (=FONT=0))))))))))))))[değiştir | kaynağı değiştirmiş olduğunuz için, aşağıdaki gibi, aşağıdaki gibi bir şekilde yapılır.

Adım İzleme Çalışma Akışı Uygulamayı Etkiliyor

Erişilebilirlik ve İzin Vermek

Her adım uygulama, donanım ve sistem desteği için bir kontrol ile başlamalıdır. Cihazın adım veri sunabileceğini doğrulamak için statik yöntem GÜNCELSEÇE:17'yi kullanın.Eğer adımlar mevcut değilse, kullanıcıya açık bir açıklama göster ve ilgili UI elementlerini devre dışı bırakmak.

Kullanıcı gizliliği kritiktir: Core Motion otomatik olarak kullanıcıdan izin talep eder, uygulamanızın neden veriye ihtiyacı olduğunu ve aramalarınızın sessiz bir şekilde başarısız olacağınız.SağlıkKit entegrasyonu için (daha sonra bölüm) ayrıca dosyanızın anahtarına ihtiyacınız var.

Pedometre Gerçek Zamanlarda Güncellemeler Başlıyor

Canlı adım güncellemeleri almak için, çağrıştırmak için, kullanıcı iznini inkar ederse, hata genellikle mevcut olan tarih ve saattir. eller blok her seferinde yeni adım verisi mevcuttur.Eller içinde, her zaman hataları kontrol edin - örneğin, kullanıcı iznini inkar ederse, hatanın genellikle mevcut değildir.

Ortak bir model, örneğin görüş kontrol veya yönetici sınıfın mülkü olarak aritFLT:25 oluşturmak ve ilgili ekran görünürken güncellemeye başlamaktır. Örneğin:

let pedometer = CMPedometer()
pedometer.startUpdates(from: Date()) { (data, error) in
 guard let data = data, error == nil else { return }
 DispatchQueue.main.async {
 self.stepCountLabel.text = "\(data.numberOfSteps) steps"
 }
}

Gerçek zamanlı güncellemeler, canlı adım karşıtlığı oluşturmak veya egzersiz yapmak için idealdir. ancak, süresiz olarak çalışan soldan ayrılırsa güç birliği olabilirler.Kullanıcı takip görünümünden uzaklaşırken veya uygulama arka plan yeteneğine girdiğinden emin olun.

Tarihsel Adım Data

Canlı güncellemelere ek olarak, CMPedometre, belirli süre boyunca adım sayılabilir.Bu, özellikle de geçmişteki tarihler için, haftalık veya aylık summary. sorgu aktif değilse, tutarlı bir şekilde çalışır ve sistem tarihsel verilerin daraltılmasını sağlar.

Performans şişelerinden kaçınmak için, makul zaman pencerelerini sınırlandırma sorguları (örneğin, bir seferde bir haftadan fazla değil) ve sık sık sık tarihsel grafikler gösterirseniz sonuçları önbellekleyebilirsiniz. Ayrıca, Core Motion sorgularını SağlıkKit ile bir araya getirebilirsin.

Battery Life'ı Korumak için Güncellemeleri Durdurmak

Her zaman pedometrenize göre 8,5. Artık canlı verilere ihtiyaç duymadığınız zaman, güncellemeleri durdurmak için bataryayı boşaltabilir ve kullanıcı şikayetlerini kullanarak güncelleme yaşam döngüsüne yol açabilir.Spektif iletişim araçlarıyla birlikte, Core Motion güncellemelerinin uygulamayı sürekli takip etmesi gerekmez (örneğin, bir yürüyüşçü), sistemi hala bataryayı korumak için sınırlamalar getirir.

Hataları ve Edge Vakalarını Kullanın

Cihaz Uyumluluk ve Hareket Sensör Kalibrasyon

Tüm iOS cihazları aynı hareketle ilgili yeteneklerine sahip değil. iPhone 5s ve daha sonra birden fazla cihazda kullanım yükleri olan bir Apple M serisi hareket ortaklarını da dahil ediyor, ancak tam davranış farklı olabilir. Örneğin, iPhone SE (1. nesil) adım sayma, iPod touch (6. nesil) her zaman çoklu cihaz ailelerinde kullanılabilirliği kontrol ediyor.

Hareket sensörleri bazen kalibrasyon gerektirir. Core Motion bu otomatik olarak çalışır, ancak bir cihaz yeniden başlatmasından sonra ilk birkaç güncelleme biraz daha doğru olabilir. Uygulamada, bu nadiren fark edilir, ancak beklenen değerlerden biraz uzak tutmanız gerekir.

Interruptions ve Arka Updates Yönetimi

Uygulamanız arka plana giderse, Core Motion geçici olarak güncellemeleri askıya alabilir. Upon foregrounding, pedometre güncellemelerini yeniden başlatmanız gerekir.Doğru bir deneyim sağlamak için, son bilinen verileri kesintiden önce kaydedilen bir zaman damgasını sorgulayın ve boşluk doldurmanız gerekir.Bu yaklaşım, uygulama aktif olarak kaybedildiğinde hiçbir adım kaybolmaz.

SaatOS arkadaş uygulamaları için, pedometre verileri Apple Watch'un hareket koişleri aracılığıyla otomatik olarak senkronize edilir, ancak iOS uygulamanız cihazın kendi pedometresini açıkça sorgulamalıdır - otomatik olarak saat içinde kaydedilen adımlar almaz. HealthKit entegrasyonu (daha sonra) bu senkronizasyon problemini çözmelidir.

Performans ve Gizlilik için En İyi Uygulamalar

Optimizing Battery ve İşleme Overhead

bataryayı en aza indirmek için, bu yönergeleri takip edin:

  • Kullanım:0)CMPedometre[[Dönetici:0) CMMotionManager yerine adım sayma; pedometre donanıma hazır.
  • Sadece kullanıcı adım izlemesini veya bir egzersizi başlatmasını sağlarken güncellemeye başlayın.
  • Takip ekranı kaybolduğunda veya egzersiz biter.
  • Pasif adım sayma (e.g., her zaman tek başına adım), sistem tarafından kaydedilen adımları okumak için SağlıkKit kullanmayı düşünün - sistemin kendi pedometresi arka planda verimli çalışır.
  • Aynı zamanda tekrarlanan sorgulardan kaçınmak için yerel olarak tarihsel veriler.

Gizlilik Uyumu ve Data

Adım verileri hassas sağlık bilgileri olarak kabul edilir. Apple sıkı gizlilik kurallarını uygular:

  • Her zaman teli içerir; bunu yapmama izin verme başarısızlığı.
  • Adım verilerini üçüncü taraf analitik veya açık kullanıcı onayı olmadan paylaşma.
  • Bir sunucuda adım veri depolarsanız, bunu geçişte ve geri kalanında şifreleyin ve kullanıcıların verilerini silmelerini sağlamak için bir yol sağlayın.
  • Kullanıcının iznini geri alma kararına saygı gösterin; uygulamanız hatayı kusursuz bir şekilde ele almalı ve adıma devre dışı bırakmalı.

Apple Health ile SağlıkKitle Bütünleme

Okuma ve Yazma Adım Data to HealthKit

Kapsamlı bir fitness çözümü için, Core Motion'ı ESD ile bir araya getirin:0)SağlıkKit[DÜT:1) ... Core Motion gerçek zamanlı veriler sağlarken, SağlıkKit tüm sağlık metrikleri için merkezileştirilmiş depolar olarak hizmet eder. Diğer uygulamalar veya sistem kendisi tarafından yazılmış adım notları okuyabilirsiniz ve kullanıcının sağlık kaydı ile paylaşmak için kendi adım verilerini SağlıkKit'a yazabilirsiniz.

Adımlar yazmak için, aritFLT:33 türünden oluşan bir tür olarak yaratmak ve onu kullanmak için GÜNCÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN

Adım Data Synchronized

Tarihsel adımları okuduğunuzda, bir stratejiyi iki katına çıkarmak için SağlıkKit'i kullanabilirsiniz: ya uzun vadeli depolama için Core Motion'a güvenebilir veya Core Motion'in tarihsel sorgularını görmezden gelirseniz, çoğu sağlık uygulamaları, iki hesaptan kaçınmak için, bir stratejiyi kabul eder: ya da uzun süre ve sağlıkKit'e güven.

Gelişmiş Adım İzleme Gelişmişleri

Core Motion ile etkinlik sınıflandırması

Core Motion'ssMIZD:39), kullanıcının mevcut hareket durumunu sınıflandırmak için mümkündür – e.g., stationary, yürüyüş, koşu, bisiklet veya sürüş. Bunu adım verileriyle birleştirmek, uygulamanızın mevcut bağlam-aware geri bildirimine olanak sağlar, örneğin “10 dakika boyunca yürüyorsunuz” karşı “Hazırsınız”, “Hazırda bisikletle.”

Pedometre Data'dan gelen ölçüm ve mekantriks

[[DÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ

Adım Hassasiyeti için Hızlandırma Verileri

CMPedometrenin inşa edilmiş filtrelerinin belirli aktiviteler sırasında adım kaçırdığını bulursanız (örneğin, elraillerle tırmanma), kullanım vakalarının büyük çoğunluğu için yeterince doğru olması gerekir - ham sensör işleme nadiren gereklidir.

Gerçek Dünya Tahminleri ve Testleri

Farklı iPhone Modelleri ve iOS Versions hakkında test edin

Adım yürütme davranışı, cihazlar arasında değişebilir. Uygulamanızı en azından bu konfigürasyonlarda test edin:

  • iPhone 6s veya daha yaşlı (M9 koprocessor olmadan? aslında tüm iPhone 5'ler ve daha sonra hareket ortakları var, ancak daha eskiler daha az kesin veriler olabilir).
  • iPhone 8 veya daha sonra (yeni ortak işleyiciler)
  • iOS 13 + (ensures latest API).
  • iPad (bazı iPad modelleri pedometreleri var, ancak birçok şey değil).

Uygulamanızın çıktısını doğrulamak için ondevice konsolunu kullanın ve uygun şekilde çalışmanızı doğrulayın. Donanım tabanlı bir test yürüyüşünü (örneğin, 100 adım el olarak sayılır) kullanmayı düşünün.

Geçerli Adım Kont

Hiçbir pedometre %100 doğru. Kullanıcı beklentilerini belirlemek için, tipik bir doğruluk aralığı yayınlayın (örneğin, “accuracy cihaz tarafından değişir, ancak tipik hata% 5 içinde”). gelişim sırasında, uygulamanızın adımlarını yerleşik sağlık uygulaması gibi bilinen bir temelle karşılaştırın.Regresyon testi için, otomatik olarak bir masa ile yürümek veya manuel test dizilerini kullanmak.

Core Motion-In ile bir üretimReady Step Tracker inşa edin

Core Motion ile takip edilen adım, Apple'ın yönergelerini takip ettiğinizde basit bir süreçtir. Start withETHFLT:0)CMPedometre), adım sayar, [[FONTD:2}CMMotionActivityManager) ile entegre edilir, uzun vadeli depolama ve çapraz erişim için geçerlidir.

Daha fazla okuma için Apple'ın resmi belgelerine başvurun:

  • [FONT=0)Core Motion Framework[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜSTÜSİ - Genel Bakış ve Referans.
  • [FONT=0)CMPedometre Sınıfı Referans[[Döntilmiş: 1) Detaylı API açıklaması.
  • [FONT:0)SağlıkKit Çerçeve) - sağlık veritabanı ile adım verileri bütünleştirmek.
  • [FONT=0)CMMotionActivityManager[D][/FONT][/FONT=0)
  • [FONT:0)Ensuring Step Counting Availability[[Dönem: 1) Donanım desteği için belge.

Core Motion'in optimize edilmiş API'leri ve Apple'ın en iyi uygulamalarını takdir ederek, doğru, batarya dostu ve kullanıcı mahremiyetine saygılı bir deneyim sunabilirsiniz - herhangi bir başarılı fitness uygulaması için kritik bir kombinasyon.