В системах класса «мобильное приложение ↔ умное устройство» одной
из наиболее частых проблем является отсутствие единого, согласованного формата обмена данными. В традиционном подходе команды договариваются устно или через неформальную документацию:
- какие существуют команды,
- как они кодируются,
- какие параметры передаются,
- какие ответы ожидаются.
На практике подобные договорённости быстро теряют актуальность. Возникают несогласованные изменения, появляются «магические числа», дублируются или исчезают поля, нарушается обратная совместимость между версиями прошивки и приложением.