Companion App — apa itu, pengembangan aplikasi pendamping

Penulis: IT Sectr Diterbitkan: 2026-02-16 Waktu membaca: 9 mnt

Companion App — aplikasi pendamping untuk perangkat wearable Apple Watch dan Wear OS, yang bekerja bersama aplikasi utama di ponsel pintar. Companion App menyinkronkan data melalui WatchConnectivity (iOS) atau Wearable Data Layer (Android), menampilkan notifikasi di jam tangan, dan dapat berfungsi secara mandiri. Pengembangan dilakukan dalam Swift untuk watchOS dan Kotlin untuk Wear OS. Selengkapnya di WatchConnectivity Docs.

Poin Utama

  • Companion App — aplikasi untuk wearable yang bekerja dengan aplikasi utama di ponsel
  • WatchConnectivity — framework untuk pertukaran data antara iPhone dan Apple Watch
  • Wearable Data Layer — API untuk sinkronisasi aplikasi Android dengan Wear OS
  • Operasi mandiri — jam tangan menyimpan data cache dan bekerja tanpa koneksi ke ponsel
  • Notifikasi Push — companion menampilkan notifikasi dari ponsel di pergelangan tangan

Apa itu Companion App — aplikasi untuk wearable?

Companion App — aplikasi untuk perangkat wearable Apple Watch atau Wear OS, yang disertakan bersama aplikasi utama iOS atau Android. Tujuan utama adalah memperluas fungsionalitas ke pergelangan tangan: melihat informasi dengan cepat, membalas pesan, mengontrol musik, melacak latihan. Companion App secara otomatis terinstal di jam tangan saat menginstal aplikasi utama di ponsel, jika pengembang menyertakannya dalam build.

Arsitektur aplikasi companion terdiri dari dua komponen: aplikasi iOS/Android (utama) dan aplikasi watchOS/Wear OS (pendamping). Komunikasi antara keduanya dilakukan melalui API sistem: WatchConnectivity untuk Apple dan Wearable Data Layer untuk Google. Data dikirim di latar belakang melalui Bluetooth atau Wi-Fi — pengguna tidak melihat proses sinkronisasi. Aplikasi di jam tangan dapat memiliki UI sendiri, berbeda dari aplikasi seluler, yang disesuaikan dengan layar kecil.

Jenis aplikasi companion berbeda dalam tingkat ketergantungan pada ponsel. Aplikasi Mirroring menampilkan salinan data dari ponsel dan tidak berfungsi tanpa koneksi. Aplikasi Decoupled memiliki logika sendiri, menyimpan data cache, dan mempertahankan sebagian fungsionalitas saat terputus dari ponsel. Aplikasi Independent (watchOS 6+ dan Wear OS 3+) dapat diinstal tanpa ponsel dan berfungsi sepenuhnya mandiri dengan akses jaringan sendiri.

WatchConnectivity: sinkronisasi iPhone dan Apple Watch

WatchConnectivity — framework Apple untuk komunikasi dua arah antara iPhone dan Apple Watch. Menyediakan empat mekanisme pengiriman data: Application Context (status terakhir yang diketahui), File Transfer (file ukuran berapa pun), User Info (kamus dengan pengiriman terjamin) dan Interactive Messaging (komunikasi dua arah waktu nyata). Sistem memilih Bluetooth atau Wi-Fi secara otomatis tergantung jarak dan kualitas sinyal.

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 — satu-satunya mekanisme WatchConnectivity dengan pengiriman terjamin waktu nyata. Pesan dikirim dan mendapat respons dalam 200–500 ms dengan koneksi aktif. Digunakan untuk tindakan yang memerlukan respons segera: memulai latihan, mengonfirmasi pembayaran, membuka pintu rumah pintar. Sesi harus aktif di kedua perangkat — jika jam tangan terkunci atau aplikasi di latar belakang, pengiriman tidak terjamin.

File Transfer API ditujukan untuk data volume besar — gambar, file audio, latihan yang diekspor. File dikirim di latar belakang bahkan saat aplikasi ditutup. Batasan — hingga 10 transfer bersamaan dalam antrean. Application Context — mekanisme paling hemat: hanya mengirim status terakhir, membatalkan konteks sebelumnya yang belum terkirim. Ideal untuk sinkronisasi pengaturan dan status saat ini.

