Companion App — คืออะไร, การพัฒนาแอปพลิเคชันคู่หู

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-02-16 เวลาอ่าน: 9 นาที

Companion App — แอปพลิเคชันคู่หูสำหรับอุปกรณ์สวมใส่ Apple Watch และ Wear OS ที่ทำงานคู่กับแอปพลิเคชันหลักบนสมาร์ทโฟน Companion App ซิงค์ข้อมูลผ่าน WatchConnectivity (iOS) หรือ Wearable Data Layer (Android) แสดงการแจ้งเตือนบนนาฬิกา และสามารถทำงานแบบอัตโนมัติได้ การพัฒนาทำด้วย Swift สำหรับ watchOS และ Kotlin สำหรับ Wear OS ดูเพิ่มเติมได้ที่ WatchConnectivity Docs

สาระสำคัญ

  • Companion App — แอปสำหรับอุปกรณ์สวมใส่ที่ทำงานกับแอปหลักบนโทรศัพท์
  • WatchConnectivity — เฟรมเวิร์กสำหรับแลกเปลี่ยนข้อมูลระหว่าง iPhone และ Apple Watch
  • Wearable Data Layer — API สำหรับซิงค์แอป Android กับ Wear OS
  • การทำงานอัตโนมัติ — นาฬิกาแคชข้อมูลและทำงานโดยไม่เชื่อมต่อกับโทรศัพท์
  • การแจ้งเตือน Push — companion แสดงการแจ้งเตือนจากโทรศัพท์บนข้อมือ

Companion App คืออะไร — แอปสำหรับ wearable?

Companion App — แอปพลิเคชันสำหรับอุปกรณ์สวมใส่ Apple Watch หรือ Wear OS ที่มาพร้อมกับแอป iOS หรือ Android หลัก เป้าหมายหลักคือการขยายฟังก์ชันการทำงานไปยังข้อมือ: การดูข้อมูลอย่างรวดเร็ว การตอบข้อความ การควบคุมเพลง การติดตามการออกกำลังกาย Companion App จะติดตั้งบนนาฬิกาโดยอัตโนมัติเมื่อติดตั้งแอปหลักบนโทรศัพท์ หากนักพัฒนารวมไว้ในบิลด์

สถาปัตยกรรม ของ companion แอปประกอบด้วยสององค์ประกอบ: แอป iOS/Android (หลัก) และแอป watchOS/Wear OS (คู่หู) การสื่อสารระหว่างกันทำผ่านระบบ API: WatchConnectivity สำหรับ Apple และ Wearable Data Layer สำหรับ Google ข้อมูลจะถูกส่งในพื้นหลังผ่าน Bluetooth หรือ Wi-Fi — ผู้ใช้ไม่เห็นกระบวนการซิงค์ แอปบนนาฬิกาสามารถมี UI ของตัวเองแตกต่างจากมือถือ ปรับให้เหมาะกับหน้าจอขนาดเล็ก

ประเภทของ companion แอป แตกต่างกันตามระดับการพึ่งพาโทรศัพท์ Mirroring-แอป แสดงสำเนาข้อมูลจากโทรศัพท์และไม่ทำงานหากไม่มีการเชื่อมต่อ Decoupled-แอป มีตรรกะของตัวเอง แคชข้อมูล และคงฟังก์ชันบางส่วนไว้เมื่อตัดการเชื่อมต่อจากโทรศัพท์ Independent-แอป (watchOS 6+ และ Wear OS 3+) สามารถติดตั้งได้โดยไม่ต้องใช้โทรศัพท์และทำงานอัตโนมัติเต็มรูปแบบด้วยการเข้าถึงเครือข่ายของตัวเอง

WatchConnectivity: การซิงค์ iPhone และ Apple Watch

WatchConnectivity — เฟรมเวิร์กของ Apple สำหรับการสื่อสารสองทางระหว่าง iPhone และ Apple Watch มีกลไกการส่งข้อมูลสี่แบบ: Application Context (สถานะล่าสุดที่ทราบ), File Transfer (ไฟล์ทุกขนาด), User Info (พจนานุกรมที่มีการส่งถึงอย่างแน่นอน) และ Interactive Messaging (การสื่อสารสองทางแบบเรียลไทม์) ระบบจะเลือก Bluetooth หรือ Wi-Fi โดยอัตโนมัติขึ้นอยู่กับระยะทางและคุณภาพสัญญาณ

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 — กลไกเดียวของ WatchConnectivity ที่รับประกันการส่งถึงแบบเรียลไทม์ ข้อความถูกส่งและได้รับคำตอบภายใน 200–500 มิลลิวินาทีเมื่อมีการเชื่อมต่อที่ใช้งานอยู่ ใช้สำหรับการดำเนินการที่ต้องการการตอบสนองทันที: เริ่มการออกกำลังกาย ยืนยันการชำระเงิน เปิดประตูบ้านอัจฉริยะ เซสชันต้องทำงานอยู่บนทั้งสองอุปกรณ์ — หากนาฬิกาถูกล็อกหรือแอปอยู่ในพื้นหลัง การส่งถึงไม่รับประกัน

