en

HomeKit for Developers

'HomeKit for Developers' is a 2-day workshop focused on creating advanced apps for Apple platforms that can tap into HomeKit's potential and extend possibilities of your company's smart home accessories. This training has been designed for developers who would like to include HomeKit support, add additional capabilities to their apps, or simply want to achieve something that is not really possible with other software available. Whether you are a developer, a tech lead orchestrating others' work or a manager, by attending 'HomeKit for Developers' you will gain the necessary insight to design a unique and attractive HomeKit-enabled app.

Objectives

  • Understanding HomeKit architecture
  • Creating one's own HomeKit-enabled apps
  • Comfortably navigate Apple's HomeKit documentation and 3rd party dev materials
  • Controlling accessories, creating scenes and automations directly using native code
  • Understanding differences between apps that are HomeKit-native and the ones using their own protocols to communicate with Smart Home accessories
  • Recognizing data transmission-related nuances to properly implement reliable HomeKit support

Audience

  • Developers interested in providing HomeKit support
  • Lead developers and managers
  • App developers

Prerequisites

  • Basic Swift programming skills
  • Xcode familiarity
  • iOS, iPadOS familiarity

Course outline

HomeKit basics

  • Popularity in a local market and globally
  • Security and privacy
  • Home.app and 3rd party apps
  • Accessories examples
  • Home hubs' roles
  • Matter as a part of HomeKit

HomeKit architecture

  • Intro to structures and HomeKit support (accessories, services, characteristic types, and others)
  • Accessories' logical structure
  • Services and characteristic types defined by Apple
  • Services and characteristics variety
  • Vendor characteristics and their role in HomeKit
  • Accessories using vendor's characteristics
  • Home.app limitations

Using characteristics

  • Manually handling one's own characteristics
  • Using one's own characteristics in scenes
  • Using one's own characteristics in automation

Data transmission standards supported by HomeKit

  • Accessories capable of direct HomeKit communication
    • Accessories using WiFi and cable Ethernet for data transmission
    • Accessories using Bluetooth for data transmission
    • Accessories using Thread standard for data transmission
  • Accessories using bridges for data transmission
    • Data transmission methods for accessories and bridges
    • Pros and cons of bridge-dependent accessories
    • Mutual data transmission between devices

Intro to HomeKit support

  • HomeKit-imposed limitations when designing an app
  • Presenting accessories in your app
  • Basic HomeKit elements in a typical app
  • Reading accessories list and their services and characteristics
  • Reading and writing to characteristics
  • Observing home and its accessories changes
  • Subscribing to notifications
  • Support for adding accessories
  • Controlling different homes
  • Adding home users
  • Supporting HomeKit-compatible cameras
  • Techniques for managing additional accessories information
  • Accessibility support
  • Testing apps with HomeKit Accessory Simulator

Automations

  • Creating scenes
  • Creating automations and their logic
  • Home.app-exclusive functions

Advanced topics

  • Methods for using vendor-provided characteristics
  • Vendor's private characteristics interaction using Home.app (overriding vendor characteristics' limitations with scenes)
  • Shortcuts interface
  • Updating accessories firmware

Making your app more attractive

  • Presenting logs and charts
  • Data presentation libraries
  • Widgets
  • Apple Watch support
  • Apple TV support
  • macOS support
  • AR and SmartHome

Pricing

  • EUR 1000 (incl. VAT)