Qrioに4年間エンジニアとして携わって経験したこと #5
続きです。
Qrio Lock (Q-SL2) 前日譚
2017年の春に、ソニーのメンバーを交えてワークショップなどを行い、Qrioが次に作るスマートロックはこうあるべきだよねという話をし、そこからQ-SL2の開発が徐々に本格化していきました。
その中で、Q-SL1で判明した課題について、絶対に解決したいという思いが全方面から上がり、アプリの領域としては、
- 暗号処理や大量のパケット通信など、ロックとの複雑なBluetooth通信処理が、アプリ本体から簡単に切り離せる状態になっていない
- 非同期処理が複雑な形で実装されており、その結果ロックが1台ずつしか操作できない
- レトロなOSSを簡単に差し替えることができない
- 各機能と画面の処理が密結合していることで保守が難しく、またアプリの動作確認(テスト)が難しい
- 手ぶらで解錠の精度向上に限界がある
といった課題があり、市場で発生した問題に対して、すぐに対処できる状態になっていなかったため、これらを何とかしたいという気持ちがありました。
Qrio Lock (Q-SL2) キックオフ前
Q-SL2の開発としては2017年の秋にキックオフをしましたが、その前に開発メンバーを集めるという重大なミッションがありました。
当時のスマートロックのアプリ開発は実質僕1人という状況の中で、藁にも縋る思いで採用活動や業務委託の募集を行った結果、優秀なメンバーが集まってくれたことには、本当に感謝しかありません。
ここで集まった開発メンバーは皆様々な経験を持っており、
- Bluetooth通信/位置情報アプリのハマりどころを熟知している
- リアクティブプログラミングを熟知している
- アプリの設計手法(MVP/MVVM/Clean Architectureなど)を熟知している
- Android/iOSアプリの両方を実装できる
- 組み込み系の開発経験がある
といった、Q-SL1の課題をすべてクリアできる経験を持ったメンバーが揃ったことは、今でも奇跡と思っています。
また、それと並行して、新しい開発メンバーがジョインするまでに、Android/iOSのBluetooth通信処理をアプリのライブラリとして実装することを試みており、キックオフまでに何とかアプリへ組み込み開始できる状況にすることができました。
Qrio Lock (Q-SL2) キックオフ後
2017年の秋に開発がキックオフしたあとは、アプリ設計に精通したメンバーを中心に、Android/iOSの設計を可能な限り共通化しつつ、MVVMやClean Architectureの思想を取り入れた可読性や保守性の高い設計でアプリの実装が進んでいきました。
その中で、僕は主にアプリとハードウェア界面で発生した様々な低レイヤーのトラブル対処にあたっており、またアプリのUI/UXについて、開発メンバー全員と様々な議論をしていました。
その中でも特に印象的だったのは、
- 解施錠のボタンを1個にする
- Bluetooth/リモート解施錠を自動判定する
- 1ドア2ロック時の解施錠状態を判定する
に関しての議論で、これらが徹底的にできたからこそ、現在のシンプルなアプリUIが実現できたと思っています。
また、暗号処理に関しても徹底的に改善を行い、これまでの暗号強度を維持しながらデータ通信量を削減できたことで、解施錠スピードの大幅な向上が実現できました。
百聞は一見に如かずですので、ぜひ以下のツイートにある実際の動作も見て頂ければと思います。
つづく
この記事が気に入ったらサポートをしてみませんか?