THE Ye Cube Experience
  • Kotlin 69.4%
  • Swift 30.6%
Find a file
Brandon Venosa 37cb4c2a45 Add unpairing, timeouts and auto-reconnect
Add UI and BLE logic to support explicit unpairing, persistent paired-device storage, operation timeouts, and automatic reconnects. Key changes:
- Add "Unpair Device" button in PairedHomeScreen and hook up ble.unpairDevice().
- Persist paired device UUID to UserDefaults (YeCubePairedDeviceUUID) and restore on startup.
- Implement unpairDevice() to clear state and restart scanning.
- Add timeout management (start/cancel/clear) with a 10s default and use timeouts for service/characteristic discovery, pairing reads/writes.
- Add status polling (3s) as a fallback for notifications and start it after successful pairing; stop polling on unpair/failure.
- Improve recoverFromFailure() to preserve paired state and enable auto-reconnect when appropriate; add autoConnectToPairedDevice() when in proximity.
- Cancel relevant timeouts on success and clean up timers on failures.
- Minor navigation/closure fixes wiring the new unpair callback.

These changes improve robustness for flaky BLE interactions and provide a way for users to remove pairing state.
2026-03-17 10:29:24 -07:00
App/Ye Cube Add unpairing, timeouts and auto-reconnect 2026-03-17 10:29:24 -07:00
Sim Add BLE pairing, simulator and 3D model UI 2026-03-15 11:35:59 -07:00
logo.png Add BLE pairing, simulator and 3D model UI 2026-03-15 11:35:59 -07:00
README.md Update README, add IDE settings, tweak greeting 2026-03-10 18:51:07 -07:00
yeCube.mtl Add BLE pairing, simulator and 3D model UI 2026-03-15 11:35:59 -07:00
yeCube.obj Add BLE pairing, simulator and 3D model UI 2026-03-15 11:35:59 -07:00

Ye Cube

Ye Cube is a cube-shaped companion device ecosystem for everyday tasks.

Planned and current use cases include:

  • Kitchen timer
  • AI assistant interface
  • Portable speaker control
  • Personal companion features

Hardware notes:

  • IP68-rated device concept
  • Target price (marketing): $599.99

Repository Purpose

This repository contains the software projects that support the Ye Cube platform.

Current top-level modules:

  • App/: iOS companion app, similar in role to the Apple Watch app model
  • Sim/: Android app that simulates Ye Cube hardware for faster development and testing
  • Server/: Backend services for cloud features, pairing, and shared platform logic

How the modules work together:

  • App/ is the production-facing Apple companion experience.
  • Sim/ emulates Ye Cube hardware behaviors during development.
  • Server/ provides cloud APIs and pairing flows used by clients, with heavy dependency from Sim/.

Project Structure

iOS App

Path: App/Ye Cube/Ye Cube/

Purpose:

  • Main companion app experience for Apple users
  • Central focus on Apple device integration across the Ye Cube ecosystem

Key files:

  • ContentView.swift
  • Item.swift
  • Ye_CubeApp.swift

Development details:

  • IDE: Xcode 26.3
  • Last updated: 2026-03-10

Simulator (Android)

Path: Sim/

Purpose:

  • Simulates Ye Cube hardware behavior on Android devices
  • Provides a faster and more accessible environment for day-to-day development

Tech stack:

  • Gradle Kotlin DSL (build.gradle.kts)
  • Android app module in Sim/app/

Server

Path: Server/

Role:

  • Handles backend APIs, cloud functions, and pairing workflows
  • The Ye Cube simulator heavily depends on the server for cloud-connected features

Getting Started

iOS app

  1. Open App/Ye Cube/Ye Cube.xcodeproj in Xcode.
  2. Select a target device or simulator.
  3. Build and run.

Android simulator

  1. Open the Sim/ folder in Android Studio.
  2. Sync Gradle.
  3. Run the app module.

For Contributors and AI Coding Agents

Use this section as the source of truth when helping with development.

Current assumptions:

  • The iOS app is the most complete client today.
  • The Android simulator is active and build-configured.
  • The server is a core dependency for simulator cloud features and pairing flows.
  • Apple device integration is a primary product direction.

Task routing guide:

  • iOS UI/UX, Apple integration, and companion features: start in App/.
  • Device behavior simulation and rapid prototyping: start in Sim/.
  • Cloud logic, auth, pairing, and shared service endpoints: start in Server/.

When proposing changes:

  • Keep platform-specific code inside its module (App/, Sim/, Server/).
  • Update this README when architecture, setup steps, or tool versions change.
  • Prefer small, testable pull requests.

Roadmap (Draft)

  • Define and scaffold server API in Server/
  • Document device-to-app communication flow
  • Add shared protocol/contract documentation across iOS, simulator, and server
  • Expand Apple ecosystem integration workflows and documentation
  • Add CI checks for iOS and Android builds