Pytronic

2023Case study

I designed the entire iOS app for a new smart-home ecosystem — automation logic, composable device controls, energy tracking, multi-protocol connectivity, and home management — as the sole designer with evolving requirements and no existing user base to test with.

The challenge

Pytronic built a proprietary smart-home hub and needed a full product, not just an app. The scope covered everything a homeowner would need: connecting devices across Zigbee, Z-Wave, and Matter, building automation scenarios, controlling devices, tracking energy usage, and managing multiple homes with shared access.

The point of the app in most cases is not to control devices directly but to manage and monitor the home and the automation scenarios

I was the only designer on the project. Requirements shifted frequently — the engineering team often didn't know what the system would support until they built it. I had to design screens and flows flexible enough to survive those changes while still feeling coherent as a product.

The app is the connection layer between user, devices, and the cloud

The approach

Starting from loose requirements, I mapped the full screen structure and added layers of functionality, styling, and UX progressively. Unfamiliar with smart-home systems at the time, I installed one at home and studied how Apple Home, Google Home, and other market leaders solved similar problems — letting me move quickly and make informed decisions from the start.

For each critical flow — hub setup, device pairing, automation builder — I built a working prototype and validated it with the team before any screens were handed off. Prototypes surfaced issues that static mockups couldn't: insufficient descriptions, step order confusion, missing error states, unclear recovery paths.

Design process: research and architecture followed by prototyping before converging on handoff
Screen recording: one of the first prototypes of the connection flow (not the final design)

A custom atomic design library (device cards, sliders, switches, section headers) made rapid iteration possible across the entire product surface and later became the foundation for frontend development.

Developer reference: how elements from design library can be used for different types of devices

Automation builder (Scenes)

The automation system was the most logically complex part of the project. Two types of scenes: manual (launched by tapping a button in the app) and automatic (triggered when conditions are met, toggled on/off from the home screen).

Automatic scenes use a three-part structure: IF (trigger), CONDITION (must be satisfied), and THEN (actions to execute).

IF defines what fires the scene — a specific time, a device status change, a house mode change, a weather event, an energy threshold being reached, or an alarm trigger. Multiple IF statements work as OR: any one of them fires the scene.

CONDITION doesn't trigger the scene itself but must be met for the trigger to take effect. Unlike IF, conditions track a current state rather than a change — e.g., "Time is between 11 PM and 6 AM" or "House mode is Away." Multiple conditions can require all to be met or just one.

THEN actions execute sequentially, with optional delays between steps. An action can manipulate a device, trigger another pre-built scene, send a push notification or email, switch the house mode, or activate the alarm. Delays let users compose sequences — turn on lights, wait five minutes, then turn them off.

Example: IF motion sensor is triggered, CONDITION time is between 11 PM and 6 AM, THEN dim kitchen lamp to 30%.

Automation setup: IF/CONDITION/THEN structure with sequential actions and delays

The core design challenge was that many actions and conditions weren't well-defined yet. I built the interaction framework around the structure itself — add/remove triggers, set logic operators, compose sequential actions — so the UI was testable and buildable before the full feature set was locked. As new capabilities were added on the backend, they slotted into the existing framework without requiring redesign.

Automation detail screens: configuring triggers, conditions, and actions

Composable device controls

Rather than designing individual screens for each device type, I created a system of roughly a dozen composable control elements that can be assembled in any order and quantity on a device page. The combination of controls matches the capabilities of the device.

I used a reference set of device families to determine which controls the system needed: lamps, RGB lights, power metering devices, fans, motion sensors, door locks, switches, leak sensors, media players, security systems, and AC units. Each device gets the controls that match its capabilities — a lamp gets brightness and on/off; an RGB light adds color temperature and picker; an AC unit gets temperature, mode, and fan speed.

Developer reference: composable control elements for devices

The system is extensible — the design library can support new device types and features as they are added. However, that poses a risk of clutter and confusion. To address this, I designed a future state for the device control screens that is more streamlined and focused on the most common use cases.

Composable control elements for devices
Developer reference: future plans for the lighting device control screens
Composable control elements for devices
Developer reference: future plans for the thermostat device control screens

Energy tracking

The energy section gives homeowners visibility into consumption, cost, and spending limits. I referenced Apple Health's data presentation for the visualization layer: three views covering energy usage, price per kilowatt-hour, and total spending — across daily, monthly, and yearly timeframes.

Consumption data can be pulled from a smart meter added as a device, or aggregated from individual appliances that report consumption. Users can configure their price source (manual entry, automatic by location, or provider integration), set a monthly consumption goal, and define a spending budget. These thresholds feed back into the automation system — e.g., a notification can be sent when the monthly limit is reached or the limit can be tracked as a condition to decide whether to turn on the heating systems.

Energy monitoring screens: consumption and price tracking

Connection flows

A single branching flow handled Zigbee, Z-Wave, and Matter pairing — plus bulk device addition and third-party integrations. Each protocol has different mechanics, timeouts, and failure modes, but the user sees one consistent surface: select a device, follow the steps, get confirmation.

Initial Homecore smart-home hub setup
Initial Homecore smart-home hub setup: pairing and connection screens

There were a lot of possible failure scenarios — most critical ones were addressed in the design (timeout, device not found, network issues, etc.). Everything else was handled with a generic error message.

Connection flows across protocols

The app supports multiple locations — one user can have multiple smart-home setups, and one location can have multiple members with different access levels.

Support for multiple homes
Support for multiple locations

Visual details: loading states, iconography, and accessibility

Hardware pairing involves a lot of waiting (protocol timeouts, firmware responses, cloud sync). Loading screens used purposeful animation to communicate progress and reduce anxiety while the app waits for operations to complete.

For alerts and important notifications I created custom colorful icons used throughout the app for better visual hierarchy and readability.

Loading screens: communicating progress clearly and reducing anxiety while the app waits for hardware responses
Custom colorful icons for alerts and important notifications

One of the client's requirements was to have an accessibility-first design. I designed the app with a high contrast color palette and a screen-reader compatible architecture. Using native iOS components helped with accessibility and also made the app feel more familiar and native.

Account settings
Settings screen flow: using native iOS components to make the app feel familiar and allow for future extensibility

Results and learnings

The prototypes and design system helped secure initial investment and get development started. The prototypes were the primary artifact used to align engineering on implementation priority — they made the scope tangible and gave the team a shared reference of the product vision. First installations went live; the company is still in early phases, now exploring a narrower focus on energy management.

What I would do differently next time:

  • Narrow focus earlier. Scattered startup priorities are hard to design around — I'd push for a tighter scope sooner.
  • Rethink the home screen default view. Devices are set up once and rarely touched — energy analytics and automation status would serve homeowners far better than device controls.