Companion App — nedir bu, companion uygulama geliştirme

Yazar: IT Sectr Yayınlanma: 2026-02-16 Okuma süresi: 9 dk

Companion App — Apple Watch ve Wear OS giyilebilir cihazları için, akıllı telefondaki ana uygulamayla birlikte çalışan bir uygulama arkadaşıdır. Companion App, WatchConnectivity (iOS) veya Wearable Data Layer (Android) aracılığıyla verileri senkronize eder, saatte bildirimleri görüntüler ve bağımsız olarak işlev görebilir. Geliştirme, watchOS için Swift ve Wear OS için Kotlin ile yapılır. Daha fazla bilgi için WatchConnectivity Docs sayfasını ziyaret edin.

Önemli Noktalar

  • Companion App — telefonundaki ana uygulamayla çalışan bir giyilebilir uygulama
  • WatchConnectivity — iPhone ve Apple Watch arasında veri alışverişi için bir framework
  • Wearable Data Layer — Android uygulamasını Wear OS ile senkronize etmek için API
  • Bağımsız çalışma — saat verileri önbelleğe alır ve telefon bağlantısı olmadan çalışır
  • Push bildirimleri — companion, telefondaki bildirimleri bilekte görüntüler

Companion App nedir — giyilebilir cihazlar için bir uygulama?

Companion App — Apple Watch veya Wear OS giyilebilir cihazları için, ana iOS veya Android uygulamasıyla birlikte gelen bir uygulamadır. Ana amaç, işlevselliği bileğe genişletmektir: hızlı bilgi görüntüleme, mesajlara yanıt verme, müzik kontrolü, egzersiz takibi. Geliştirici bunu derlemeye dahil ettiyse, telefona ana uygulama yüklendiğinde Companion App otomatik olarak saate yüklenir.

Mimari bir companion uygulaması iki bileşenden oluşur: iOS/Android uygulaması (ana) ve watchOS/Wear OS uygulaması (arkadaş). Aralarındaki iletişim sistem API'leri aracılığıyla gerçekleşir: Apple için WatchConnectivity ve Google için Wearable Data Layer. Veriler Bluetooth veya Wi-Fi üzerinden arka planda aktarılır — kullanıcı senkronizasyon sürecini görmez. Saatteki uygulamanın, mobil olandan farklı, küçük ekrana uyarlanmış kendi kullanıcı arayüzü olabilir.

Companion uygulama türleri telefona bağımlılık derecesine göre farklılık gösterir. Ayna uygulamalar telefon verilerinin bir kopyasını görüntüler ve bağlantı olmadan çalışmaz. Ayrıştırılmış uygulamalar kendi mantığına sahiptir, verileri önbelleğe alır ve telefondan bağlantı kesildiğinde işlevselliğin bir kısmını korur. Bağımsız uygulamalar (watchOS 6+ ve Wear OS 3+) telefon olmadan kurulabilir ve kendi ağ erişimiyle tamamen bağımsız olarak çalışır.

WatchConnectivity: iPhone ve Apple Watch senkronizasyonu

WatchConnectivity — iPhone ve Apple Watch arasında çift yönlü iletişim için Apple'ın framework'ü. Dört veri aktarım mekanizması sağlar: Application Context (bilinen son durum), File Transfer (herhangi bir boyuttaki dosyalar), User Info (garantili teslimatlı sözlükler) ve Interactive Messaging (gerçek zamanlı çift yönlü iletişim). Sistem, mesafe ve sinyal kalitesine göre otomatik olarak Bluetooth veya Wi-Fi seçer.

swift
import WatchConnectivity

class PhoneSessionManager: NSObject, WCSessionDelegate {
    func activateSession() {
        WCSession.default.delegate = self
        WCSession.default.activate()
    }
    func sendWorkoutData(_ data: WorkoutData) {
        let dict = ["heartRate": data.heartRate,
                     "calories": data.calories] as [String: Any]
        WCSession.default.transferUserInfo(dict)
    }
    func session(_: WCSession,
               didReceiveUserInfo: [String: Any]) {
        DispatchQueue.main.async {
            NotificationCenter.default.post(
                name: .workoutDataReceived,
                object: didReceiveUserInfo)
        }
    }
}

Interactive Messaging — garantili gerçek zamanlı teslimata sahip tek WatchConnectivity mekanizması. Bağlantı aktif olduğunda bir mesaj gönderilir ve 200–500 ms içinde yanıt alır. Acil yanıt gerektiren eylemler için kullanılır: egzersiz başlatma, ödeme onaylama, akıllı ev kapısı açma. Oturum her iki cihazda da aktif olmalıdır — saat kilitliyse veya uygulama arka plandaysa teslimat garanti edilmez.

File Transfer API büyük miktardaki veriler için tasarlanmıştır — görüntüler, ses dosyaları, dışa aktarılan egzersizler. Uygulama kapalı olsa bile dosyalar arka planda aktarılır. Sınır, kuyrukta en fazla 10 eşzamanlı aktarımdır. Application Context en ekonomik mekanizmadır: yalnızca son durumu iletir, önceki gönderilmemiş bağlamları iptal eder. Ayarları ve mevcut durumu senkronize etmek için idealdir.

