An application built for the Ulanzi TC001.
(Read in English | Leggi in Italiano)
SignalDay is an application inspired by the wonderful Busy.bar project. It is a simplified replication designed to work with the Ulanzi TC001 smart pixel clock, built upon the foundation of the amazing AWTRIX 3 firmware.
Watch the demo video to see SignalDay in action!
Inside the stitch/ folder, you can find the very first design concepts that I started with. It contains the mockups and layouts (for both macOS and iOS) that helped shape the visual direction of this app.
The application is built using Swift and SwiftUI, featuring both a macOS app and an Apple Watch companion app.
To help you navigate and understand the project, here is a brief overview of how the codebase is structured:
Core/: Contains the main business logic and state management.AppState.swift: Manages the global state of the app, ensuring data flows correctly across the interface.SystemMonitor.swift: Handles background monitoring tasks such as detecting calls, music playback, or other macOS system statuses.WatchConnectivityManager.swift: Responsible for the communication bridge between the macOS app and the Apple Watch.
Core/Models/: Houses all the data entities used throughout the app, likePresetItem,ScheduleItem,AppStatus, andPixelCanvasconfigurations.Views/: Contains all the SwiftUI views that build up the user interface. It is organized into clear sections likeGeneraleView(general settings),AspettoView(display appearance customization),PixelArtView(for drawings),MonitoraggioView(for tracking apps/system status),LiveView(for real-time preview), alongside tools for scheduling.SignalDayWatch/: The companion app specifically built for Apple Watch, allowing control directly from your wrist.
- Language Note: Please note that the entire codebase (variables, structures, components) is written in English. However, it's highly modular and structured to be straightforward, so if you are an Italian speaker reading this, you can easily trace the logic and understand its behavior.
- Freedom to Modify: The project is absolutely open, free, and yours to play with! You are fully welcome to explore the codebase, understand how it runs, modify it, and literally do whatever you want with it to suit your own needs without any restrictions.
SignalDay è un'applicazione nata prendendo ispirazione dal meraviglioso progetto Busy.bar. Ne è stata replicata una versione semplice pensata per lo smart pixel display Ulanzi TC001, ed è stata costruita basandosi sul fantastico progetto AWTRIX 3.
Guarda il video dimostrativo qui sotto per vedere SignalDay in azione!
All'interno della cartella stitch/ si trova il design di partenza da cui sono partito per sviluppare l'app. Contiene i vari mockup per macOS e iPhone che hanno fatto da prima linea guida visiva.
L'applicazione è sviluppata interamente in Swift e SwiftUI e include un'interfaccia principale per macOS e una companion app per Apple Watch.
Per aiutarti a navigare e capire come è distribuito il progetto, ecco un riassunto della sua struttura:
Core/: Contiene la logica operativa principale.AppState.swift: Gestisce lo stato globale di tutta l'app e coordina le modifiche visive dell'interfaccia.SystemMonitor.swift: Si occupa delle operazioni in background, come il monitoraggio di chiamate, musica in riproduzione o altri eventi del sistema macOS.WatchConnectivityManager.swift: Gestisce la comunicazione in tempo reale tra il tuo Mac e l'Apple Watch.
Core/Models/: Racchiude le strutture dati del progetto, definendo ad esempio le logiche deiPresetItem, la programmazione oraria (ScheduleItem), lo stato interno e le configurazioni per la creazione inPixelCanvas.Views/: Comprende i vari moduli dell'interfaccia, suddivisi per funzionalità come:GeneraleView(le impostazioni di base),AspettoView(per l'aspetto estetico),PixelArtView(per creare o modificare iconcine),MonitoraggioView(per osservare i processi del Mac) eLiveView(anteprima in tempo reale), oltre agli elementi per le automazioni.SignalDayWatch/: L'intera parte dedicata all'applicazione per Apple Watch per comandare tutto comodamente dal polso.
- Nota sulla lingua: Tutto il codice sorgente (le variabili, la struttura, ecc...) è mantenuto in lingua Inglese, come da standard di programmazione. Essendo documentato in modo così strutturato tramite componenti chiari, basterà leggere i nomi dei file per tradurre istintivamente in Italiano ciò che stanno eseguendo.
- Libertà Totale di Modifica: Il progetto è completamente libero e aperto senza restrizioni! Sei liberissimo di esplorare l'intera architettura, analizzare com'è costruito, stravolgerlo e farne assolutamente quello che vuoi. Puoi apportare tutte le aggiunte o modifiche che desideri per renderlo completamente tuo.