File Transfer API ออกแบบมาสำหรับข้อมูลปริมาณมาก — รูปภาพ ไฟล์เสียง การออกกำลังกายที่ส่งออก ไฟล์จะถูกส่งในพื้นหลังแม้ขณะแอปปิดอยู่ ข้อจำกัด — สูงสุด 10 การส่งพร้อมกันในคิว Application Context — กลไกที่ประหยัดที่สุด: ส่งเฉพาะสถานะล่าสุด ยกเลิกบริบทก่อนหน้าที่ไม่ได้ส่ง เหมาะสำหรับการซิงค์การตั้งค่าและสถานะปัจจุบัน

Wearable Data Layer: การซิงค์ Android และ Wear OS

Wearable Data Layer — API จาก Google Play Services สำหรับการซิงค์ข้อมูลระหว่างอุปกรณ์ Android และนาฬิกา Wear OS มีสามโปรโตคอล: DataItem (การซิงค์คู่คีย์-ค่า), MessageClient (ข้อความทางเดียว) และ ChannelClient (การส่งข้อมูลแบบสตรีม) DataItems จะถูกซิงค์โดยอัตโนมัติผ่าน Google Cloud — หากโทรศัพท์ไม่พร้อมใช้งาน ข้อมูลจะถูกส่งเมื่อการเชื่อมต่อกลับมาอีกครั้ง

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 // /ออกกำลังกาย/อัตราการเต้นของหัวใจ
                    val data = DataMapItem
                        .fromDataItem(event.dataItem)
                        .dataMap
                    val bpm = data.getInt("bpm")
                    updateUI(bpm)
                }
            }
        }
    }
}

MessageClient — ส่งข้อความทางเดียวพร้อมพาธและอาเรย์ไบต์ ใช้สำหรับคำสั่ง: «เริ่มการออกกำลังกาย», «หยุดเพลงชั่วคราว» ข้อความจะถึงอย่างแน่นอนหากอุปกรณ์เชื่อมต่ออยู่ ในการรับข้อความบน Wear OS ให้ implement WearableListenerService และลงทะเบียนใน manifest MessageClient ไม่รองรับการแคชอัตโนมัติ — หากนาฬิกาตัดการเชื่อมต่อ ข้อความจะสูญหาย

ChannelClient — โปรโตคอลสำหรับข้อมูลสตรีม: เสียง, วิดีโอ, สตรีมเซ็นเซอร์ต่อเนื่อง เปิดช่องทางการสื่อสารสองทางสำหรับส่งอาเรย์ไบต์ รองรับเฉพาะ Wear OS 2.0+ ChannelClient มีประโยชน์สำหรับการส่งเสียงจากโทรศัพท์ไปยังนาฬิกาสำหรับการโทรผ่าน Bluetooth และสำหรับการถ่ายทอดข้อมูลจากเซ็นเซอร์ Bluetooth ภายนอก (เครื่องวัดอัตราการเต้นของหัวใจ, คอมพิวเตอร์จักรยาน) ผ่านโทรศัพท์ไปยังนาฬิกา

การทำงานอัตโนมัติของ companion บนนาฬิกา

การทำงานอัตโนมัติ — ความสามารถของ companion แอปในการทำงานโดยไม่เชื่อมต่อกับโทรศัพท์ บน watchOS ที่มีโมดูล Cellular แอปจะส่งคำขอเครือข่ายโดยตรงผ่าน eSIM บน Wear OS ที่มี LTE มีฟังก์ชันการทำงานที่คล้ายกัน แม้ไม่มีโมดูลเซลลูลาร์ นาฬิกาจะแคชข้อมูลล่าสุดจากโทรศัพท์และแสดงเมื่อตัดการเชื่อมต่อ — ผู้ใช้จะเห็นข้อมูลที่เป็นปัจจุบัน ณ เวลาที่ซิงค์ครั้งล่าสุด