Wearable Data Layer: sinkronisasi Android dan Wear OS

Wearable Data Layer — API dari Google Play Services untuk sinkronisasi data antara perangkat Android dan jam tangan Wear OS. Menyediakan tiga protokol: DataItem (sinkronisasi pasangan kunci-nilai), MessageClient (pesan satu arah) dan ChannelClient (pengiriman data streaming). DataItems disinkronkan secara otomatis melalui Google Cloud — jika ponsel tidak tersedia, data dikirim saat koneksi pulih.

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 // /olahraga/detak_jantung
                    val data = DataMapItem
                        .fromDataItem(event.dataItem)
                        .dataMap
                    val bpm = data.getInt("bpm")
                    updateUI(bpm)
                }
            }
        }
    }
}

MessageClient — mengirim pesan satu arah dengan jalur dan array byte. Digunakan untuk perintah: «Mulai latihan», «Jeda musik». Pesan terkirim secara terjamin jika perangkat terhubung. Untuk menerima pesan di Wear OS, implementasikan WearableListenerService dan daftarkan di manifes. MessageClient tidak mendukung cache otomatis — jika jam tangan terputus, pesan akan hilang.

ChannelClient — protokol untuk data streaming: audio, video, aliran sensor berkelanjutan. Membuka saluran dua arah untuk mengirim array byte. Hanya didukung di Wear OS 2.0+. ChannelClient berguna untuk mengirim audio dari ponsel ke jam tangan untuk panggilan melalui Bluetooth dan untuk menyampaikan data dari sensor Bluetooth eksternal (pemantau detak jantung, komputer sepeda) melalui ponsel ke jam tangan.

Operasi mandiri aplikasi companion di jam tangan

Operasi mandiri — kemampuan aplikasi companion untuk menjalankan fungsi tanpa koneksi ke ponsel. Di watchOS dengan modul Cellular, aplikasi mengirim permintaan jaringan langsung melalui eSIM. Di Wear OS dengan LTE, fungsionalitas serupa tersedia. Bahkan tanpa modul seluler, jam tangan menyimpan cache data terakhir dari ponsel dan menampilkannya saat terputus — pengguna melihat informasi yang terkini pada saat sinkronisasi terakhir.

ModeDataKetersediaanContoh
OnlineLangsung dari server/teleponPenuhRute navigasi
CachedTerakhir dari teleponTerbatasDaftar kontak
OfflineLokal di jam tanganMinimalTimer, stopwatch

Cache data — elemen kunci operasi mandiri. Aplikasi harus menyimpan status terakhir yang diterima di penyimpanan lokal jam tangan. Di watchOS menggunakan UserDefaults atau CoreData, di Wear OS — Room Database atau DataStore. Saat koneksi pulih, cache diperbarui dengan sinkronisasi latar belakang. Jika data sudah kedaluwarsa lebih dari 24 jam, aplikasi menampilkan pesan «Perbarui koneksi ke ponsel».

Wearable UI untuk layar terbatas jam tangan memiliki layar 1.5–2 inci — antarmuka aplikasi companion harus sesederhana mungkin. Apple merekomendasikan NavigationView satu kolom di watchOS, Google — daftar kartu di Wear OS dengan sapuan untuk navigasi. Tombol harus berukuran setidaknya 44pt untuk sentuhan yang nyaman. Hindari kolom input teks — gunakan jawaban siap pakai, dikte, atau roda Digital Crown.

Desain hemat energi — aplikasi companion tidak boleh menguras baterai jam tangan dalam beberapa jam. Gunakan pembaruan latar belakang dengan interval minimal. Di watchOS, WatchConnectivity menghentikan transmisi saat baterai rendah dan melanjutkan setelah pengisian daya. Di Wear OS, Wearable Data Layer secara otomatis mengelompokkan transmisi kecil menjadi satu untuk menghemat energi. Wrist raise — perbarui UI hanya saat pengguna mengangkat pergelangan tangan.

Praktik terbaik pengembangan aplikasi companion

Arsitektur aplikasi companion harus dirancang dengan mempertimbangkan kemungkinan kehilangan koneksi. Gunakan pola Repository: satu sumber data di ponsel disinkronkan dengan repositori lokal di jam tangan. ViewModel di jam tangan berlangganan ke repositori lokal dan menampilkan data terlepas dari status koneksi. Saat koneksi pulih, Repository di jam tangan meminta data melalui WatchConnectivity atau Wearable Data Layer dan memperbarui penyimpanan lokal.

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

