Singkatnya Apple Watch: Pengenalan Fitur untuk Pengembang iOS

Diterbitkan: 2022-03-11

Ada banyak keraguan di sekitar Apple Watch SDK, diumumkan di WWDC Juni lalu dan dirilis baru-baru ini.

Ini baru putaran pertama, dengan fungsionalitas terbatas. Apple Watch v2 akan menyusul, tetapi tidak secepat itu - jadi pengembang iOS yang berpikiran maju harus bersiap untuk menunggu beberapa bulan.

Perasaan di antara pengembang sangat beragam. Banyak pengembang iOS kecewa dengan banyak batasan yang diberlakukan oleh Apple Watch SDK dan fitur-fiturnya. Di sisi lain, banyak dari kita yang bersemangat, sementara yang lain tidak terlalu jauh dari posisi netral. Tapi, bagaimanapun, semua orang tampaknya senang memiliki mainan baru untuk dimainkan.

Satu hal yang menarik perhatian adalah bagaimana pengguna Apple Watch dirujuk. Mereka bukan pengguna atau pengguna ponsel , juga bukan pengguna jam tangan atau (dengan sedikit orisinalitas) pengamat . Mereka hanyalah pemakai . Sebuah istilah yang terdengar agak aneh, karena jika pengguna menggunakan , menyiratkan bahwa dia berinteraksi, pemakainya memakai , dan itu terdengar seperti penggunaan pasif. Tentu saja, Apple Watch jauh dari perangkat pasif. Ini menggabungkan fitur jam tangan tradisional dengan opsi yang lebih canggih yang diaktifkan oleh teknologi modern, terutama bila digunakan bersama dengan iPhone. Belum lama berselang ketika ponsel mulai menjadi lebih dari sekadar ponsel - sejarah berulang.

Namun, pada akhirnya nama pemakainya tampak menjadi pilihan yang cerdas. Setidaknya saat menulis cerita pengguna, saya tidak perlu menyebutkan "Sebagai pengguna Apple watch saya ingin ..." secara penuh, saya hanya dapat mempersingkatnya menjadi "Sebagai pemakai , saya ingin ..." - mengurangi ambiguitas.

Aplikasi Apple Watch kemungkinan akan mengubah cara pandang pemakai jam tangan (dan pengembang aplikasi iOS) tentang teknologi selamanya.

Perangkat dan UI

Menghilangkan semua fitur Apple Watch yang tidak sepenuhnya terkait dengan pengembangan, masalah terpenting yang harus dihadapi desainer dan pengembang adalah ukuran - sebenarnya ada 2 model Apple Watch yang berbeda:

  • Layar 38mm dengan resolusi 272x340 piksel
  • Layar 42mm dengan resolusi 312x390 piksel

dengan tampilan retina pada kedua kasus.

Tak perlu dikatakan, itu pada pengembang iOS untuk memastikan bahwa aplikasi terlihat bagus di kedua versi.

Konektivitas Apple Watch

Apple Watch berkomunikasi dengan iPhone pendamping melalui Bluetooth 4.0, dan juga mendukung NFC. Rupanya, ia tidak memiliki konektivitas WiFi. Meskipun dapat ditambatkan melalui iPhone dan menggunakan keduanya, WiFi dan koneksi data seluler. Namun dalam info pers Apple dengan jelas menyatakan bahwa ia juga memiliki fitur Wi-Fi 802.11b/g.

Interaksi pengguna

Interaksi pengguna (atau interaksi pemakai, jika diinginkan) dapat terjadi dalam 4 cara berbeda:

  • sentuhan sederhana: ketukan pada tombol adalah contoh tipikal
  • force touch: diaktifkan dengan menerapkan lebih banyak kekuatan saat mengetuk dan menahan layar. Mirip dengan klik kanan mouse pada PC akan menampilkan menu kontekstual (berisi hingga 4 item)
  • gerakan: geser vertikal untuk menggulir, geser horizontal untuk menavigasi antar halaman, geser tepi kiri untuk menavigasi kembali
  • mahkota digital: input perangkat keras yang digunakan untuk pengguliran yang disetel dengan baik

