Skip to main content

Using Speech with iOS and Android: SiriKit, Voice Capabilities, Google Assistant

SiriKit
SiriKit enables your iOS apps and watchOS apps to work with Siri, so users can get things done using just their voice. Your content and services can be used in new scenarios including access from the lock screen and hands-free use.

Apps adopt SiriKit by building an extension that communicates with Siri, even when your app isn’t running. The extension registers with specific domains and intents that it can handle. For example, a messaging app would likely register to support the Messages domain, and the intent to send a message. Siri handles all of the user interaction, including the voice and natural language recognition, and works with your extension to get information and handle user requests.

Apple Developer


Adding Voice Capabilites

Voice actions are an important part of the wearable experience. They let users carry out actions hands-free and quickly. Wear provides two types of voice actions:

System-provided
These voice actions are task-based and are built into the Wear platform. You filter for them in the activity that you want to start when the voice action is spoken. Examples include "Take a note" or "Set an alarm".

App-provided
These voice actions are app-based, and you declare them just like a launcher icon. Users say "Start " to use these voice actions and an activity that you specify starts.

Android Developer


Get Started with System Voice Action

  1. Define an intent filter
  2. Handle the intent in your app
  3. Update your app completion status


Overview of the Voice Interaction API

Whether your app uses system or custom voice actions, there might be times when the app would like to ask the user a follow-up question before performing the action. For example when a user launches a music app by saying “play some music”, the app may want to ask the user “what genre?” Or when a home automation app hears the user say “OK Google, turn on the lights”, it might want to ask “which room?” The Voice Interaction API lets apps ask follow-up questions like these.




The Google Assistant and Media Apps

The Google Assistant lets you use voice commands to control many devices, like Google Home, your phone, and more. It has a built-in capability to understand media commands ("play something by Beyonce") and supports media controls (like pause, skip, fast forward, thumbs up).

Android Developer



Comments

Most Favorite Posts

Backend-driven native UIs

Backend-drive native UIs John Sundell  Slide Share Using Back-End Design to Create Customizable Front-End Mobile Experiences By controlling the front end of mobile apps from the back end we can build customized experiences at runtime, creating cleaner interfaces and reducing load times. Nithin Rao UX Magazine The Hub Framework Welcome to the Hub Framework - a toolkit for building native, component-driven UIs on iOS ( no Android support released yet ). It is designed to enable teams of any size to quickly build, tweak and ship new UI features, in either new or existing apps. It also makes it easy to build backend-driven UIs. The Hub Framework has two core concepts - Components & Content Operations. Spotify LeeGo: Build UI without UIView LeeGo is a lightweight Swift framework that helps you decouple & modularise your UI component into small pieces of LEGO style's bricks, to make UI development declarative, configurable and highly reusable. Wang Shen...

Team building: "Meme-Your-Colleague"

Lately we were hiring a lot of developers and had to integrate them in our team. So we decided to do an infotainment team event, targeting both: getting to know each other on a personal level and learning about the business and technical state, challenges and visions. Usually a meeting like this starts with everybody telling a few words about themselves... one... after... each... other... and after third speaker latest everybody gets bored. So we came up with the "Meme-Your-Colleague" game: Build teams of two persons Give them half an hour to get to know each other Both have to assemble a five minute presentation of five slides of each other Each slide consists of exactly one meme telling a (fun) fact of that person You may want to use a meme generator  and a presentation tool like Keynote or PowerPoint. It ended up with the whole team having a lot of fun: a perfect ice breaker! Give it a shot!

iPad HTTP Debugging with Charles

After noticing that the caching in iPad Safari seemed a little funky, I made an effort to decipher some of the logic used by the browser cache. I didn’t get very far, but in the process I figured out how to route my iPad HTTP traffic through a web debugger on my laptop. It turns out it was very easy to do (although I’m sure there is a more complicated way to go about it). What follows is a simple step-by-step for connecting your iPad to an HTTP debugging proxy. The main requirement is that your desktop/laptop and iPad be on the same wireless network. Then it’s just a matter of telling your iPad to use your desktop as an HTTP proxy. iPad HTTP Debugging with Charles

Microservice Micro-Feature architecture for mobile Apps

RIBs is the cross-platform architecture framework behind many mobile apps at Uber. The name RIBs is short for Router, Interactor and Builder, which are core components of this architecture. This framework is designed for mobile apps with a large number of engineers and nested states. The RIBs architecture provides: Shared architecture across iOS and Android. Build cross-platform apps that have similar architecture, enabling iOS and Android teams to cross-review business logic code. Testability and Isolation. Classes must be easy to unit test and reason about in isolation. Individual RIB classes have distinct responsibilities like: routing, business, view logic, creation. Plus, most RIB logic is decoupled from child RIB logic. This makes RIB classes easy to test and reason about independently. Tooling for developer productivity. RIBs come with IDE tooling around code generation, memory leak detection, static analysis and runtime integrations - all which improve developer product...

threadingText - jQuery Plugin to enable HTML to allow thread text as known in Adobe Illustrator.

threadingText is a JavaScript jQuery plugin to enable thread text in HTML. With a responsive web design and dynamic content using thread text is hard to achieve; here is where threadingText comes into play. The jQuery plugin threadingText provides a nice way of dynamically associate and fill HTML in pre-defined text containers and cut overlapping text with a specified ending symbol (default is " ...") or create new text containers according to a specified prototype text container if text would exceed provided space. The implementation uses a binary text length search to divide the HTML among the text containers provided. While doing so it tries its best to repair any HTML tags beeing broken while threading the HTML in the text containers. Additionally many code hooks are provided, where you can interfere in the layouting process and adjust the results in any way. GitHub

UI Automation

There is a known issue when using the performTaskOnHost API in a UI Automation script. If the task being performed with the API outputs excessively (say, thousands of lines of text) to standard out or standard error, the task may deadlock until the timeout is reached, at which point it will throw a javascript exception. The lock() and unlock() functions of UIATarget have been replaced with the lockForDuration( ) function. Starting in iOS 5 beta 2, you can now trigger the execution of an UI Automation script on an iOS device from the host terminal by using the instruments tool. The command is: instruments -w device id -t template application When using the cli instruments for UI Automation you can now target the default Automation Template and pass the script and results path into the tool as environment variable options. For example: instruments -w device_id -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/...

Netflix Android and iOS Studio Apps — now powered by Kotlin Multiplatform

  The high likelihood of unreliable network connectivity led us to lean into mobile solutions for robust client side persistence and offline support. The need for fast product delivery led us to experiment with a multiplatform architecture. Now we’re taking this one step further by using Kotlin Multiplatform to write platform agnostic business logic once in Kotlin and compiling to a Kotlin library for Android and a native Universal Framework for iOS via Kotlin/Native. Netflix Tech Blog