mirror of
https://github.com/AGames-Studio/Ye-Cube.git
synced 2026-06-22 20:46:57 +00:00
THE Ye Cube Experience
- Kotlin 69.4%
- Swift 30.6%
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. |
||
|---|---|---|
| App/Ye Cube | ||
| Sim | ||
| logo.png | ||
| README.md | ||
| yeCube.mtl | ||
| yeCube.obj | ||
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 modelSim/: Android app that simulates Ye Cube hardware for faster development and testingServer/: 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 fromSim/.
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.swiftItem.swiftYe_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
- Open
App/Ye Cube/Ye Cube.xcodeprojin Xcode. - Select a target device or simulator.
- Build and run.
Android simulator
- Open the
Sim/folder in Android Studio. - Sync Gradle.
- Run the
appmodule.
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