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

Working natively with JavaScript in iOS and Android without WebView

Using JavaScript code from native code without using a WebView (sic!) can be really useful to introduce dynamic functionality that was updatable without need of updating the app shorter iteration cycles share code between backend and native iOS and Android apps You can have business logic provided by a JavaScript that then controls the app that inject native functionality in the JavaScript context. You could even write an A/B testing framework based on this approach. iOS iOS offers the native JavaScriptCore: Evaluate JavaScript programs from within an app, and support JavaScript scripting of your app. So you can evaluate a script and read its return value natively: context.evaluateScript(myLib); let result = context.evaluateScript("myFunction();") let myFunction = context.objectForKeyedSubscription("myFunction"); let parametrizedResult = myFunction.invokeMethod(...) Or you can inject a native object into the JavaScript engine: @objc protoco...

How to access specific settings in the iOS settings app

Apple Settings App Open the preference / settings app. You can open the app at different pages Native application URL string example: prefs:root=General&path=Bluetooth Extended example: Tags: settings preferences Airplane mode: prefs:root=AIRPLANE_MODE Bluetooth: prefs:root=General&path=Bluetooth Brightness: prefs:root=Brightness Location services: prefs:root=LOCATION_SERVICES Location services (System services): prefs:root=LOCATION_SERVICES_Systemservices Hotspots: prefs:root=Hotspot WLAN: prefs:root=WIFI UMTS-Settings: prefs:root=General&path=Network Mobile data: prefs:root=General&path=USAGE/CELLULAR_USAGE VPN: prefs:root=General&path=Network/VPN Sound: prefs:root=Sounds Rigntone: prefs:root=Sounds&path=Ringtone Siri speech settings: prefs:root=General&path=Assistant handleopenurl.com

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

Great Teams Are About Personalities, Not Just Skills

The scientific evidence indicates quite clearly that individuals’ personalities play a significant role in determining team performance. In particular, personality affects: What role you have within the team How you interact with the rest of the team Whether your values (core beliefs) align with the team’s In our own work we found that psychological team roles are largely a product of people’s personalities. For example, consider team members who are: Results-oriented. Team members who naturally organize work and take charge tend to be socially self-confident, competitive, and energetic. Relationship-focused. Team members who naturally focus on relationships, are attuned to others' feelings, and are good at building cohesion tend to be warm, diplomatic, and approachable. Process and rule followers. Team members who pay attention to details, processes, and rules tend to be reliable, organized, and conscientious. Innovative and disruptive thinkers. Team members who n...

Crash Reporter

Plausible CrashReporter provides an in-process crash reporting framework for use on both the iPhone and Mac OS X. Crash reports are output as protobuf-encoded messages, and may be decoded using the CrashReporter library or any Google Protobuf decoder. The CrashReporter library handles both uncaught exceptions and fatal signals. Features: Implemented as a in-process fully async-safe signal handler. Does not interfere with debugging in gdb Handles both uncaught Objective-C exceptions and fatal signals (SIGSEGV, SIGBUS, etc) Backtraces for all active threads are provided. Provides full register state for the crashed thread. The following platforms are currently supported: Mac OS X 10.5+ (x86-32, ppc, experimental x86-64) iPhone OS 2.0+: (armv6, armv7) iPhone Simulator 2.0+ (x86-32) PLCrashReporter Server part and extension: CrashReporterDemo MacDevCrashReporter See also: CrashKit Hoptoad Hexspeak

Google Play Publishing API

The Google Play Developer Publishing API allows you to automate frequent tasks having to do with app production and distribution. This provides functions similar to those available to a developer through the Developer Console, such as: Uploading new versions of an app Releasing apps, by assigning APKs to various Tracks (alpha, beta, staged rollout, or production) Creating and modifying Google Play Store listings, including localized text and graphics and multi-device screenshots Those tasks are performed using the new edits functionality, which take a transactional approach to making changes; you bundle several changes into a single draft edit, then commit the changes all at once. (None of the changes take effect until the edit is committed.) Developers Google