โหมดข้อมูลความพร้อมใช้งานตัวอย่าง
Onlineสดจากเซิร์ฟเวอร์/โทรศัพท์เต็มรูปแบบเส้นทางนำทาง
Cachedล่าสุดจากโทรศัพท์จำกัดรายชื่อผู้ติดต่อ
Offlineภายในนาฬิกาน้อยที่สุดตัวจับเวลา, นาฬิกาจับเวลา

การแคชข้อมูล — องค์ประกอบสำคัญของการทำงานอัตโนมัติ แอปควรบันทึกสถานะล่าสุดที่ได้รับลงในพื้นที่จัดเก็บภายในของนาฬิกา บน watchOS ใช้ UserDefaults หรือ CoreData บน Wear OS ใช้ Room Database หรือ DataStore เมื่อการเชื่อมต่อกลับมาอีกครั้ง แคชจะถูกอัปเดตด้วยการซิงค์ในพื้นหลัง หากข้อมูลเก่าเกิน 24 ชั่วโมง แอปจะแสดงข้อความ «โปรดอัปเดตการเชื่อมต่อกับโทรศัพท์»

Wearable UI สำหรับหน้าจอขนาดจำกัด นาฬิกามีหน้าจอ 1.5–2 นิ้ว — อินเทอร์เฟซของ companion แอปควรกระชับที่สุด Apple แนะนำ NavigationView แบบคอลัมน์เดียวบน watchOS, Google แนะนำรายการการ์ดบน Wear OS พร้อมการปัดเพื่อนำทาง ปุ่มควรมีขนาดอย่างน้อย 44pt เพื่อการสัมผัสที่สะดวกสบาย หลีกเลี่ยงช่องกรอกข้อความ — ใช้คำตอบสำเร็จรูป การป้อนตามคำบอก หรือ Digital Crown

การออกแบบที่ประหยัดพลังงาน — companion แอปไม่ควรทำให้นาฬิกาหมดแบตเตอรี่ภายในไม่กี่ชั่วโมง ใช้การอัปเดตพื้นหลังด้วยช่วงเวลาที่น้อยที่สุด บน watchOS WatchConnectivity จะหยุดการส่งข้อมูลเมื่อแบตเตอรี่เหลือน้อยและกลับมาทำงานต่อหลังจากชาร์จแล้ว บน Wear OS Wearable Data Layer จะรวมการส่งข้อมูลเล็ก ๆ เป็นกลุ่มโดยอัตโนมัติเพื่อประหยัดพลังงาน Wrist raise — อัปเดต UI เมื่อผู้ใช้ยกข้อมือเท่านั้น

แนวปฏิบัติที่ดีที่สุดในการพัฒนา companion แอป

สถาปัตยกรรมของ companion แอป ควรออกแบบโดยคำนึงถึงการสูญเสียการเชื่อมต่อที่อาจเกิดขึ้น ใช้รูปแบบ Repository: แหล่งข้อมูลเดียวบนโทรศัพท์ซิงค์กับ repository ในเครื่องบนนาฬิกา ViewModel บนนาฬิกาสมัครสมาชิก repository ในเครื่องและแสดงข้อมูลโดยไม่ขึ้นกับสถานะการเชื่อมต่อ เมื่อการเชื่อมต่อกลับมา Repository บนนาฬิกาจะขอข้อมูลผ่าน WatchConnectivity หรือ Wearable Data Layer และอัปเดตพื้นที่จัดเก็บในเครื่อง

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

การทดสอบ companion แอปต้องตรวจสอบบนนาฬิกาจริงหรืออีมูเลเตอร์ Xcode รองรับซิมูเลเตอร์ Apple Watch คู่กับซิมูเลเตอร์ iPhone — สามารถทดสอบ WatchConnectivity ได้โดยไม่ต้องใช้อุปกรณ์จริง Android Studio มีอีมูเลเตอร์ Wear OS ที่รองรับ Wearable Data Layer กรณีทดสอบที่สำคัญ: การสูญเสียการเชื่อมต่อระหว่างการส่งข้อมูล แบตเตอรี่เหลือน้อย การทำงานพร้อมกันของสอง companion แอป และการติดตั้งโดยไม่มีโทรศัพท์บนนาฬิกา standalone

การเผยแพร่ companion แอป บน watchOS ไม่จำเป็นต้องอัปโหลดแยกใน App Store — แอปจะรวมอยู่ในไบนารีของ iOS และเสนอให้ติดตั้งบนนาฬิกาโดยอัตโนมัติ บน Wear OS companion แอปเผยแพร่แยกต่างหากใน Google Play แต่เชื่อมโยงกับแอปหลักผ่านแพ็กเกจเดียวกัน App Group บน iOS และ sharedUserId บน Android ช่วยให้แอปหลักและ companion แอปใช้พื้นที่จัดเก็บข้อมูลร่วมกัน

คำถามที่พบบ่อย

Companion App แตกต่างจากแอปทั่วไปบนนาฬิกาอย่างไร?

Companion App ต้องการแอปหลักที่ติดตั้งบน iPhone หรือ Android เพื่อฟังก์ชันการทำงานที่สมบูรณ์ แอป standalone ทั่วไปบนนาฬิกา (เช่น เข็มทิศหรือนาฬิกาจับเวลา) ทำงานอัตโนมัติโดยไม่ต้องใช้โทรศัพท์ Companion App ซิงค์ข้อมูลกับโทรศัพท์ แสดงการแจ้งเตือน และให้ดำเนินการด่วนได้ แต่เมื่อไม่มีโทรศัพท์จะสูญเสียฟังก์ชันบางส่วน

WatchConnectivity ส่งข้อมูลระหว่าง iPhone และ Watch อย่างไร?

WatchConnectivity รองรับสี่โหมด: Application Context สำหรับส่งสถานะปัจจุบันพร้อมยกเลิกสถานะก่อนหน้า File Transfer สำหรับไฟล์ทุกขนาด User Info สำหรับพจนานุกรมข้อมูลที่รับประกันการส่งถึง และ Interactive Messaging สำหรับการสื่อสารสองทางแบบเรียลไทม์ ข้อมูลถูกส่งผ่าน Bluetooth หรือ Wi-Fi — ระบบเลือกช่องทางที่เหมาะสมที่สุดโดยอัตโนมัติ

Companion App สามารถทำงานได้โดยไม่ต้องใช้อินเทอร์เน็ตหรือไม่?

ได้ companion แอปทำงานอัตโนมัติ — watchOS และ Wear OS แคชข้อมูลที่ได้รับจากโทรศัพท์ บนนาฬิกาที่มีโมดูลเซลลูลาร์ แอปส่งคำขอโดยตรงผ่าน eSIM หรือ LTE ข้อมูลที่แคชไว้จะแสดงแม้ไม่มีการเชื่อมต่อ เมื่อการเชื่อมต่อกลับมา แคชจะถูกอัปเดตด้วยการซิงค์ในพื้นหลัง

แอปประเภทใดที่ใช้ Companion App บ่อยที่สุด?

หมวดหมู่ที่ได้รับความนิยมมากที่สุด: ฟิตเนสแทรกเกอร์ที่ซิงค์การออกกำลังกาย แอปส่งข้อความสำหรับตอบข้อความจากนาฬิกา ระบบนำทางพร้อมคำแนะนำเส้นทางบนข้อมือ เครื่องเล่นเพลงสำหรับควบคุมการเล่น ระบบชำระเงิน บ้านอัจฉริยะสำหรับควบคุมอุปกรณ์ และจอภาพทางการแพทย์สำหรับวัดชีพจรและความดัน

Companion App ใช้พลังงานบนนาฬิกามากแค่ไหน?

Apple Watch ให้การทำงานสูงสุด 18 ชั่วโมงกับ companion แอปที่ทำงานอยู่ในการใช้งานมาตรฐาน Wear OS — สูงสุด 24 ชั่วโมง WatchConnectivity ได้รับการปรับให้เหมาะสมเพื่อการใช้พลังงานต่ำ: การส่งข้อมูลจะหยุดเมื่อแบตเตอรี่เหลือน้อย และการซิงค์จำนวนมากจะดำเนินการระหว่างการชาร์จนาฬิกา

สรุป

  • Companion App — แอปสำหรับนาฬิกาที่ทำงานคู่กับแอปหลักบนโทรศัพท์
  • WatchConnectivity — เฟรมเวิร์ก iOS ที่มีสี่โหมดการส่งข้อมูลบน Apple Watch
  • Wearable Data Layer — API Android สำหรับซิงค์กับ Wear OS ผ่าน DataItem และ MessageClient
  • การทำงานอัตโนมัติ — การแคชข้อมูลช่วยให้ทำงานได้เมื่อตัดการเชื่อมต่อจากโทรศัพท์
  • การใช้พลังงาน — สูงสุด 18 ชั่วโมงบน Apple Watch, สูงสุด 24 ชั่วโมงบน Wear OS
  • UI สำหรับนาฬิกา — อินเทอร์เฟซที่กระชับพร้อมองค์ประกอบขนาดใหญ่และข้อความน้อยที่สุด
  • การเผยแพร่ — watchOS รวมอยู่ในไบนารี iOS, Wear OS เผยแพร่แยกต่างหากใน Google Play

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม