Boon Smart Home looks straightforward from the user side: answer the building intercom from your phone, open doors and gates remotely, review visitor history, and move through everyday apartment-building routines without hunting for keys. The engineering story underneath is much less simple.
Our work on Boon covered the iOS and Android apps, plus ongoing maintenance of the Java backend that keeps the product, the building hardware, and the user-facing mobile flows aligned.
What we were maintaining
Boon is not just a mobile frontend on top of a generic API. It is a smart-building system with tight coupling between app behavior and real-world access events.
The product includes:
- Intercom audio and video calling
- Door and gate opening from the app
- Visitor history with screenshots
- Camera access and cloud recording review
- Building-adjacent features such as packages, parking, elevators, payments, and quick actions
That means mobile stability matters in a very practical way. If something is off, the result is not only a UI bug. A resident may miss a visitor, fail to answer an intercom call, or get stuck outside a building.
How the iOS side is done
The local iOS repository shows a native Swift implementation centered on SwiftUI, MVVM, a Redux-like store, and async networking. The more interesting part is the call stack: Boon uses VoIP pushes, CallKit, and native PJSIP with TLS support for intercom calling.
That is where the maintenance work gets real. Intercom calling is not just “tap to answer.” It depends on correct sequencing between:
- Push delivery
- CallKit presentation
- SIP registration
- Waiting for the actual INVITE
- Notifying the backend at the right moment
- Answering the call without breaking audio routing
The repo documentation shows exactly the kind of issues products like this run into over time: release-build-only SIP errors, sequential-call instability, transport reuse bugs, and CallKit audio-session conflicts. None of that is especially visible to end users, but all of it directly affects whether the product feels trustworthy.
Why Android and backend maintenance matter just as much
Boon is one of those products where platform parity is important. If iOS and Android handle intercom flows differently, or if backend behavior drifts away from what the apps expect, the failures show up immediately in real user moments.
That is why ongoing backend maintenance matters as much as mobile work. The Java backend has to keep access operations, device state, temporary credentials, notifications, histories, and user data moving reliably while still supporting product changes on the app side.
In this kind of system, maintenance is not “keeping old code alive.” It is active systems work:
- preserving predictable mobile behavior while the product evolves
- fixing timing-sensitive failures around calls and access control
- keeping app releases aligned with backend behavior
- protecting reliability as new features are layered in
The hard part
The hardest part of products like Boon is that they sit in two worlds at once.
On one side, the app needs to feel consumer-simple. It should be obvious how to answer a call, open a door, or check a recent visitor. On the other side, the system is dealing with telephony, hardware, networking, notifications, permissions, backend state, and real-time events.
That split changes the engineering mindset. You cannot treat the mobile apps as isolated clients, and you cannot treat the backend as a generic CRUD service. The whole product has to be maintained like an operational system where timing, coordination, and failure handling matter.
What Boon reinforced for us
Boon is a strong reminder that maintenance work can be some of the most valuable engineering work on a product.
When the product controls entry, intercom calls, and everyday building access, the goal is not only to add features. The goal is to keep the whole experience dependable across iOS, Android, and backend services so that the software continues to feel invisible in the best possible way: it just works when someone needs the door to open.