Wearable Data Layer: Android ve Wear OS senkronizasyonu

Wearable Data Layer — bir Android cihazı ile Wear OS saatleri arasında veri senkronizasyonu için Google Play Services'den bir API. Üç protokol sağlar: DataItem (anahtar-değer çifti senkronizasyonu), MessageClient (tek yönlü mesajlar) ve ChannelClient (akış verisi). DataItem'lar Google Cloud üzerinden otomatik olarak senkronize edilir — telefon kullanılamıyorsa, bağlantı yeniden kurulduğunda veri teslim edilir.

kotlin
class WearableSyncService : WearableListenerService() {
    override fun onDataChanged(dataEvents: DataEventBuffer) {
        dataEvents.forEach { event ->
            when (event.type) {
                DataEvent.TYPE_CHANGED -> {
                    val uri = event.dataItem.uri
                    val path = uri.path // /workout/heartrate
                    val data = DataMapItem
                        .fromDataItem(event.dataItem)
                        .dataMap
                    val bpm = data.getInt("bpm")
                    updateUI(bpm)
                }
            }
        }
    }
}

MessageClient — bir yol ve bayt dizisi ile tek yönlü mesajlar gönderir. "Egzersizi başlat" veya "Müziği duraklat" gibi komutlar için kullanılır. Cihaz bağlıysa mesaj güvenilir bir şekilde teslim edilir. Wear OS'de mesaj almak için WearableListenerService uygulayın ve manifest dosyasına kaydedin. MessageClient otomatik önbellekleme desteklemez — saat bağlantısı kesilirse mesaj kaybolur.

ChannelClient — akış verileri için bir protokol: ses, video, sürekli sensör akışları. Bayt dizilerinin iletildiği çift yönlü bir kanal açar. Yalnızca Wear OS 2.0+'da desteklenir. ChannelClient, Bluetooth üzerinden aramalar için telefondan saate ses aktarmak ve harici Bluetooth sensörlerinden (kalp atış hızı monitörü, bisiklet bilgisayarı) gelen verileri telefon aracılığıyla saate iletmek için kullanışlıdır.

Saatte companion uygulamanın bağımsız çalışması

Bağımsız çalışma — bir companion uygulamasının telefon bağlantısı olmadan işlev görme yeteneği. Cellular modülü olan watchOS'ta uygulama, ağ isteklerini doğrudan eSIM üzerinden gönderir. LTE'li Wear OS'ta benzer işlevsellik mevcuttur. Hücresel modül olmasa bile saat, telefondaki en son verileri önbelleğe alır ve bağlantı kesildiğinde görüntüler — kullanıcı son senkronizasyon anındaki bilgileri görür.

ModVeriKullanılabilirlikÖrnek
ÇevrimiçiSunucudan/telefondan canlıTamNavigasyon rotası
ÖnbellekteTelefondan en sonSınırlıKişi listesi
ÇevrimdışıSaatte yerelMinimumZamanlayıcı, kronometre

Veri önbelleğe alma — bağımsız çalışmanın önemli bir unsurudur. Uygulama, alınan son durumu saatin yerel deposuna kaydetmelidir. watchOS'ta UserDefaults veya CoreData kullanılır, Wear OS'ta — Room Database veya DataStore. Bağlantı yeniden kurulduğunda, önbellek arka plan senkronizasyonu ile güncellenir. Veriler 24 saatten daha eskiyse, uygulama "Telefon bağlantısını güncelleyin" mesajını gösterir.

Sınırlı ekran için giyilebilir arayüz — saatin ekranı 1.5–2 inçtir — companion uygulama arayüzü mümkün olduğunca öz olmalıdır. Apple, watchOS'ta tek sütunlu NavigationView önerir, Google, Wear OS'ta gezinme için kaydırmalı kart listesi önerir. Düğmeler rahat dokunma için en az 44pt boyutunda olmalıdır. Metin giriş alanlarından kaçının — önceden tanımlanmış yanıtlar, dikte veya Digital Crown kaydırma tekerleği kullanın.

Enerji verimli tasarım — companion uygulaması saatin pilini birkaç saat içinde bitirmemelidir. Minimum aralıkla arka plan güncellemeleri kullanın. watchOS'ta WatchConnectivity, pil zayıf olduğunda aktarımları duraklatır ve şarjdan sonra devam ettirir. Wear OS'ta Wearable Data Layer, enerji tasarrufu için küçük aktarımları otomatik olarak tek bir aktarımda gruplar. Bilek kaldırma — kullanıcı bileğini kaldırdığında arayüzü güncelleyin.

Companion uygulama geliştirme için en iyi uygulamalar

