テックブログ開始&初めての勉強会開催
はじめまして、ハードウェアスタートアップ、チケイのCTO楢崎と申します。
BONXというウェアラブルトランシーバーの開発をしています。
これまでCEO宮坂中心に、会社全体に関わる(遊んでるとしか思われなさそうな)情報発信をこちらのブログでやって来ましたが、BONXを支える技術的な内容だったりエンジニアチームについても発信したいと思い、テックブログを始めることにしました。
今後、技術ネタを中心にメンバーが入れ替わり記事を書いていきますので、ぜひチェックしていってください!
さてさて、それでは第一回目ということで、先日実施した「Akerun × BONX Tech Talk supported by さくらインターネット」について書いてみたいと思います。
いまやバズワードと化しているIoT、エンジニア向けの勉強会も多数おこなわれていますが、エンドプロダクトを実際に発売しているスタートアップ企業が内部の技術生ネタを公開する場はそこまでなく、前々から一度自分たち主催で勉強会をやってみたいと思っていました。
また、日々の開発に追われ、なかなかチーム内でもお互いの開発事項や技術内容を整理・消化できていなかったため、一度立ち止まって整理し直す機会が必要でした。
そんなわけで、日頃から仲良くしてもらっているAkerunで有名なフォトシンスさんにお声がけし、さくらインターネットさんにお手伝いいただいてなんとか実現に漕ぎ着けました。(ご両社とも、ご参画ありがとうございました!)
チケイからは、ずっとBONXの開発に関わってもらっているフリーランスエンジニア3名に、BONXのユーザー体験を支える3つの重要技術に関してお話していただきました。
1. 音声ガイダンスを導入した話
iOSエンジニアの森本さんからは、音声ガイダンスについて話してもらいました。
ウェアラブルやIoTは従来のPC/スマートフォンアプリケーションと異なり、音声が非常に重要なインターフェースとなります。特にBONXはスマホアプリなのに実際に使用しているシーンのほとんどでスマホの画面を見ないというかなり特殊な仕様なので、音声による情報提示・ナビゲーションが極めて重要です。
詳細については発表スライドを見てもらえればと思うので、少しブログだけの裏話を。音声ガイダンス機能の中で、「弱電波環境にいるユーザーを検知して各ユーザーに音声で通知する」という機能があります。この機能を実装した際、森本さんと二人で弱電波環境の再現について非常に困っていました。
iOSでは開発ツールとして電波を制限する機能もついていますが、雪山likeな「弱電波環境だったり圏外だったり電波が不安定な環境」には対応できません。
友人づてに色々調べたところ東京メトロ南北線某駅の北口付近は何故だか全くの圏外となっていると知り、喜々として二人でデバックに向かいました。2時間にわたり、延々と駅のエスカレーターを独り言を話しながら行ったり来たりするメガネと金髪。はたから見ると、かなりの不審者っぷりだったことでしょう。
2. Bluetoothを120%使い倒す方法
Androidエンジニアの麻植さんからは、BONXアプリとBONXイヤフォンをつなぐBluetooth関連の技術について話してもらいました。
当たり前ですが、ウェアラブル端末の開発ではハードとソフトの連携がユーザー体験を支えるキモとなります。BONXは音声データをやり取りする必要があるため、Classic BluetoothとBLE(Bluetooth Low Energy)の2つをハイブリッドで扱う仕様を採用しています。
加えて、登壇資料にあるとおり、AndroidはOSバージョン/BTチップセットなどBLEに関する仕様がスマホごとにバラバラになっているという鬼のような状況です。BONXではイヤフォン側のBLE機能をSPPで制御するというかなり特殊な仕様を組み合わせることで、Android端末ごとの違いを吸収しています。
こちらも裏話を軽く一つ。上記仕様をファームウェアの実装を委託している中国企業のエンジニアに何度伝えても、全く理解してもらえず、というよりはちゃんと理解しているかどうかすら理解できず、プロトタイプの検証に大変苦労しました。仕様通りの動きをしていないように見えるのは、ファームウェア側のバグなのか、アプリ側のバグなのか。
最終的に、業を煮やした麻植さんが夜7時に「俺中国に飛びます!」宣言。その日の夜11時には僕と二人、中国に向かう機上の人となっていたのでした。
かくして彼は、弊社内でGTO a.k.a God Taisuke Oeと呼ばれるようになりました。
3. 発話区間検出(VAD)の話
サーバーサイドエンジニア兼音声スーパーバイザーの粟飯原さんからは、発話区間検出の話をしてもらいました。
BONXのUXを支えるコア機能の一つとして、「激しい運動中でもハンズフリーで音声を届ける」というモノがあります。
- 音声データを流しっぱなしにすると、電池・通信量をむちゃくちゃ食う上にノイズばかりで会話が成立しない
- 従来のトランシーバーのようにボタンを押してON/OFFを毎回やるのは、スポーツ中極めて煩わしい
というような課題を解決してくれるのが、このVADです。
粟飯原さんは元々バックエンドのVoIPサーバー構築をするGo-langのエンジニアとしてチケイに参画してもらいましたが、音声処理についてもスバラシイ知見をお持ちということで、VADの実装についても担当してもらっています。
発表資料を見ればわかりますが、わかりやすさも含めてまるで学会発表。勉強会で音声信号の波形が出てくるのを初めてみました笑。ちなみに、横で聞いていたCEO宮坂は発表を聞きながら「へぇ〜、こうなってたんだぁ〜」と(社外のひとのような)非常に素直なリアクション。
このように勉強会をやると、社員同士についても技術について理解が深まるという非常に良い点がありました。
4. フォトシンスさんの発表
フォトシンスさんからは、Webエンジニアの齊藤さん、アプリエンジニアの木下さんがご登壇されました。詳細については、さくらインターネットさんがまとめていただいたイベントレポートを御覧ください!
IoTスタートアップを支えるエンジニアたちの声を聞け!「Akerun & BONX Tech Talk」レポート - さくらのナレッジ
個人的に印象に残ったのは、齊藤さんの「プロダクトが初めて動いた時、最初のプログラムを作って"Hello World"が出た時以来の感動がある。理屈抜きに楽しい!」の一言。本当にそのとおりだと思いますし、どこの会社もそういうモチベーションで働いてるんだなーと深く共感できました。
5. CTOセッション
テクニカルセッションが終わった後、お酒を交えてCTOセッションと言う名の与太話が始まりました。ちなみに、乾杯は両社CEOの宮坂&河瀬さんコンビです。
色々とお話させていただきましたが、お伝えしたかったポイントは二点あって、ひとつは「フィジカルに触れるモノがあること自体の感動」です。ハードウェアスタートアップ以外のWeb系企業では、手触り・つけ心地・色や光り方(はては匂い?)みたいなところに踏み込んでユーザー体験を設計することはできません。ただ、プロダクト自体への愛着とかブランドイメージは、そういうプリミティブなところからこそ生まれるんだと思うんですよね。こういう体験ができて、かつ横串で全工程の開発に関われるというのは、ハードウェアスタートアップでしか味わえない経験かと思います。
二点目は、「様々な専門分野を複合したチーム開発ならではの楽しさ」です。今回の前半セッションでお伝え出来たかと思いますが、BONXの開発は極めて技術範囲が広いです。一人のエンジニアがすべての範囲をカバーすることなど、到底出来ません。
ただし、各メンバーがスペシャリストとして付加価値を出しつつ、足りないナレッジはお互いに補い合うというチーム開発がうまくできていることで、なんとかプロダクト・アウトに繋げられています。エンジニア視点で言えば、日々自分の知らない技術分野についてその道のプロから学び、かつ自分も何かを教えることが出来る環境という点も、ハードウェアスタートアップならではの楽しさかと思います。実際、うちに来ているメンバーは社員・フリーランスを問わず非常に楽しそうに喧々諤々の議論をしていますし。
こちらのセッションについても、本間さん・山口さんのお話ふくめ、さくらさんの記事に詳しく書いていただいているので、ぜひご一読を。
なお、お酒が入ったセッションだったからでしょうか、BONXメンバーがみんな僕らのセッションそっちのけでビールに夢中だったことは一生忘れません。記録写真もほぼ残ってないし、多分僕の話は記憶の彼方でしょう・・・
そんなこんなで、懇親会も含めて非常に学びの大きい・楽しいイベントとなりました!
皆様大変お疲れ様でしたー
さてさて、そんなチケイは開発チームにジョインしてくれる方を継続的に募集しております!興味がある方はぜひ一度話を聞くだけでもー!ソフトウェアエンジニアだけでなく、ハード側も含めて多数の職種を募集中です!
チケイ 株式会社の採用/求人 | 転職サイトGreen(グリーン)