見出し画像

Qrioに4年間エンジニアとして携わって経験したこと #4

続きです。

Qrio Smart Lock (Q-SL1) HomeKit

2016年12月にQ-H1が発売されたあとに少し余裕ができたため、AppleのHomeKitについて調べていたところ、HomebridgeというOSSを使えば比較的簡単にロックの操作を実現できることがわかり、2016年末の空き時間でラズパイを使ったデモを実装しました。

しかしながら、HomeKitを製品に落とし込もうとMFi(Made for iPhone)のドキュメントを読み漁ったところ、HomeKitはAmazon AlexaやGoogle HomeのようなAPI連携だけで実現できるものではなく、Q-H1の本体ソフトウェアに対しても大規模な改修が必要であったため、開発リソースや費用対効果を検討した結果、断念することになりました。

カギカン

2017年の春、スモールオフィスや会議室向けに、スマートロックを使った合カギ管理サービスを作りたいという話が上がり、開発がスタートしました。

こちらはWeb側の開発がメインとなるのですが、ロックとハブを設置するためのアプリも必要となり、以前、法人向けに似たような設置アプリを作っていたことから、それをベースにカギカンとして必要な機能を追加実装し、2017年8月にローンチされました。

Qrio Smart Lock (Q-SL1) iOSアプリ Swift 3対応

カギカンの開発が走っていた2017年の春、古いプログラム言語(Swift 2)で書かれていたQ-SL1のiOSアプリを、当時最新のプログラム言語(Swift 3)へ対応させようと試みていました。

しかしながら、これは一筋縄ではいかず、以下の理由で何千箇所も出ていたビルドエラーを解消するだけでも2〜3ヶ月を要しました。

- Swift 2 → 3で破壊的変更が多すぎた

- XcodeのSyntaxコンバーター(Swiftの自動アップデート機能)がほぼ機能しなかった

- ネットワーク通信にメンテナンスがSwift 1系で止まっているOSSを無理矢理改造して使っており、またサーバー通信に独自認証方式を採用していた

- 暗号処理やバイナリデータを扱う処理がそれなりにあった

一応ビルドは通るようになったものの、アプリの動作はかなり怪しく、その修正を行う前にQrio Lock (Q-SL2)の開発がスタートしてしまったため、このタイミングではそのままお蔵入りとなりましたが、後のSwift 4対応でとても大きな助けになったため、結果としてこの対応は無駄にはなりませんでした。

つづく

この記事が気に入ったらサポートをしてみませんか?