Pengujian aplikasi companion memerlukan pengujian pada jam tangan asli atau emulator. Xcode mendukung simulator Apple Watch bersama simulator iPhone — WatchConnectivity dapat diuji tanpa perangkat fisik. Android Studio menyertakan emulator Wear OS dengan dukungan Wearable Data Layer. Kasus uji kritis: kehilangan koneksi selama transmisi, baterai rendah, pengoperasian dua aplikasi companion secara bersamaan, dan instalasi tanpa ponsel di jam tangan standalone.

Publikasi aplikasi companion di watchOS tidak memerlukan unggahan terpisah ke App Store — aplikasi termasuk dalam biner iOS dan secara otomatis ditawarkan untuk diinstal di jam tangan. Di Wear OS, aplikasi companion dipublikasikan secara terpisah di Google Play, tetapi terhubung ke aplikasi utama melalui paket yang sama. App Group di iOS dan sharedUserId di Android memungkinkan aplikasi utama dan companion menggunakan penyimpanan data bersama.

Pertanyaan yang Sering Diajukan

Apa perbedaan Companion App dengan aplikasi biasa di jam tangan?

Companion App memerlukan aplikasi utama yang terinstal di iPhone atau Android untuk fungsionalitas penuh. Aplikasi standalone biasa di jam tangan (misalnya kompas atau stopwatch) berfungsi mandiri tanpa ponsel. Companion App menyinkronkan data dengan ponsel, menampilkan notifikasi, dan memungkinkan tindakan cepat, tetapi tanpa ponsel akan kehilangan sebagian fungsi.

Bagaimana WatchConnectivity mengirim data antara iPhone dan Watch?

WatchConnectivity mendukung empat mode: Application Context untuk mengirim status saat ini dengan membatalkan status sebelumnya, File Transfer untuk file ukuran berapa pun, User Info untuk kamus data dengan pengiriman terjamin, dan Interactive Messaging untuk komunikasi dua arah waktu nyata. Data dikirim melalui Bluetooth atau Wi-Fi — sistem memilih saluran optimal secara otomatis.

Bisakah Companion App bekerja tanpa internet?

Ya, aplikasi companion berfungsi secara mandiri — watchOS dan Wear OS menyimpan cache data yang diterima dari ponsel. Di jam tangan dengan modul seluler, aplikasi mengirim permintaan langsung melalui eSIM atau LTE. Data dalam cache ditampilkan bahkan tanpa koneksi. Saat koneksi pulih, cache diperbarui dengan sinkronisasi latar belakang.

Jenis aplikasi apa yang paling sering menggunakan Companion App?

Kategori paling populer: pelacak kebugaran dengan sinkronisasi latihan, aplikasi pesan untuk membalas pesan dari jam tangan, navigator dengan petunjuk arah belok di pergelangan tangan, pemutar musik untuk mengontrol pemutaran, sistem pembayaran, rumah pintar untuk mengontrol perangkat, dan monitor medis untuk detak jantung dan tekanan darah.

Berapa banyak energi yang dikonsumsi Companion App di jam tangan?

Apple Watch memberikan hingga 18 jam kerja dengan aplikasi companion aktif dalam penggunaan standar. Wear OS — hingga 24 jam. WatchConnectivity dioptimalkan untuk konsumsi daya rendah: transmisi data dihentikan saat baterai rendah, dan sinkronisasi massal dilakukan saat jam tangan sedang diisi daya.

Ringkasan

  • Companion App — aplikasi jam tangan yang bekerja bersama aplikasi utama di ponsel
  • WatchConnectivity — framework iOS dengan empat mode pengiriman data di Apple Watch
  • Wearable Data Layer — API Android untuk sinkronisasi dengan Wear OS melalui DataItem dan MessageClient
  • Operasi mandiri — cache data memungkinkan bekerja saat terputus dari ponsel
  • Konsumsi energi — hingga 18 jam di Apple Watch, hingga 24 jam di Wear OS
  • UI untuk jam tangan — antarmuka sederhana dengan elemen besar dan teks minimal
  • Publikasi — watchOS termasuk dalam biner iOS, Wear OS dipublikasikan terpisah di Google Play

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga