Özetle Apple Watch: iOS Geliştiricileri İçin Bir Özelliğe Giriş

Yayınlanan: 2022-03-11

Geçen Haziran'da WWDC'de duyurulan ve kısa süre önce piyasaya sürülen Apple Watch SDK'sı hakkında çok fazla endişe var.

Bu, sınırlı işlevlerle yalnızca ilk tur. Apple Watch v2 takip edecek, ancak o kadar erken değil - bu nedenle ileri görüşlü iOS geliştiricileri birkaç ay beklemeye hazırlıklı olmalı.

Geliştiriciler arasındaki duygu son derece çeşitlidir. Pek çok iOS geliştiricisi, Apple Watch SDK ve özelliklerinin getirdiği birçok sınırlamadan dolayı hayal kırıklığına uğradı. Öte yandan, çoğumuz heyecanlıyız, diğerleri ise tarafsız bir konumdan çok uzak değil. Ama sonuçta, görünüşe göre herkes oynayacak yeni bir oyuncağı olduğu için mutlu.

Göze çarpan bir şey, Apple Watch kullanıcılarına nasıl atıfta bulunulduğudur. Kullanıcılar veya mobil kullanıcılar değiller, kullanıcılar veya (bir tutam özgünlük ile) izleyiciler de değiller. Onlar sadece giyerler . Kulağa biraz garip gelen bir terim, çünkü bir kullanıcı etkileşimde bulunduğunu ima ederek kullanırsa , kullanıcı giyer ve kulağa pasif bir kullanım gibi gelir. Elbette Apple Watch pasif bir cihaz olmaktan çok uzak. Özellikle bir iPhone ile birlikte kullanıldığında, bir saatin geleneksel özelliklerini modern teknolojinin sağladığı daha gelişmiş seçeneklerle birleştirir. Telefonların sadece telefonlardan çok daha fazlası olmaya başladığı çok uzun zaman önce değildi - tarih tekerrür ediyor.

Ancak, sonunda kullanıcı adı akıllıca bir seçim gibi görünüyor. En azından kullanıcı hikayeleri yazarken “Bir Apple watch kullanıcısı olarak şunu yapmak istiyorum…” ifadesini tam olarak belirtmem gerekmiyor, bunu sadece “ Kullanıcı olarak şunu yapmak istiyorum…” şeklinde kısaltabilirim - daha az belirsizlik.

Apple Watch uygulamaları, saat kullanıcılarının (ve iOS uygulama geliştiricilerinin) teknoloji hakkındaki düşüncelerini sonsuza dek değiştirecek gibi görünüyor.

Cihaz ve kullanıcı arayüzü

Geliştirmeyle yakından ilgili olmayan tüm Apple Watch özelliklerini bir kenara bırakırsak, tasarımcıların ve geliştiricilerin uğraşması gereken en önemli sorun boyutlardır - aslında 2 farklı Apple Watch modeli vardır:

  • 272x340 piksel çözünürlüğe sahip 38 mm ekran
  • 312x390 piksel çözünürlüğe sahip 42 mm ekran

her iki durumda da retina ekranlı.

Söylemeye gerek yok, uygulamanın her iki sürümde de iyi görünmesini sağlamak iOS geliştiricilerinde.

Apple Watch Bağlantısı

Apple Watch, eşlik eden iPhone ile Bluetooth 4.0 üzerinden iletişim kurar ve ayrıca NFC etkindir. Görünüşe göre, WiFi bağlantısı yok. İPhone üzerinden bağlanabilmesine ve hem WiFi hem de hücresel veri bağlantısını kullanmasına rağmen. Ancak bir basın bilgisinde Apple, Wi-Fi 802.11b/g özelliğine de sahip olduğunu açıkça belirtiyor.

Kullanıcı etkileşimi

Kullanıcı etkileşimi (veya tercih edilirse kullanıcı etkileşimi) 4 farklı şekilde gerçekleşebilir:

  • basit dokunuş: bir düğmeye dokunmak tipik bir örnektir
  • dokunmaya zorlama: ekrana dokunup basılı tutarken daha fazla kuvvet uygulanarak etkinleştirilir. Bir bilgisayarda sağ fare tıklamasına benzer şekilde, bağlamsal bir menü görüntüleyecektir (4 öğeye kadar)
  • hareket: kaydırmak için dikey kaydırma, sayfalar arasında gezinmek için yatay kaydırma, geri gitmek için sol kenardan kaydırma
  • dijital taç: ince ayarlı kaydırma için kullanılan donanım girişi

Kullanıcı etkileşimiyle, özellikle de hareketlerle ilgili bazı sınırlamalar vardır:

  • önceden belirlenir, bu nedenle özel hareketler desteklenmez
  • çoklu dokunma desteklenmez, bu nedenle yakınlaştırmak için kıstırma veya birden fazla parmak gerektiren benzer hareketler gerekmez

İşte Apple WatchKit Kılavuzundan bağlamsal menü örneği.

Apple Watch uygulama özellikleri, inkar edilemez bir şekilde gelecekte kapsamlı geliştirme eğitimlerini gerektirecektir. Şimdilik, temel bilgileri öğrenin.

Kullanıcı arayüzü

Apple Watch kullanıcı arayüzünden bahsetmişken, küçültülmüş ekran boyutu, tasarım seçimleri ve çoğu durumda temel donanımın doğal bir sonucu olarak dayatılan çeşitli sınırlamalar vardır. Aslında neyin değişeceğini tahmin etmek veya tahmin etmek mümkün olmasa da, SDK'nın gelecekteki sürümlerinde bazılarının daha iyiye doğru değişeceğini umuyoruz.

İlk sınırlama, kullanıcı arabiriminin nasıl uygulandığıyla ilgilidir: yalnızca film şeridi aracılığıyla.

Apple Watch Navigasyon

WatchKit, bir Apple Watch uygulamasının görünümleri arasında gezinmek için birbirini dışlayan iki yol sunar:

  • gezinme sırasında yığılmış görünümlere sahip, iOS'ta kullanılana benzer hiyerarşik bir gezinme modeli
  • kullanıcının sola ve sağa kaydırarak sayfalar arasında gezinebileceği düz sayfa tabanlı bir model

Ne yazık ki bu iki navigasyon modelini aynı uygulamada birleştirmek mümkün değil. Bunlardan biri tüm uygulama boyunca seçilmeli ve kullanılmalıdır.

Bununla birlikte, herhangi bir arabirim denetleyicisi, bir sayfa gezinme modeli kullanılarak düzenlenen tek bir arabirim denetleyicisi veya birden çok arabirim denetleyicisi olabilen modsal bir arabirim denetleyicisi sunabilir.

Kullanıcı Arayüzü Öğeleri

11 farklı arayüz bileşeni vardır:

  • buton
  • kaydırıcı
  • resim
  • etiket
  • ayırıcı
  • kaydırıcı
  • değiştirmek
  • tablo
  • tarih: geçerli tarihi veya saati otomatik olarak görüntüleme
  • zamanlayıcı: otomatik olarak güncellenen bir geri sayım sayacı gösteriliyor
  • grup: bir veya daha fazla alt bileşen için bir kapsayıcı
  • harita: isteğe bağlı olarak maksimum 5 ek açıklama ile etkileşimli olmayan bir harita görüntüleme

Düzenler

Grup bileşeni, Apple Watch UI öğelerini dikey veya yatay bir düzende birleştirmek için kullanılabilir. Öğeler, boyutlarına bağlı olarak otomatik olarak yerleştirilecektir. Grupların iç içe olabileceği göz önüne alındığında, burada bir dereceye kadar esneklik mevcuttur.

Ne yazık ki, otomatik düzen mevcut değil. Ancak, kullanıcı arayüzünün iOS muadili ile karşılaştırıldığında çok daha basit olduğu düşünüldüğünde, muhtemelen büyük bir kayıp değil.

Listeler için, tablo bileşeni, tıpkı UITableView gibi tek bir sütun modeli kullanarak içerik oluşturur ve yönetir. Ancak, yetkilendirme modelini kullanmaz - veri kaynağı, önce satır sayısı belirtilerek ve ardından her satırın içeriği bir for döngüsü içinde başlatılarak doğrudan tabloya sağlanır. Olumlu bir kayda göre, özel tablo satırlarını kullanmak hala mümkündür (yani iOS jargonunda hücreler)

bakışlar

Bakışlar, zamanında ve ilgili uygulamaya özel verilerin anlık görüntüsünü göstermek için kullanılan salt okunur, tek sayfalı ve kaydırılamaz görünümlerdir. Tap olayı dışında hiçbir kullanıcı etkileşimine izin verilmez. Bir bakışta dokunun, isteğe bağlı olarak uygulamanın belirli bir arayüz denetleyicisini görüntülemesine izin vermek için bir bağlam sağlayarak uygulamayı başlatır.

Örneğin, bir Apple Watch hava durumu uygulaması mevcut sıcaklığı, konumu vb. görüntülemek için Bakış'ı kullanabilir. Buna dokunulduğunda uygulama açılır ve daha ayrıntılı bilgiler gösterilir.

İşte resmi Apple WatchKit Kılavuzundan örnek Bakış.

Bu, örnek bir Apple Watch uygulamasındaki Apple Watch bakış özelliğinin bir örneğidir.

Apple Watch Bildirimleri

2 bildirim türü vardır: kısa bakış ve uzun bakış .

Kısa bakış bildirimi, kullanıcıyı bir şey olduğu konusunda uyarmak için kullanılır ve bilek indirildiğinde otomatik olarak reddedilir. Düzen çok basittir ve uygulama simgesi, uygulama adı ve bildirim başlığından oluşur.

Bir uygulama içinde bir Apple Watch bildirimi böyle görünebilir.

Bileği bir süre yukarıda tutmak veya kısa bakış bildirimine açıkça dokunmak, onu uzun bakış bildirimine dönüştürecektir. Bu tür bildirimler daha fazla ayrıntı sağlar ve özelleştirilebilir düğmeler aracılığıyla kullanıcı etkileşimini destekler. Bu düğmeler uygulamaya bildirim gönderebilir. Kısa bildirimden farklı olarak, kullanıcının görünümün altında otomatik olarak görüntülenen bir düğmeye dokunarak uzun bakış bildirimini açıkça reddetmesi gerekir.

Uzun görünüm bildirimi, geliştiricilerin bilmesi gereken belirgin Apple Watch özelliklerinden biridir.

Apple Watch Bildirimlerini kullanma hakkında daha fazla bilgiyi burada bulabilirsiniz.

Gelişim

Mimari

WatchKit'i destekleyen bir Xcode sürümünü (şu anda 6.2 beta sürümü) indirmek ve herhangi bir belgeyi okumadan bir WatchKit projesine başlamaya çalışmak, WatchKit şablonu olmadığı için geliştiricinin kafası karışabilir:

Apple Watch uygulamaları, yalnızca mevcut iOS uygulamalarınızdan birine yeni bir hedef olarak eklenebilir.

Bağımsız bir izleme uygulaması yoktur ve bir İzleme Uygulaması yalnızca mevcut bir iOS uygulamasına yeni bir hedef olarak eklenebilir.

Bir Apple Watch uygulaması geliştirmek için mevcut iOS uygulamanızla başlayın ve Watch uygulamasını yeni bir hedef olarak ekleyin.

Bunun nedeni mimariye ve saat uygulamasının ilgili iOS uygulamasıyla etkileşime girme şekline bağlıdır:

Bir Apple Watch'un iPhone'daki diğer iOS uygulamalarıyla nasıl etkileşime girdiğini anlamak, başarılı bir Apple Watch geliştiricisi olmanın ayrılmaz bir parçasıdır.

Uygulama saatte başlatıldığında, eşlik eden iOS uzantısı otomatik olarak başlatılır. Her ikisi de sinerji içinde çalışıyor, saat uygulaması kullanıcıya içerik gösteriyor ve etkileşimlere yanıt veriyor, iOS uzantısı diğer her şeyi yapıyor. Aslında, saatte hiçbir uygulama kodu yürütülmez: tüm işlemler iOS uzantısına devredilir.

Bu model, etki alanı mantığının sunucu tarafında gerçekleştirildiği ve istemci tarafının içeriği kullanıcıya göstermekten ve kullanıcı eylemlerine yanıt vermekten sorumlu olduğu tarayıcı <-> web uygulama modeline çok benzer.

Cihaza yüklenen İzleme Uygulaması, bir pakette paketlenmiş film şeridinden ve ilgili tüm statik kaynaklardan oluşur. Bu paket statiktir, yani çalışma zamanında herhangi bir kaynak, görünüm, resim vb. eklemek veya değiştirmek mümkün değildir.

Bu statik istemci-sunucu modeli, repertuarına bir Watch uygulaması eklemek isteyen iOS geliştiricisine çeşitli sınırlamalar getirir ve muhtemelen bazı geliştiricilerin olumlu tepki vermemesinin başlıca nedenlerinden biridir. Bir başka popüler yorum da animasyonlarla ilgili: sadece desteklenmiyorlar. Bir animasyonu taklit etmenin tek yolu, tek tek kareleri saat uygulamasına yerleştirmek ve ardından görüntüleri bir sırayla görüntüleyerek animasyonu simüle etmektir. İyi haber şu ki, kareleri sıralı olarak adlandırarak animasyonu doğrudan Arayüz Oluşturucu'dan otomatikleştirebilirsiniz, ancak aynı şey bir görüntü kontrol yönteminin tek bir çağrılmasıyla koddan da yapılabilir.

Ancak Apple, henüz daha fazla ayrıntı verilmeyen yerel uygulamaları destekleyen yeni bir sürümün bazen gelecek yıl piyasaya sürüleceğini zaten duyurdu.

Apple Watch Çerçevesi: Hızlı Bir Bakış

WatchKit, UIKit'i kullanmaz, devralmaz veya uzmanlaştırmaz. Küçük ekranı ve sınırlı donanımı için saat için özel olarak tasarlanmış ve optimize edilmiş yeni bir çerçeve uygulandı. Çerçeve, yalnızca 12'si UI bileşenleri (etiket, düğme vb.) olan 15 sınıftan oluşur.

Çerçeve tarafından sunulan en önemli sınıf, UIViewController WKInterfaceController karşılığı olan WKInterfaceController'dır. Öyleyse, iOS'ta (ve OSX'te) görünüm denetleyicisi olarak adlandırılan şey, Apple Watch'ta bir arabirim denetleyicisidir .

Çok derine inmeden, bir Apple geliştiricisinin bakış açısından UIKit üzerinde en göze çarpan gelişme, arayüz denetleyicileri arasında veri iletmek için bir modelin oluşturulmasıdır. Başlatıcıya hızlı bir bakış:

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

bir arabirim denetleyici örneğine (tüm API'lerde context olarak adlandırılır) rastgele bir nesne sağlamanın mümkün olduğunu, bir arabirim denetleyicisinden diğerine veri geçişini basitleştirdiğini ve standartlaştırdığını ortaya koymaktadır. Tek dezavantajı, nesnenin genel bir tür değil, hedef arabirim denetleyicisinin başlatıcısı içinde beklenen türe indirilmesi gereken opak bir AnyObject . Bu muhtemelen Objective C'yi kullanmaya devam etmek (ve muhtemelen de istemek) için bir takastır.

Arabirim denetleyicisi yaşam döngüsü, yalnızca 3 geçişten oluşan görünüm denetleyicisi karşılığıyla karşılaştırıldığında basitleştirilmiştir:

  • init : nesne başlatıldığında çağrılır
  • willActivate : içerik görüntülenmek üzereyken çağrılır
  • didDeactivate : arayüz henüz gizlendiğinde çağrılır

Kullanıcıya içerik göstermenin yanı sıra, arayüz denetleyicisi şunlardan da sorumludur:

  • kullanıcı etkileşimlerini ele alma
  • bağlamsal bir menüyü yönetme
  • koordine el değiştirme faaliyeti
  • bildirime yanıt ver

Apple WatchKit Hazır mı?

Çeşitli sınırlamalarla birlikte, saat kiti olgunlaşmamış bir ürün olarak görünebilir. Ve gerçekte öyle. Yerel saat uygulamalarını desteklemiyor, ayrıca piyasada henüz bir saat cihazı bulunmadığından bahsetmiyorum bile, bu nedenle geliştiriciler hala uygulamalarını test edemiyor ve uygulamanın nasıl çalıştığına dair gerçek bir his ve geri bildirim alamıyor.

Tamam, aslında bağımsız bir simülatör olmayan, ancak iOS simülatörüne harici bir ekran olarak erişilebilen bir simülatör var (Donanım -> Dış Ekranlar menüsü aracılığıyla). Ancak bir simülatör asla gerçek bir cihazın yerini almaz - geliştirme ve hata ayıklama için iyidir, ancak yeterli değildir.

WatchKit, her yeni sürümde gelişecek olan sadece bir ön izleme, bir beta sürüm, bir mezedir. iOS geliştiricileri ilk sürüme sahip, hadi onunla oynayalım ve bundan en iyi şekilde yararlanmaya çalışalım.