One of my very first own projects, was an app to control my DIY ambilight system. I built it in 2018 and I am very proud of it, although the code needs some improvement.
It was available for a year on the App Store and got a few thousand downloads. Presently, you can download it from my repo.
Things learned
💾 Core Data to store in disk the static and dynamic backgrounds that the user creates.
🌐 TCP connections to communicate with the AmbiBox’s server API.
let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: 4096)
var inputStream: InputStream?
var outputStream: OutputStream?
var lastInputEvent: Stream.Event?
var lastOutputEvent: Stream.Event?
➕ Views without storyboard, regular expression management, timers, time triggered notifications, and so on.
How does it works?
A picture is worth a thousand words.
0:00 | Connect to the AmbiBox server | 🔌 |
0:05 | Turn on / off | 🌗 |
0:15 | Static backgrounds | 🌈 |
3:22 | Dynamic backgrounds | 🎆 |
4:58 | Profile selection for movies | 🎬 |
What’s necessary?
🤖 Arduino with Adalight running
🖥️ Computer with AmbiBox installed
👨🏻💻 AmbiBox TCP API enabled
📱 iPhone with AmbiBox control installed
I also made an Instructables guide to make installation easier.