Back to work Independent project

Thermostat Companion

A native iOS companion that turns complex thermostat onboarding and everyday climate control into one clear, guided experience.

Thermostat Companion onboarding and climate dashboard shown on three iPhones

Overview

Thermostat setup crosses several technologies at once: permissions, QR codes, nearby-device discovery, secure communication, HVAC configuration, accessory pairing, Wi-Fi provisioning, and cloud synchronization. Thermostat Companion brings those steps into one native iOS flow with visible progress, useful recovery states, and a safe simulated mode for development and demonstrations.

I designed and built the project to explore how a technically complex connected-home setup can feel calm, understandable, and direct. After onboarding, temperature, humidity, heating state, scenes, schedules, and setpoint controls come together in one focused SwiftUI dashboard.

The Challenge

The core challenge was not adding more controls. It was making a multi-stage hardware workflow feel predictable. Each transition needed to communicate what the app was doing, what the user needed to do next, and how to recover when a device, network, or service was unavailable.

Guided Onboarding

The setup journey covers authorization, permissions, QR scanning, Bluetooth discovery, secure device provisioning, HVAC profile selection, accessory pairing, Wi-Fi setup, and final synchronization. An explicit state machine keeps the next action and recovery path clear throughout the flow.

Three Thermostat Companion onboarding screens for welcome, device connection, and climate controls
Welcome, device connection, and climate configuration form one guided setup journey.

Daily Control

Once connected, the app focuses on the information and actions needed most often: live temperature and humidity, online and heating state, quick setpoint changes, comfort scenes, schedule behavior, and device settings.

Thermostat dashboard in dark and light appearance with temperature, humidity, heating status, and setpoint controls
The same climate controls remain legible in light and dark appearance.

Engineering Highlights

  • Native SwiftUI application with an explicit onboarding state machine.
  • QR scanning through AVFoundation and nearby-device communication through CoreBluetooth.
  • Secure local storage for sensitive configuration and an encrypted device-session layer.
  • Async service abstractions for cloud communication, Bluetooth, and permissions.
  • Fictional demo data and mock services for repeatable UI development and portfolio-safe presentation.
  • Responsive light and dark dashboard treatments for temperature, humidity, status, scenes, and setpoint controls.

Outcome

The result is a working native iOS project that demonstrates the complete shape of a connected-device experience: discovery, configuration, recovery, synchronization, and daily control. It also provides a reusable foundation for testing product flows independently from physical hardware and live services.

Complex technology should remain behind the interface. The experience should simply make the next step clear.

Back to all work