Companion uygulama mimarisi olası bağlantı kaybı düşünülerek tasarlanmalıdır. Repository desenini kullanın: telefonda tek bir veri kaynağı, saatteki yerel depo ile senkronize olur. Saatteki ViewModel, yerel depoya abone olur ve bağlantı durumundan bağımsız olarak verileri görüntüler. Bağlantı yeniden kurulduğunda, saatteki Repository, WatchConnectivity veya Wearable Data Layer aracılığıyla veri ister ve yerel depoyu günceller.

kotlin
class WorkoutRepository constructor(
    private val localStorage: WorkoutDao,
    private val wearableClient: WearableClient
) {
    val workoutFlow: Flow<Workout?> = merge(
        localStorage.observeWorkout(),
        wearableClient.observeWorkout()
            .onEach { localStorage.save(it) }
    )
}

Test bir companion uygulamasının test edilmesi, gerçek saatlerde veya bir emülatörde doğrulama gerektirir. Xcode, iPhone simülatörüyle eşleştirilmiş Apple Watch simülatörünü destekler — fiziksel cihazlar olmadan WatchConnectivity'i test edebilirsiniz. Android Studio, Wearable Data Layer desteğiyle bir Wear OS emülatörü içerir. Kritik test senaryoları: aktarım sırasında bağlantı kaybı, düşük pil, iki companion uygulamasının eşzamanlı çalışması ve bağımsız saatlerde telefonsuz kurulum.

Companion uygulama yayınlama watchOS'ta App Store'a ayrı bir yükleme gerektirmez — uygulama, iOS uygulama ikili dosyasına dahil edilir ve otomatik olarak saate kurulması önerilir. Wear OS'ta companion uygulaması Google Play'de ayrı olarak yayınlanır ancak aynı paket aracılığıyla ana uygulamaya bağlanır. iOS'ta App Group ve Android'de sharedUserId, ana ve companion uygulamalarının paylaşılan veri depolama alanını kullanmasına izin verir.

Sıkça Sorulan Sorular

Companion App, saatteki normal bir uygulamadan nasıl farklıdır?

Companion App, tam işlevsellik için iPhone veya Android'de ana uygulamanın yüklü olmasını gerektirir. Saatteki normal bağımsız uygulama (örneğin, pusula veya kronometre) telefon olmadan bağımsız olarak çalışır. Companion App, telefonla veri senkronize eder, bildirimleri görüntüler ve hızlı işlemlere izin verir, ancak telefon olmadan bazı işlevleri kaybeder.

WatchConnectivity, iPhone ve Watch arasında verileri nasıl aktarır?

WatchConnectivity dört modu destekler: öncekini iptal ederek mevcut durumu iletmek için Application Context, herhangi bir boyuttaki dosyalar için File Transfer, garantili teslimatlı veri sözlükleri için User Info ve gerçek zamanlı çift yönlü iletişim için Interactive Messaging. Veriler Bluetooth veya Wi-Fi üzerinden iletilir — sistem otomatik olarak en uygun kanalı seçer.

Companion App internet olmadan çalışabilir mi?

Evet, bir companion uygulaması bağımsız olarak çalışır — watchOS ve Wear OS, telefondan alınan verileri önbelleğe alır. Hücresel modüllü saatlerde uygulama, istekleri doğrudan eSIM veya LTE üzerinden gönderir. Önbelleğe alınmış veriler bağlantı olmadan bile görüntülenir. Bağlantı yeniden kurulduğunda, önbellek arka plan senkronizasyonu ile güncellenir.

Hangi tür uygulamalar en sık Companion App kullanır?

En popüler kategoriler: egzersiz senkronizasyonlu fitness takipçileri, saatten mesajlara yanıt vermek için mesajlaşma uygulamaları, bilekte dönüş talimatları olan navigasyon uygulamaları, oynatma kontrolü için müzik çalarlar, ödeme sistemleri, cihaz kontrolü için akıllı ev ve nabız ile tansiyon için tıbbi monitörler.

Companion App saatte ne kadar enerji tüketir?

Apple Watch, standart kullanımda aktif bir companion uygulamasıyla 18 saate kadar çalışma sağlar. Wear OS — 24 saate kadar. WatchConnectivity düşük enerji tüketimi için optimize edilmiştir: pil zayıf olduğunda veri aktarımı duraklatılır ve toplu senkronizasyon saat şarj olurken gerçekleştirilir.

Özet

  • Companion App — telefonundaki ana uygulamayla birlikte çalışan bir saat uygulaması
  • WatchConnectivity — Apple Watch için dört veri aktarım modlu iOS framework'ü
  • Wearable Data Layer — DataItem ve MessageClient ile Wear OS ile senkronize etmek için Android API
  • Bağımsız çalışma — veri önbelleğe alma, telefondan bağlantı kesildiğinde çalışmaya izin verir
  • Enerji tüketimi — Apple Watch'ta 18 saate kadar, Wear OS'ta 24 saate kadar
  • Saat arayüzü — büyük öğeler ve minimum metinle öz arayüz
  • Yayınlama — watchOS iOS ikili dosyasına dahildir, Wear OS Google Play'de ayrı yayınlanır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun