Aracılığıyla paylaş


SiriKit Kavramlarını Anlama

Bu makale, Xamarin.iOS uygulamasında SiriKit ile çalışmak için gerekli olan temel kavramları kapsar.

iOS 10'da yeni olan SiriKit, Xamarin.iOS uygulamasının iOS cihazında Siri ve Haritalar uygulamasını kullanarak kullanıcıya erişilebilen hizmetler sağlamasına olanak tanır. Bu işlev, yeni Intents and Intents UI çerçeveleri kullanılarak bir veya daha fazla Uygulama Uzantısında sağlanır.

SiriKit, iOS uygulamasının Uygulama Uzantıları ve yeni Amaçlar ve AmaçlarKULLANıCı Arabirimi çerçevelerini kullanarak iOS cihazında Siri ve Haritalar uygulamasını kullanarak kullanıcıya erişilebilen hizmetler sağlamasına olanak tanır.

Siri, etki alanları kavramıyla, ilgili görevler için bilgi eylemleri gruplarıyla çalışır. Uygulamanın Siri ile yaptığı her etkileşim, bilinen hizmet Etki Alanlarından birine aşağıdaki gibi girmelidir:

  • Sesli veya görüntülü arama.
  • Bir gezi için rezervasyon.
  • Antrenmanları yönetme.
  • Mesajlaşma.
  • Fotoğraflar aranıyor.
  • Ödemeleri gönderme veya alma.

Kullanıcı Uygulama Uzantısı'nın hizmetlerinden birini içeren bir Siri isteğinde bulunduğunda SiriKit uzantıya kullanıcının isteğini ve destekleyici verileri açıklayan bir Intent nesnesi gönderir. Uygulama Uzantısı daha sonra verilen Amaç için uygun Yanıt nesnesini oluşturur ve uzantının isteği nasıl işleyebileceğini açıklar.

Amaçlar ve Amaçlar Kullanıcı Arabirimi Uzantıları

Hem Siri hem de Haritalar uygulaması, iki farklı uygulama uzantısı türü aracılığıyla uygulamanın hizmetleriyle etkileşim kurar:

  • Amaçlar Uzantısı - Siri ve Haritalar uygulamanın içeriğini sağlar ve desteklenen amaçları yerine getirmek için gereken görevleri gerçekleştirir.
  • Amaçlar Kullanıcı Arabirimi Uzantısı - Siri veya Haritalar içinde uygulamanın içeriği için görüntülenecek özel bir kullanıcı arabirimi sağlar.

Uygulamanın SiriKit'i desteklemek için bir Amaçlar Uzantısı sağlaması gerekir ve Siri ve Haritalar kullanıcıya sunabileceği bilgileri sağlamak ve Amaçlar'ı işlemek için sorumludur.

Genellikle Siri tüm kullanıcı etkileşimlerini işlediğinden ve desteklenen etki alanlarının her birinde bilgi sunmak için standart, yerleşik bir kullanıcı arabirimine sahip olduğundan Amaçlar Kullanıcı Arabirimi Uzantısı oluşturma isteğe bağlıdır. Bir Intents UI Uzantısı sağlayarak, uygulama Intent UI çerçevesini kullanarak uygulamanın markasını ve ek bilgilerini içeren zengin, özel bir Kullanıcı Arabirimi sunabilir.

Siri ve Haritalar Uygulama Rolü

Kullanıcının konuşulan istekleri, Siri tarafından işlenen ve anlamsal olarak analiz edilen bir dildir ve bu da bu istekleri Amaç Uzantılarının işleyebileceği eyleme dönüştürülebilir Amaçlara dönüştürür.

Haritalar, kullanıcının eylemlerine yanıt olarak Bilgileri Harita arabiriminde görüntülemek için uygulamanın Amaç Uzantıları'nı kullanır. Yakınlardaki restoran talep etme veya uygulamanın restoran incelemelerini alma gibi.

Hem Siri hem de Haritalar kullanıcının tüm etkileşimlerini yönetir ve sonuçları standart sistem arabirimini kullanarak görüntüler. Uygulama uzantıları rolü öncelikle görüntülenen verileri sağlamaktır. İsteğe bağlı olarak, uygulama bir Intents UI Uzantısı sağlayabilir ve varsayılan sistem arabirimini geliştirmek için özel bir kullanıcı arabirimi sunabilir.

SiriKit aracılığıyla Siri ile etkileşim kurma

Bu bölümde, SiriKit'in kullanıcının Siri kullanarak uygulamayla etkileşim kurmasına nasıl izin verdiğine ilişkin bir genel bakış sunulacaktır. Bu örnekte sahte MonkeyChat uygulamasını kullanacağız:

MonkeyChat simgesi

MonkeyChat, her biri bir ekran adıyla (örneğin Bobo gibi) ilişkili kullanıcının arkadaşlarının kendi iletişim kitabını tutar ve kullanıcının her bir arkadaşınıza ekran adıyla kısa mesaj göndermesine izin verir.

Farklı kişiler aynı isteği birçok farklı biçimde gerçekleştirebileceğinden, kullanıcının uygulamayla etkileşim başlatmasının birçok yolu vardır.

Örneğin, kullanıcı arkadaşı Bobo'ya bir ileti göndermek isterse Siri ile aşağıdaki konuşmayı yapmış olabilir:

Kullanıcı: Hey Siri, MonkeyChat mesajı gönder.
Siri: Kime?
Kullanıcı: Bobo.
Bobo'ya ne söylemek istiyorsunuz?
Kullanıcı: Lütfen daha fazla Muz gönderin.

Başka bir kişi farklı bir konuşmayla aynı isteği gönderebilir:

Kullanıcı: MonkeyChat'te Bobo'ya bir ileti gönderin.
Bobo'ya ne söylemek istiyorsunuz?
Kullanıcı: Lütfen daha fazla muz gönderin.

Başka bir kullanıcı da daha kısa bir istekte bulunabilir:

Kullanıcı: MonkeyChat Bobo lütfen daha fazla muz gönderin.
Siri: Tamam, mesaj göndermek için lütfen Monkeychat'te Bobo'ya daha fazla muz gönderin.

Hatta aynı isteği farklı bir dilde de yapabilirsiniz:

Kullanıcı: MonkeyChat Bobo's il vous plaît envoyer plus de bananes.
Siri: Oui, envoi message s'il vous plaît envoyer plus de bananes à Bobo sur Monkeychat.

Ancak başka bir kullanıcı konuşmasında çok ayrıntılı olabilir:

Kullanıcı: Hey Siri, lütfen bana bir iyilik yapın ve mesajı ile bir mesaj göndermek için MonkeyChat uygulamasını başlatın lütfen daha fazla muz gönderin.
Siri: Kime?
Kullanıcı: En iyi arkadaşım Bobo.

Buna ek olarak, Siri'nin bir isteğe yanıt vermesinin birçok yolu vardır ve bazıları isteğin nasıl yapıldığına bağlıdır:

  • Giriş Düğmesini Basılı Tutarak - Siri sınırlı sözlü geri bildirimle daha fazla görsel yanıt sağlayacaktır.
  • "Hey Siri" ile - Siri daha sözlü olacak ve daha az görsel yanıt sağlayacaktır.

Siri ayrıca kullanıcının erişilebilirlik gereksinimlerini karşılayacak şekilde ayarlanır ve bu gereksinimlere göre etkileşime girip yanıt verir.

İstek nasıl yapılır veya Siri'nin isteğe nasıl yanıt verdiği fark etmez, Siri kullanıcıyla konuşmayı işler ve uygulama (Uzantıları aracılığıyla) işlevselliği sağlar.

Kullanıcı Siri'yi sözlü olarak istediğinde, Siri'nin izleyeceği adımlar şunlardır:

Siri'nin izleyeceği adımlar

  1. İlk olarak Siri, kullanıcının Konuşma sesini alır ve metne dönüştürür.
  2. Ardından metin, kullanıcının isteğinin yapılandırılmış bir gösterimi olan Intent'e dönüştürülür.
  3. Siri, Amaç'a bağlı olarak kullanıcının isteğini gerçekleştirmek için Eylem gerçekleştirir.
  4. Son olarak Siri, gerçekleştirilen Eyleme göre kullanıcıya Yanıtlar (hem görsel hem de sözlü) sunar.

Uygulamanın kullanıcının Siri ile konuşmasında yer almasının üç ana yolu vardır:

Uygulamanın Siri ile kullanıcı konuşmasında yer almasının üç ana yolu

  1. Kelime dağarcığı - Uygulama Siri'ye etkileşime geçmek için bilmesi gereken sözcükleri bu şekilde söyler.
  2. Uygulama Mantığı - Bunlar, uygulamanın belirli Amaçlara göre gerçekleştireceği eylemler ve yanıtlardır.
  3. Kullanıcı Arabirimi - Bu, uygulamanın yanıtlarını verebileceği isteğe bağlı, özel kullanıcı arabirimidir.

Örnek

Yukarıdaki bilgiler göz önüne alındığında, aşağıdaki konuşmanın MonkeyChat uygulamasıyla nasıl etkileşim kuracağını inceleyin:

Kullanıcı: Hey Siri, MonkeyChat'te Bobo'ya bir mesaj gönder.
Bobo'ya ne söylemek istiyorsunuz?
Kullanıcı: Lütfen daha fazla muz gönderin.

Uygulamanın konuşmada üstlenmesi gereken ilk rol Siri'nin kullanıcının konuşmasını anlamasına yardımcı olmaktır:

Siri'nin kullanıcıların konuşmasını anlamasına yardımcı olma

Siri'nin veritabanında "Bobo" adı yoktur, ancak uygulama bu bilgileri Siri ile Sözlük aracılığıyla paylaşmış ve paylaşmıştır. Uygulama ayrıca Siri'nin Bobo'yu Kişi olarak Siri'ye belirttiğinden alıcı olduğunu algılamasına da yardımcı olur.

Siri, ileti göndermek için yalnızca bir alıcıdan daha fazlasının gerekli olduğunu bilir, bu nedenle bir iletinin içerik gerekip gerekmediğini görmek için Uygulama Uzantısı'na hızlı bir şekilde göz atacaktır. MonkeyChat'in yaptığı için Siri kullanıcıya şu soruyu yanıtlar: "Bobo'ya ne söylemek istiyorsunuz?"

Yukarıdaki örnekte kullanıcı, Siri'nin yapılandırılmış bir Amada paketlediği "Lütfen daha fazla muz gönderin" yanıtını verdi:

Siri, kullanıcının yanıtını yapılandırılmış bir Amaç olarak paketler

Yapılandırılmış Amaç aşağıdaki bilgileri içerir:

  • Etki Alanı: İletiler
  • Amaç: sendMessage
  • Alıcı: Bobo
  • İçerik: Lütfen daha fazla muz gönderin

Her Etki Alanı, kendi içinde ve Etki Alanı ile Eylem temelinde gerçekleştirilebilecek bilinebilir Eylemler kümesine sahiptir; uygulamaya gönderilen Amada sıfırdan çok parametre eklenebilir.

Amaç daha sonra işlenmek üzere Uygulama Uzantısına gönderilir. Amaç işlemenin bir sonucu olarak, uygulama Intent ile birlikte paketlenecek bir IntentResponse oluşturur ve uygulamanın Intent ile ne yaptığını açıklayan parametreler içerir.

Her IntentResponse, Siri'ye uygulamanın isteği tamamlayıp tamamlayamayacağını bildiren bir Yanıt Kodu da içerir. Bazı Etki Alanlarının da gönderilebilen çok özel hata yanıt kodları vardır.

Son olarak IntentResponse bir içerir NSUserActivity (Hand Off'ı desteklemek için kullanılanlar gibi). , NSUserActivity yanıt Siri ortamından ayrılmasını gerektiriyorsa uygulamayı başlatmak ve tamamlamak için uygulamayı girmek için kullanılır.

Siri, kullanıcının Siri ortamında kaldığı yerden uygulamayı ve teslim alma işlemini başlatmak için otomatik olarak uygun NSUserActivity bir uygulama oluşturur. Ancak, gerekirse uygulama kendi NSUserActivity özelleştirilmiş bilgilerini sağlayabilir.

Uygulama Amaç'ı işledikten ve Siri'ye bir yanıt döndürdükten sonra sonuçları kullanıcıya sunar (hem sözlü hem de görsel olarak):

Kullanıcıya hem sözlü hem de görsel olarak sunulan sonuçlar

Siri'de, uygulamada kullanılabilen etki alanlarının her biri için çeşitli yerleşik yanıt Kullanıcı Arabirimleri vardır. Ancak MonkeyChat isteğe bağlı bir Intent UI Uzantısı sağladığından, yukarıdaki örnekte konuşmanın sonuçlarını kullanıcıya sunmak için kullanılır.

Amaç Yaşam Döngüsü

Uygulama Uzantısının Amaçlarla ilgilenirken gerçekleştirmesi gereken üç ana görev vardır:

Amaç Yaşam Döngüsü

  1. Uygulamanın bir olaydaki her parametreyi çözümlemesi gerekir. Sonuç olarak, uygulama Resolve'yi birden çok kez (her parametre başına bir kez) ve bazen uygulama ve kullanıcı istenenleri kabul edene kadar aynı parametrede birkaç kez çağırır.
  2. Uygulamanın istenen Amacı işleyebildiğini onaylaması ve Siri'ye beklenen sonucu anlatması gerekir.
  3. Son olarak, uygulamanın Amacı İşlemesi ve istenen sonuca ulaşmak için adımları gerçekleştirmesi gerekir.

Çözüm aşaması

Çözümle aşaması Siri'nin kullanıcının sağladığı değerleri anlamasına yardımcı olur ve Amaç uygulama tarafından işlendiğinde kullanıcının gerçekte ne anlama geldiğinin ne olacağını güvence altına alır.

Bu aşama, uygulamanın kullanıcıyla konuşma sırasında Siri'nin davranışını etkilemesi için de bir fırsat sağlar. Bunu yapmak için uygulama bir Çözüm Yanıtı sağlar. Siri'nin anladığı farklı veri türlerine önceden tanımlanmış bir dizi yanıt vardır.

Uygulamadan gelen en yaygın Çözüm Yanıtı Başarılı olur. Bu, uygulamanın bir parametredeki (kullanıcı ekranı adı gibi) belirli bir veri parçasını bildiği bir bilgi parçasıyla eşleştirdiği anlamına gelir.

Uygulamanın belirli bir isteğin bildiği doğru bilgi parçasıyla eşleştiğinden emin olması gereken zamanlar olabilir. Bu gibi durumlarda, kullanıcıya "Büyük Bobo'ya ileti gönder?" gibi bir evet veya hayır sorusu sormak için bir ConfirmationRequired yanıtı gönderir.

Uygulamanın kullanıcının kısa bir seçenek listesinden seçim almasını gerektirdiği başka durumlar da olabilir. Bu durumda uygulama, kullanıcının aralarından seçim yapacağı iki ila on seçenekten oluşan bir liste içeren bir Kesinleştirme yanıtı sağlar:

Who do you want to message?

* Bobo the Great
* Bobo Jr.
* Little Bobo

Siri, seçimi yapan kullanıcıyı sözlü olarak veya Siri kullanıcı arabirimiyle etkileşim kurarak işler ve sonuç uygulamaya geri gönderilir.

Diğer durumlarda, uygulamanın parametreyi çözümlemesi için yeterli bilgi olmayabilir veya kesinleştirme kullanarak çözümlemek için çok fazla eşleşme olabilir (örneğin, adında Bobo bulunan 80 kullanıcı). Bu durumlarda, uygulama bir NeedsMoreDetails yanıtı gönderir ve Siri kullanıcıdan daha belirgin olmasını ister.

Kullanıcı Amaç'ı işlemesi için gereken bir değer sağlamadıysa, Siri'nin kullanıcıdan değer istemesini sağlamak için bir NeedsValue yanıtı gönderebilir.

Uygulama, kullanıcının belirli bir parametre için verdiği bir değeri desteklemiyorsa, değerin desteklenmeme nedenini sağlamak için UnsupportedWithReason yanıtını gönderebilir. Siri daha sonra kullanıcıdan tamamen yeni bir değer ister ve gerekli olmasının nedenini verir.

Son olarak, Siri'ye uygulamanın belirli bir parametre için değer gerektirmediğini bildirmek için NotRequired yanıtını kullanın. Kullanıcı yine de bir tane sağlarsa, siri tarafından yoksayılır.

Onaylama Aşaması

Onaylama Aşamasının iki amacı vardır:

  • Siri'nin kullanıcıya neler olacağını anlatabilmesi için Bir Amacı işlemenin beklenen sonucunu Siri'ye bildirmek için.
  • Uygulamanın kullanıcı tarafından sunulan isteği tamamlaması gerekebilecek gerekli durumları (örneğin, istenen ödemeyi yapmak için bankada yeterli para olması) bir fırsat denetimi sağlar.

Uygulama, onay adımından bir Amaç Yanıtı sağlar ve Siri'nin kullanıcıyla etkili bir şekilde iletişim kurabilmesi için uygulamanın sahip olduğu kadar çok bilgiyle doldurulması gerekir.

Etki Alanı ve Eylem türüne bağlı olarak Siri, ödeme göndermeden veya yolculuk rezervasyonundan önce olduğu gibi kullanıcıdan onay isteyebilir.

Tanıtıcı Aşaması

Tanıtıcı Aşaması, bir Amaç ile çalışmanın en önemli parçasıdır çünkü uygulama, kendisinden istenen görevi gerçekleştirerek kullanıcının isteğini yerine getirme noktasıdır.

Onaylama Aşamasında olduğu gibi, Siri'nin bunu kullanıcıyla ilişkilendirebilmesi için uygulamanın sonuç hakkında mümkün olduğunca çok bilgi sağlaması gerekir. Bazen bu bilgiler görsel olarak sunulur veya bazen Siri bunu kullanıcıya geri söyler.

Uygulamanın belirli bir isteği işlemek için ek süre gerektirebileceği zamanlar olabilir; örneğin ağ çağrısı gecikmeleri veya canlı bir kişinin isteği yerine getirmesi gerekebilir (siparişi tamamlama ve gönderme veya kullanıcının konumuna araba sürme gibi). Siri uygulamadan yanıt beklerken, kullanıcıya uygulamanın isteği işlediğini söyleyen bir Bekleyen kullanıcı arabirimi görüntüler.

İdeal olan, uygulamanın Siri'ye en fazla iki-üç saniye içinde yanıt vermesidir. Uygulama belirli bir yanıtın işlenmesinin daha uzun süreceğini biliyorsa Siri'ye bir InProgress yanıt kodu göndermesi gerekir. Siri daha sonra kullanıcıya uygulamanın isteği arka planda işlediğini bildirir ve Siri ortamından ayrılsa bile bunu yapmaya devam eder.

Uygulamaya SiriKit ekleme

iOS 10'da SiriKit ile Apple iki yeni Uzantı noktası oluşturmuştur:

  • Intents Uzantısı - Siri'ye uygulamanın içeriğini sağlar ve desteklenen amaçları yerine getirmek için gereken görevleri gerçekleştirir.
  • Amaçlar Kullanıcı Arabirimi Uzantısı - Siri'nin içindeki uygulama içeriği için görüntülenecek özel bir kullanıcı arabirimi sağlar.

Siri'ye tanımaya yardımcı olmak için şu şekilde sözcükler ve tümcecikler sağlayan bir API de vardır:

  • Uygulama Sözlüğü - Uygulamanın her kullanıcısı için ortak olan sözcükler ve tümcecikler.
  • Kullanıcı Sözlüğü - Belirli bir uygulama kullanıcısına özgü sözcükler ve tümcecikler.

Intents Uzantısı

Intents Uzantısı, uygulama ve Siri arasındaki ana etkileşimleri aşağıdaki gibi işlemekle sorumludur:

Intents Uzantısı

Amaç Uzantısı bir veya daha fazla Amacı destekleyebilir; uygulamada SiriKit'i nasıl uygulamak istediklerine geliştirici karar verebilir. Geliştirici, işlenmesi gereken her Amaç için ayrı bir Amaç Uzantısı da ekleyebilir. Bununla birlikte, Apple geliştiricinin Intent Extensions sayısını sınırlamasını ister, böylece Siri'nin uygulamada açık olan ve daha fazla bellek ve işlenme süresi gerektiren birden çok işlemi yoktur.

Geliştirici, Siri etkinken Amaç Uzantısı'nın arka planda çalıştırılacağını da bilmeli. Bu, Siri'nin istek hakkındaki bilgileri işlemek için uzantıyla iletişim kurmaya devam ederken kullanıcıyla etkin bir şekilde bir konuşma gerçekleştirmesini sağlar.

Gizlilik ve Güvenlik Konuları

Apple, Siri ile çalışırken bir kullanıcının özel bilgilerinin güvenli olmasını sağlamak için harika önlemler aldı ve bu nedenle kullanıcının iOS cihazında oturum açmasını gerektiren çeşitli etkileşimler var. Örneğin, yolculuk isterken veya ödeme yaparken.

Ayrıca, uygulamanın cihazda oturum açan kullanıcıyla sınırlamak isteyebileceği belirli davranışlar vardır. Bu gibi durumlarda uygulama Kilitliyken Kısıtla davranışını isteyebilir. Bu işlem dosyadaki Info.plist bir ayar aracılığıyla yapılır.

Cihazın kilidi zaten açık olsa bile uygulamanın kullanıcıdan ek kimlik doğrulama bilgileri istemesi için Amaç Uzantısı için Yerel Kimlik Doğrulama Çerçevesi kullanılabilir.

Son olarak, Apple Pay Amaç Uzantısı için kullanılabilir, böylece uygulama Apple Pay'i kullanarak bir işlemi tamamlayabilir ve yerleşik Apple Pay sayfası Siri arabiriminin üzerinde görünür.

Buna ek olarak, Apple kullanıcıların üçüncü taraf bir uygulamaya ne zaman bilgi gönderdiğini bildiğinden emin olmak ister ve bu nedenle, istekte bulunurken kullanıcının uygulamanın belirli adını (uygulamanın Paket Görünen Adında belirtildiği gibi) söylemesi gerekir .

Apple, Siri'yi kullanıcıyla doğal ve akıcı konuşmalar gerçekleştirecek şekilde tasarladı ve bu nedenle uygulamanın Paket Adı, kullanıcının isteğine doğal olarak uyduğu her yerde konuşmanın birçok bölümünde kullanılabilir.

Kullanıcıların yapacağı yaygın işlemlerden biri, uygulamanın adını "fiilleştirmek", başka bir deyişle uygulama adını almak ve bir istekte fiil olarak kullanmaktır. Örneğin, "MonkeyChat Bobo bunlar harika muzlardı."

Intents KULLANıCı Arabirimi Uzantısı

Intents Kullanıcı Arabirimi Uzantısı, uygulamanın kullanıcı arabirimini ve markasını Siri deneyimine getirme ve kullanıcıların uygulamaya bağlı hissetmesini sağlama fırsatı sunar. Bu uzantıyla uygulama, markanın yanı sıra görsel ve diğer bilgileri transkripte getirebilir.

Örnek Amaçlar UI Uzantısı çıktısı

Intents KULLANıCı Arabirimi Uzantısı her zaman bir UIViewController döndürür ve uygulama görünüm denetleyicisinin içine beğendiği her şeyi ekleyebilir; örneğin, ilk yanıtın ötesine geçen ek bilgileri gösterir. Intents kullanıcı arabirimi ayrıca kullanıcıyı uzun süre çalışan bir olayın durumuyla (örneğin, bir yolculuk paylaşım aracının konumuna ulaşmasının ne kadar süreceği gibi) güncelleştirebilir.

Amaçlar Kullanıcı Arabirimi Uzantısı her zaman kullanıcı arabiriminin üst kısmındaki uygulama simgesi ve ad gibi diğer Siri içeriğiyle birlikte görüntülenir veya Amaç temelinde, düğmeler (Gönder veya İptal gibi) altta görüntülenebilir.

Uygulamanın, Siri'nin kullanıcıya varsayılan olarak görüntülediği bilgileri değiştirebildiği mesajlaşma veya haritalar gibi uygulamanın varsayılan deneyimi uygulamaya uyarlanmış bir deneyimle değiştirebileceği birkaç örnek vardır.

Önemli

Intent UI Uzantısı'nın UIViewControlleröğesine veya UITextFields gibi UIButtons etkileşimli öğeler eklemek mümkün olsa da, bunlar etkileşimli olmayan amaçlarla kullanıcı arabirimi olarak kesinlikle yasaktır ve kullanıcı bunlarla etkileşim kuramaz.

Siri her Amaç türü için varsayılan bir kullanıcı arabirimi kümesi içerdiğinden, uygulamanın Bir Amaç Kullanıcı Arabirimi Uzantısı sağlaması tamamen isteğe bağlıdır. Buna ek olarak, Intents kullanıcı arabirimi arabirimleri yalnızca Apple'ın kullanıcıya yardımcı olacağını kabul etmiş olduğu belirli Amaçlar için kullanılabilir.

SiriKit Kelime Dağarcığı Ekleme

SiriKit'i uygulamanın son parçası, gerekli Kelime Dağarcığını sağlayarak uygulamanın içinde yer alır. Birçok Uygulama, kullanıcıya bilgileri açıklamanın benzersiz yollarına ve kullanıcının uygulamaya bilgi sağlamasının benzersiz yollarına sahiptir.

Bu nedenle Siri, uygulamaya özgü sözcükleri ve tümcecikleri anlamak için uygulamanın yardımına ihtiyaç duyar. Bu ifadelerden bazıları uygulamanın bir parçası olacak, böylece her kullanıcı bunları tanıyacak ve anlayacaktır. Ancak diğerleri uygulamanın belirli bir kullanıcısı için benzersiz olacaktır.

Uygulamaya Özgü Sözlük

Uygulamaya Özgü Sözlük, araç türleri veya antrenman adları gibi uygulamanın tüm kullanıcıları tarafından bilinecek belirli sözcükleri ve tümcecikleri tanımlar. Bunlar uygulamanın bir parçası olduğundan, ana uygulama paketinin bir parçası olarak bir AppIntentVocabulary.plist dosyada tanımlanırlar. Ayrıca, bu sözcükler ve tümcecikler yerelleştirilmelidir.

Sözlük AppIntentVocabulary.plist dosyasının birkaç bölümü vardır:

  • Örnek Uygulama Kullanımı - Bunlar, kullanıcının uygulamadan gerçekleştirebileceği istekler için bir dizi yaygın kullanım örneği sağlar. Örneğin: "MonkeyFit ile bir antrenman başlatın."
  • Parametreler - Bunlar uygulamaya özgü standart olmayan parametre türleri kümesi sağlar. Örneğin, MonkeyFit uygulamasının antrenman adları. Bunlar şunlardan oluşur:
    • Tümcecik - Uygulamanın uygulama için benzersiz terimler tanımlamasına izin verir. Örneğin: MonkeyFit uygulamasının "Bananarific" egzersiz türü.
    • Telaffuz - Belirli bir tümcecik için basit bir fonetik yazım olarak Siri'ye söyleniş ipuçları verir. Örneğin, "ba nana ri fic".
    • Örnek - Uygulamada verilen tümceciği kullanma örneği sağlar. Örneğin, "MonkeyFit'te Bir Bananarific Başlat".

Daha fazla bilgi için bkz. Apple'ın Uygulama Sözlüğü Dosya Biçimi Başvurusu.

Kullanıcıya Özgü Sözlük

Kullanıcıya Özgü Sözlük, uygulamanın bireysel kullanıcılarına özel sözcükler veya tümcecikler sağlayacaktır. Bunlar çalışma zamanında ana uygulamadan (Uygulama Uzantıları'ndan değil) kullanıcılar için en önemli kullanım önceliğine göre sıralanmış bir terim kümesi olarak ve en önemli terimler listenin başında olacak şekilde sağlanacaktır.

Yukarıda sunulan MonkeyChat uygulamasının örneğine göz atın. MonkeyChat, Kullanıcıya Özgü Sözlük aracılığıyla Siri'ye göndereceği tüm kullanıcı kişilerinin listesini tutar. Ayrıca kullanıcının ileti gönderdiği en son 10 kişi listesini tutar ve her kullanıcı için sık kullanılan kişiler kümesine sahiptir. Bu örnekte, sık kullanılan kişiler Kullanıcıya Özgü Sözcük Dağarcığımızın başında olmalı ve ardından son kişiler ve ardından kullanıcının kişilerinin geri kalanı olmalıdır.

Aşağıdaki bilgi türleri Kullanıcıya Özgü Sözlük tarafından desteklenir:

  • Kişi Adları.
  • Antrenman Adları.
  • Fotoğraf Albümü Adları.
  • Fotoğraf anahtar sözcükleri.

Uygulama iOS Adres Defteri'ne bağlıysa, bu bilgiler Siri tarafından zaten kullanılabildiğinden, uygulamanın herhangi bir işlem gerçekleştirmesi gerekmez. Uygulamanın yalnızca kendi benzersiz kişi veritabanı varsa kişi adlarını sağlaması gerekir.

Kelime dağarcığını tasarlarken, yalnızca kullanıcıların bildiği ve önemsediği gerekli değerleri sağlayın. Telefon numaraları veya e-posta adresleri gibi bilgileri sağlamaktan kaçının.

Kullanıcıya özgü sözlük değiştiğinde uygulamanın Siri'yi de hemen güncelleştirmesi gerekir. Kullanıcılar, iOS cihazlarına eklendiği anda Siri'den bilgi istemeye alışkındır. Örneğin, kullanıcı uygulamaya yeni bir kişi eklerse, kullanıcı kaydeder kaydetmez bu bilgileri Siri'ye gönderin.

Daha da önemlisi, bir kullanıcı bir bilgi parçasını silmesine rağmen Siri saatler veya günler sonra hala tanımaya devam ettiğinden, uygulamanın siri sözlüğündeki bilgileri hemen silmesi gerekir .

Önemli

Kullanıcı uygulamayı sıfırlamayı seçerse veya oturumu kapatırsa, uygulama Siri'den Kullanıcıya Özgü Tüm Sözcük Dağarcığını kaldırmalıdır.

SiriKit İzinleri

SiriKit'in son parçası izinler etrafında ortalanır. iOS'un diğer özelliklerini (Fotoğraflar, Kamera veya Kişiler gibi) kullanırken olduğu gibi kullanıcıların da uygulamanın Siri ile konuşması için açık izin vermesi gerekir.

Uygulama, Siri'ye hangi bilgileri sağlayacağını tanımlayan bir dize sağlayabilir ve kullanıcının bu erişimi neden vermesi gerektiğine ilişkin bir neden verebilir.

Apple, kullanıcının iOS 10'a yükseltildikten sonra uygulamayı ilk kez açtığında Siri'yi kullanmak için kullanıcıdan izin istemesini önerir. Böylece kullanıcılar Siri tümleştirmesini bilir ve ilk isteklerini gerçekleştirmeden önce kullanımı önceden onaylayabilir.

SiriKit ve Haritalar

SiriKit, iOS'un ayrılmaz bir parçasıdır ve iOS 10'a eklenen daha büyük Intents çerçevesini kullanır. Intents çerçevesi, yaygın ve paylaşılan eylemleri ve amaçları sistemin diğer bölümleriyle paylaşmak üzere tasarlanmıştır.

Intents çerçevesi yalnızca Siri tümleştirmesinin ötesine geçer ve uygulamanın belirli kişiler için varsayılan telefon veya mesajlaşma uygulaması olabileceği Kişiler tümleştirmesi gibi diğer özellikleri sağlar. Amaçlar ayrıca kullanıcılara mümkün olan en iyi VOIP deneyimini sunmak için CallKit ile derin tümleştirme sağlar.

iOS 10'daki Haritalar uygulaması, kullanıcının doğrudan Haritalar kullanıcı arabiriminin içinde bir yolculuk rezervasyonu yaptığı sürüş paylaşımı gibi özellikler ekledi. SiriKit, Haritalar ile ortak bir uzantı noktası sağlar, böylece araç paylaşımı (ve diğer) amaçları Siri ile Haritalar arasında paylaşılabilir.

Bu, uygulama SiriKit uzantılarını benimsediyse, Haritalar tümleştirmesini de ücretsiz olarak edineceği anlamına gelir.

Harika Bir Siri Deneyimi Tasarlama

Bir uygulamayı Siri ile tümleştirirken harika bir kullanıcı deneyimi tasarlamak, harika bir uygulama Kullanıcı arabirimi tasarlamaktan farklıdır. Kullanıcının uygulamayla doğrudan ekranda etkileşimde bulunduğu normal durumlardan farklı olarak, Siri kullanırken hiçbir görsel arabirimin görünmediği birçok kez vardır. Örneğin, kullanıcı "Hey Siri" ile konuşmaya başladığında.

Siri Geliştiriciye Nasıl Yardımcı Olur?

Bir uygulamanın Siri ile etkileşimlerini tasarlarken, uygulama bir Konuşma Arabirimi oluşturur, yani bağlam Siri'nin uygulama adına kullanıcıyla yaptığı konuşmadan türetilir.

Görsel başvuru olmadığında, kullanıcının kendi kafasında sunulan bilgileri izlemesi gerekir. Bu nedenle Siri, kullanıcının gerçekleştirmek istediği görevi gerçekleştirmek için gereken minimum bilgileri sunar.

Konuşma Arabirimi, konuşma sırasında hem kullanıcının hem de Siri'nin soruları ve yanıtları tarafından şekillendirilir. Bu nedenle Siri'nin bu arabirimi tasarlarken nasıl sorular sorduğunu ve yanıt verdiğini düşünmek önemlidir.

Kullanıcının ileti oluşturmasına ilişkin aşağıdaki örneği ele alalım, Siri şu soruyu yanıtlayabilir: "Göndermeye hazır mısınız?". Kullanıcı "Gönder", "İptal Et" gibi birçok farklı şekilde yanıt verebilir ve hatta bu soruyla tamamen ilgisiz bir şey olabilir. Konuşmanın nasıl sonuçlanacağı fark etmez, Siri uygulama için bunu işler ve yalnızca uygun bilgileri kullanıma sunuldukça gönderir.

Kullanıcının Siri ile konuşma başlatması için birkaç farklı yol vardır:

  • Cihazı seçerek Giriş düğmesine basın. Bu durumda Siri daha fazla görsel arabirim ve daha az sözlü yanıt sunacaktır.
  • "Hey Siri" diyerek ve Tutmadan Konuşma başlatarak. Bu durumda Siri daha az görsel ve daha sözlü olacaktır.
  • Kullanıcı arabiriminin özel gereksinimleri olan bir kullanıcı için uyarlanacağı bluetooth özellikli işitme cihazları gibi Erişilebilirlik özelliklerini kullanma.
  • Dikkatinizi en düşük düzeyde tutarak kullanıcının dikkatini sürüşe odaklaması gereken Car Play'i kullanma.

Geliştirici Siri'ye Nasıl Yardımcı Olur?

Bir uygulamayı Siri ile tümleştirdiğinde, geliştiricinin bu tümleştirmeyi sık sık test etmesi ve mümkün olduğunca farklı yollarla aynı bilgi veya görevi isteyerek birçok farklı istekte bulunduğundan emin olması gerekir.

İki kişi birbirine benzemediğinden, geliştiricinin Siri tümleştirmesinde ince ayar yapmaya yardımcı olmak için mümkün olduğunca çok farklı beta test edicisi alması kritik önem taşır. Kullanıcılar, geliştiricinin hiç olmadığı şekilde bilgi isteyebilir veya istekte bulunabilir ve bu ince ayar, en geniş kullanıcı grubunun siri ile uygulamalarını kullanarak harika bir deneyim yaşamasını sağlamaya yardımcı olabilir.

Farklı durumlarda ve ortamlarda test edin. Siri ile konuşmaları, bu konuşmaların akıcı ve doğal kalmasını sağlamak için mümkün olan tüm yollarla başlatın. Kullanıcının uygulamayı büyük olasılıkla kalabalık bir spor salonunda olduğu gibi kullanacağı konumlarda test edin.

Uygulamanın Siri'nin isteği ve sonucu kullanıcıya düzgün bir şekilde temsil etmesi için gereken tüm bilgileri sağladığından emin olun. Bu özellikle Siri'nin Tutmadan Kullanım durumunda kullanılması durumunda geçerlidir.

Siri Tasarım Yönergeleri

Siri'nin uygulama adına kullanıcıyla bir konuşma gerçekleştirdiğini her zaman unutmayın. Geliştirici, bu konuşmanın mümkün olduğunca akıcı ve doğal kaldığından emin olmak istiyor.

Tüm önemli konuşmalarda olduğu gibi geliştiricinin aşağıdakileri sağlaması gerekir:

  • Uygulamanın konuşma için hazır olduğunu.
  • Uygulamanın kullanıcının tam olarak gerçekleştirmeye çalıştığı şeyi dinlediğini.
  • Uygulamanın uygun zamanlarda uygun soruları sorması.
  • Uygulamanın isteğe kullanıcının aradığı bilgilerle yanıt vermesi.

Konuşmaya Hazırlanma

Unutmamanız gereken ilk şey, uygulamanın kullanıcılarının tam olarak geliştirici gibi olmayacaklarıdır. Bunlar farklı arka planlardan gelebilir, farklı diller konuşabilir veya uygulamayla çalışırken özel ihtiyaçları olabilir.

Buna ek olarak, geliştirici uygulamayı tasarlayıp oluşturduğundan, hem uygulama hem de tipik bir kullanıcının sahip olmadığı iç çalışmaları ve işlevleri hakkında derin ve samimi bilgilere sahiptir. Bu nedenle geliştirici Siri isteğini normal bir kullanıcıdan farklı bir şekilde isteyebilir.

Bu nedenle, siri aracılığıyla uygulamayla mümkün olduğunca çok farklı kişinin etkileşim kurması kritik önem taşır. Kullanıcılar Siri aracılığıyla geliştiricinin hiç düşünmediği veya geliştiricinin dikkate almadığı şekillerde uygulamadan istekte bulunabilir.

Uygulamanın İyi Bir Dinleyici Olduğundan Emin Olun

Geliştiricinin uygulamanın iyi bir dinleyici olduğundan ve kullanıcının beklentilerini karşılayan konuşmanın ayrıntılarını edindiğinden emin olması gerekir. Ancak, uygulamanın istenen görevi gerçekleştirmek için gerekli tüm bilgileri sağlamamış olması da mümkündür.

Uygulamanın bu durumu ele almanın birkaç yolu vardır:

  • Eksik Değer için İyi Bir Varsayılan Seçin - Örneğin, bir yolculuk paylaşım uygulaması, teslim alınmasını istediği yeri belirtmediyse kullanıcının geçerli konumuna varsayılan olarak atanabilir.
  • Eğitimli TahminDe bulun - Uygulamanın kullanıcı üzerinde topladığı belirli bilgileri kullanarak, kullanıcının iletişim bilgilerinden eksik bir cep telefonu numarasını doldurma gibi eksik bilgilerle ilgili tahminde bulunabilir ve eğitilebilir. Ancak, en pahalı seçeneği seçmek gibi kötü sürprizlerden kaçınmak için dikkatli olunmalıdır.
  • Daha Fazla Bilgi İste - Uygulama, Siri'nin kullanıcıdan eksik değeri istemesini sağlayabilir. Ancak buradaki önemli nokta, konuşmaları basit ve sade tutmaktır. İsteklerini yerine getirmek için birkaç soruyu yanıtlamak zorunda olan kullanıcılar hızla hayal kırıklığına uğrayacaktır.
  • Yanlış Bilgileri Düzgün Bir Şekilde İşle - Kullanıcı, uygulamanın beklemediğini veya belirtilen bağlamda işleyemeyeceği bir değer sağlayabilir. Uygulamanın bu durumu kullanıcıya, düzeltmesini açık ve kolay hale getirecek şekilde ilişkilendirdiğinden emin olun.

Uygulama söz konusu olan tek bir değerle sunulduğunda, bunu işlemenin tercih edilen yolu Siri'nin kullanıcıdan onay istemesini sağlamaktır. Örneğin, "Büyük Bobo mu demek istediniz?", basit bir evet veya hayır yanıtıyla yanıtlayabilirler.

Tek bir değer için birkaç olası seçeneğin doğru olabileceği bir durum olduğunda, kesinleştirme tercih edilen işleme yöntemidir. Bu durumda Siri, kullanıcıdan aralarından seçim yapmak için en fazla on olası seçenek isteyebilir. Örneğin:

Who do you want to send the message to?

* Bobo the Great!
* Bobo Jr.
* Little Bobo

Hala söz konusuysa Siri'nin kullanıcıdan belirli bir değer için tamamen yeni ve daha özel bir yanıt sağlamasını istemesini sağlayın.

Son Onayı İste

Uygulama kullanıcının isteğini yerine getirme görevini gerçekleştirmeden önce Siri, her şeyin yerinde olduğundan emin olmak için Uygulama Uzantısı'nı kontrol eder. Örneğin, kullanıcının hesabında istenen ödemeyi yapmak için yeterli para var mı?

Buna ek olarak, uygulamanın Siri'ye mümkün olan tüm bilgileri sağladığından emin olması gerekir, böylece kullanıcıya sunabilmesi ve gerçekleştirilecek görevin beklentilerini karşıladığını onaylaması gerekir.

Kullanıcı isteği onayladıktan ve uygulama bu isteği gerçekleştirdikten sonra uygulamanın, kullanıcıyla ilişkilendirebilmesi için tüm sonuçları Siri'ye geri sağladığından emin olması gerekir.

İsteği Yanıtlama

Siri'nin, bildiği her Etki Alanı ve Eylem için birkaç yerleşik Kullanıcı Arabirimi vardır. Ancak, uygun olduğu durumlarda uygulama, uygulamanın markasını ve kullanıcı arabirimini veya istekte mevcut olandan daha fazla bilgi sunarak kullanıcı deneyimini zenginleştirmek için özel bir Intent UI Uzantısı sağlayabilir.

Buna göre, Siri için özel arabirimler tasarlarken kısıtlama kullanılmalıdır. Genellikle, kullanıcı belirli bir görevi mümkün olan en kısa sürede yapmak ister ve gereksiz bilgilerle aşırı yüklenmek istemez.

Özel kullanıcı arabiriminin, kullanıcının sahip olabileceği veya cihazı kullandığı tüm farklı iOS cihazlarında ve yönlendirmelerinde doğru şekilde göründüğünden ve yanıt verdiğinden emin olmak için de dikkatli olunmalıdır.

Uygun olduğunda, varsayılan Siri kullanıcı arabiriminde zaten mevcut olan yedekli bilgileri gizlemek için SiriKit API'sini kullanın. Yine de uygulamanın Siri'ye bilgileri hala sağladığından emin olun, böylece eller serbest durumlarda sözel olarak sunabiliyor.

Siri'nin kullanıcının isteğini yerine getirmek için uygulamayı başlatacağı durumlar olabilir, örneğin kullanıcının istediği fotoğrafları sunma. Bu gibi durumlarda kullanıcıyı şaşırtmayın. Ara adımlara veya daha fazla etkileşime gerek kalmadan beklenen bilgileri görüntüleyin. Hiçbir zaman bilgileri görüntülemeyin veya kullanıcının beklemedikleri bir görevi gerçekleştirmeyin.

Tasarımı Parlatma

Apple'ın Konuşma Arabirimlerinin tasarımını geliştirmeyi önerdiği birkaç adım vardır. İlk olarak, Siri'ye net, kısa sözlük ve kullanım örneği örnekleri sağlamaktır.

Kullanıcının uygulamayı keşfetme yollarından biri, Siri ile bir konuşma başlatıp "Ne yapabilirsiniz?" sorusunu sormaktır . Siri, geliştiricinin uygulaması ve dosyası aracılığıyla sağladığı örnek hero kullanım örnekleri de dahil olmak üzere yapabilecekleri plist birkaç farklı şeyi gösterecektir.

İyi örnek kullanım örnekleri yazma:

  • Örneklerin uygulama adını içerdiğinden emin olun.
  • Örneği kısa ve noktaya doğru tutun.
  • Uygulamanın desteklediği amaçlardan her biri için birden çok örnek sağlayın.
  • Uygulama için en yaygın kullanım örneklerine göre hem Amaçlara hem de bunların içindeki örneklere öncelik verme.
  • Uygulamanın yerelleştirilmiş örnekler sağladığından emin olun.
  • Verilen her örneğin uygulama içinde beklendiği gibi çalıştığından emin olun.
  • Örneklerde Siri'yi ele almaktan kaçının, bu nedenle "Hey Siri..." gibi metinler eklemeyin
  • "Lütfen" veya "teşekkür ederim" gibi gereksiz hoş işlerden kaçının.

Siri'nin kullanıcıyla yaptığı konuşmayı uygulamanın kendi adına nasıl şekillendirebileceğini keşfetmek ve denemek için uygun zamanı kullanın. Uygulamayla etkileşimleri ve beklentileri zaman içinde değişebileceğinden süreç boyunca tipik kullanıcılarla konuştuğunuzdan emin olun.

Siri ile konuşma çağırmak için uygulamayı farklı durumlarda ve tüm farklı yöntemlerde test edin. Kullanıcının uygulamayı kullandığı gerçek dünya konumlarında, ofis ve masadan uzakta test edin.

Siri ile konuşmaların (uygulama adına) akıcı, doğal ve "doğru hissetme" olması için çabalayın.

Özet

Bu makalede SiriKit'i kullanmak için gereken temel kavramlar ele alınmıştır ve bir iOS cihazında Siri ve Haritalar uygulamasını kullanarak kullanıcıya erişilebilen hizmetler sağlamak için Xamarin.iOS uygulamalarıyla etkileşim kurabileceği gösterilmiştir.