Ada beberapa batasan terkait interaksi pengguna, khususnya tentang gestur:

  • mereka telah ditentukan sebelumnya, jadi gerakan khusus tidak didukung
  • multi touch tidak didukung, jadi tidak ada cubitan untuk memperbesar atau gerakan serupa yang membutuhkan lebih dari satu jari

Berikut adalah contoh menu kontekstual dari Panduan Apple WatchKit.

Fitur aplikasi Apple Watch tidak dapat disangkal akan meminta tutorial pengembangan ekstensif di masa mendatang. Untuk saat ini, kenali dasar-dasarnya.

Antarmuka pengguna

Berbicara tentang Apple Watch UI, ada beberapa batasan yang disebabkan oleh pengurangan ukuran layar, pilihan desain, dan dalam banyak kasus sebagai konsekuensi alami dari perangkat keras yang mendasarinya. Kami berharap beberapa di antaranya akan berubah menjadi lebih baik di rilis SDK mendatang, meskipun tidak mungkin untuk mengantisipasi atau memperkirakan apa yang sebenarnya akan berubah.

Batasan pertama adalah tentang bagaimana antarmuka pengguna diimplementasikan: hanya melalui storyboard.

Navigasi Apple Watch

WatchKit menawarkan dua cara yang saling eksklusif untuk menavigasi di antara tampilan aplikasi Apple Watch:

  • model navigasi hierarki, mirip dengan yang digunakan di iOS, dengan tampilan yang ditumpuk selama navigasi
  • model berbasis halaman datar, di mana pengguna dapat menavigasi antar halaman dengan menggesek ke kiri dan kanan

Sayangnya, menggabungkan dua model navigasi ini dalam aplikasi yang sama tidak dimungkinkan. Salah satunya harus dipilih dan digunakan di seluruh aplikasi.

Namun, pengontrol antarmuka apa pun dapat menghadirkan pengontrol antarmuka modal, yang dapat berupa pengontrol antarmuka tunggal, atau pengontrol antarmuka ganda, yang disusun menggunakan model navigasi halaman.

Elemen UI

Ada 11 komponen antarmuka yang berbeda:

  • tombol
  • penggeser
  • gambar
  • label
  • pemisah
  • penggeser
  • mengalihkan
  • meja
  • tanggal: secara otomatis menampilkan tanggal atau waktu saat ini
  • timer: menampilkan penghitung waktu mundur, diperbarui secara otomatis
  • group: wadah untuk satu atau lebih komponen turunan
  • peta: menampilkan peta non-interaktif, opsional dengan maksimal 5 anotasi

Tata letak

Komponen grup dapat digunakan untuk menggabungkan elemen UI Apple Watch dalam tata letak vertikal atau horizontal . Elemen akan ditata secara otomatis tergantung pada ukurannya. Beberapa tingkat fleksibilitas tersedia di sini, mengingat bahwa grup dapat disarangkan.

Sayangnya, tata letak otomatis tidak tersedia. Tapi, mengingat antarmuka pengguna jauh lebih sederhana dibandingkan dengan rekan iOS, itu mungkin bukan kerugian besar.

Untuk daftar, komponen tabel membuat dan mengelola konten menggunakan model kolom tunggal, seperti UITableView . Namun, ini tidak menggunakan pola delegasi - sumber data langsung diberikan ke tabel dengan menentukan jumlah baris terlebih dahulu, lalu menginisialisasi konten setiap baris dalam perulangan for. Sebagai catatan positif, masih mungkin untuk menggunakan baris tabel khusus (yaitu sel dalam jargon iOS)

Sekilas

Glance adalah tampilan hanya-baca, satu halaman, dan tidak dapat digulir, digunakan untuk menampilkan snapshot dari data spesifik aplikasi yang relevan dan tepat waktu. Tidak ada interaksi pengguna yang diizinkan, kecuali untuk acara tap. Ketuk pada pandangan hanya akan meluncurkan aplikasi, secara opsional menyediakan konteks untuk membiarkan aplikasi menampilkan pengontrol antarmuka tertentu.

Misalnya, aplikasi cuaca Apple Watch dapat menggunakan Glance untuk menampilkan suhu saat ini, lokasi, dll. Dengan mengetuknya, aplikasi akan terbuka, menampilkan informasi yang lebih detail.

Berikut adalah contoh Sekilas dari Panduan Apple WatchKit resmi.

Ini adalah contoh fitur sekilas Apple Watch dalam contoh aplikasi Apple Watch.

Pemberitahuan Apple Watch

Ada 2 jenis notifikasi: tampilan pendek dan tampilan panjang .

Notifikasi tampilan singkat digunakan untuk mengingatkan pemakainya bahwa sesuatu telah terjadi, dan secara otomatis ditutup ketika pergelangan tangan diturunkan. Tata letaknya sangat sederhana, dan terdiri dari ikon aplikasi, nama aplikasi, dan judul notifikasi.

Seperti inilah tampilan notifikasi Apple Watch di dalam aplikasi.

Mengangkat pergelangan tangan selama beberapa waktu, atau secara eksplisit mengetuk pemberitahuan tampilan pendek, akan mengubahnya menjadi pemberitahuan tampilan panjang . Jenis pemberitahuan ini memberikan lebih banyak detail, dan mendukung interaksi pengguna melalui tombol yang dapat disesuaikan. Tombol-tombol ini dapat mengirimkan notifikasi ke aplikasi. Tidak seperti pemberitahuan singkat, pengguna harus secara eksplisit mengabaikan pemberitahuan tampilan panjang dengan mengetuk tombol yang secara otomatis ditampilkan di bagian bawah tampilan.

Notifikasi tampilan panjang adalah salah satu fitur khas Apple Watch yang harus diketahui oleh pengembang.

Informasi lebih lanjut tentang menggunakan Pemberitahuan Apple Watch dapat ditemukan di sini.

Perkembangan

Arsitektur

Mengunduh versi Xcode yang mendukung WatchKit (saat ini versi beta 6.2), dan mencoba memulai proyek WatchKit tanpa membaca dokumentasi apa pun, pengembang mungkin merasa bingung karena tidak ada template WatchKit:

Aplikasi Apple Watch hanya dapat ditambahkan sebagai target baru ke salah satu aplikasi iOS Anda yang sudah ada.

Tidak ada aplikasi jam tangan yang berdiri sendiri dan Aplikasi Jam Tangan hanya dapat ditambahkan sebagai target baru ke aplikasi iOS yang sudah ada.

Untuk mengembangkan aplikasi Apple Watch, mulai dengan aplikasi iOS Anda saat ini dan tambahkan aplikasi Watch sebagai target baru.

Alasannya bergantung pada arsitektur, dan cara aplikasi jam tangan berinteraksi dengan aplikasi iOS terkait:

Memahami cara Apple Watch berinteraksi dengan aplikasi iOS lain di iPhone merupakan bagian integral untuk menjadi pengembang Apple Watch yang sukses.

Saat aplikasi diluncurkan di jam tangan, ekstensi iOS pendamping diluncurkan secara otomatis. Keduanya bekerja secara sinergis, dengan aplikasi jam tangan yang menampilkan konten kepada pemakainya dan merespons interaksi, sementara ekstensi iOS melakukan yang lainnya. Sebenarnya, tidak ada kode aplikasi yang dijalankan pada jam tangan: semua pemrosesan didelegasikan ke ekstensi iOS.

Model ini sangat mirip dengan model aplikasi web browser <->, di mana logika domain dilakukan di sisi server, dan sisi klien bertanggung jawab untuk menampilkan konten kepada pengguna dan merespons tindakan pengguna.

Aplikasi Tontonan, yang diinstal pada perangkat, terdiri dari papan cerita dan semua sumber daya statis terkait, yang dikemas dalam satu bundel. Bundel ini statis, artinya menambahkan atau mengubah sumber daya, tampilan, gambar, dll. tidak dimungkinkan saat runtime.

Model server-klien statis ini memberlakukan beberapa batasan pada pengembang iOS yang ingin menambahkan aplikasi Tonton ke repetoire mereka, dan itu mungkin salah satu alasan utama mengapa beberapa pengembang tidak bereaksi positif. Komentar populer lainnya adalah tentang animasi: mereka sama sekali tidak didukung. Satu-satunya cara untuk meniru animasi adalah dengan mengemas bingkai individual ke dalam aplikasi jam tangan, lalu mensimulasikan animasi dengan menampilkan gambar secara berurutan. Kabar baiknya adalah bahwa dengan memberi nama frame secara berurutan Anda dapat mengotomatiskan animasi langsung dari Interface Builder, meskipun hal yang sama dapat dilakukan dari kode dengan satu pemanggilan metode kontrol gambar.

Namun Apple telah mengumumkan bahwa versi baru akan dirilis kadang-kadang tahun depan, dengan dukungan untuk aplikasi asli, yang belum ada rincian lebih lanjut.

Kerangka Apple Watch: Tampilan Cepat

WatchKit tidak menggunakan, mewarisi, atau mengkhususkan UIKit. Kerangka kerja baru telah diimplementasikan, dirancang khusus, dan dioptimalkan untuk jam tangan, untuk tampilan kecilnya, dan untuk perangkat keras yang terbatas. Kerangka kerja hanya terdiri dari 15 kelas, 12 di antaranya merupakan komponen UI (label, tombol, dll.).

Kelas paling penting yang diekspos oleh kerangka kerja adalah WKInterfaceController , yang merupakan mitra WatchKit dari UIViewController . Jadi apa yang di iOS (dan OSX) disebut view controller , di Apple Watch adalah interface controller .

Tanpa menggali terlalu dalam, peningkatan paling nyata dari UIKit, dari perspektif pengembang Apple, adalah pembentukan pola untuk melewatkan data antar pengontrol antarmuka. Sekilas tentang penginisialisasi:

Swift init(context: AnyObject?) // context from pushing controller or nil

mengungkapkan bahwa dimungkinkan untuk menyediakan objek arbitrer ke instance pengontrol antarmuka (disebut context di semua API), menyederhanakan dan menstandarisasi pengiriman data dari satu pengontrol antarmuka ke pengontrol antarmuka lainnya. Satu-satunya downside adalah bahwa objek bukan dari tipe generik, tetapi AnyObject buram yang harus diturunkan ke tipe yang diharapkan di dalam penginisialisasi dari pengontrol antarmuka tujuan. Itu mungkin trade off karena masih memiliki (dan mungkin juga ingin) untuk tetap menggunakan Objective C.

Siklus hidup pengontrol antarmuka disederhanakan jika dibandingkan dengan pengontrol tampilan, yang hanya terdiri dari 3 transisi:

  • init : dipanggil ketika objek dipakai
  • willActivate : dipanggil ketika konten akan ditampilkan
  • didDeactivate : dipanggil ketika antarmuka baru saja disembunyikan

Selain menampilkan konten kepada pengguna, pengontrol antarmuka juga bertanggung jawab untuk:

  • menangani interaksi pengguna
  • mengelola menu kontekstual
  • mengkoordinasikan kegiatan serah terima
  • menanggapi pemberitahuan

Apakah Apple WatchKit Siap?

Dengan beberapa batasan, kit jam tangan mungkin muncul sebagai produk yang belum matang. Dan kenyataannya memang begitu. Itu tidak mendukung aplikasi jam tangan asli, belum lagi belum ada perangkat jam tangan di pasar, jadi pengembang masih tidak dapat menguji aplikasi mereka dan memiliki perasaan dan umpan balik nyata tentang cara kerja aplikasi.

Ok, ada simulator, yang sebenarnya bukan simulator independen, tetapi dapat diakses sebagai tampilan eksternal ke simulator iOS (melalui menu Hardware -> External Displays). Tetapi simulator tidak pernah menggantikan perangkat nyata - baik selama pengembangan dan untuk debugging, tetapi tidak cukup.

WatchKit hanyalah pratinjau, versi beta, hidangan pembuka, yang akan berkembang dengan setiap rilis baru. Pengembang iOS telah mendapatkan versi pertama, mari bermain dengannya dan mencoba memaksimalkannya.