ボクココ

サービス開発を成功させるまでの歩み

Twilio Meetup Vol.4 の LT 補足

ども、@kimihom です。

先日の TwilioJP-UG Online Vol.4 のイベントで、久々に話をさせてもらったので、その内容と所感について記す。

SIGNAL での Twilio Live

私は早めに切り上げさせてもらったのだが、序盤の話の中では 今回の SIGNAL で新しく出てきた内容のシェアがされた。Twilio Live は かつて wellcast がある時に欲しかったサービスだった。

www.twilio.com

www.bokukoko.info

"多人数への配信" というのは今までも多くの Web サービスがあるのだけど、この領域はまだまだ未来がある。単に自分のビデオを配信するだけではなく、画像を加工したり音声だけの配信をしたり、特定ニーズでのビデオ配信などに応用ができる。今 Twilio で最も熱いサービスである(と思う)ので、今のうちから 何ができるのか考えておくと良さそうだ。

はてさて、Zoom SDK とどう違ってどちらが適切なのか?是非調べていただければと思う。

登壇資料

speakerdeck.com

所感

今年は、iOS アプリ開発の日々であった。Swift の基本から学び、SwiftUI、そして Twilio Voice for iOS での実装まで、全てをやり切ることができた。

CallConnect

CallConnect

  • selfree LLC
  • ビジネス
  • 無料
apps.apple.com

現状でできることは以下の機能となる。

  • アカウントでのログイン. ログアウト
  • 外線の発信・着信
  • 発信時の通知する電話番号の選択
  • 内線の発信・着信
  • キューイング着信への応答
  • 通話中の保留とその再開
  • 着信時に相手の名前、会社名の表示
  • 通話後の後処理メモ保存
  • 通話後に外部サービスへの通知

1st リリースでは機能を抑えようと考え抜いた結果、上記の機能に絞ることにした。そうだ、これは最初のリリースがに過ぎない。今後も iOS の技術を追い続け、さらなる改善を続けていこう。

この中でも特に苦戦したのは、CallKit を使った通話周りの実装だ。Twilio Voice iOS にサンプルアプリがあるのだけど、そのアプリは画面遷移のない最もシンプルな構成であるため、その先にある CallKit の本当の難しさに直面することがない。

特に通話のステータス管理が重要で、着信がきた時に正しく CallKit へ着信が受けられる状態を報告する必要がある。その後通話が始まったら CallKit へ報告するし、当然ながら通話が終わった後にも報告する必要がある。このタイミングがズレたり、報告し終わってないのに着信がきたら〜・・といった状態になるとすぐに Crash! するのである。

ここまで ステータスに厳しいのは、CallKit の iOS 間での共有にある。この CallKit はあらゆる電話のアプリ (電話, LINE など) で共有で使われており、例えば LINE で通話中の時に 自前の iOS アプリで着信が来ると、今の LINE 通話を切断して 自前 iOS アプリに出る といった選択ができるようになる。

これらは iOS 側での共通 UI となっており、これこそが CallKit となるのである。CallKit を使えば、通話アプリとして iOS 内で "共有" できる便利さはありつつ、CallKit のルールに必ず従わなければならない厳しさがある。

終わりに

今回の Twilio Meetup は忘年会も兼ねてということで、今年やったことを報告させてもらった。

私は引き続き Voice 電話 を極めていく次第である。今月中には 資料に記した 録音セキュリティ 周りに関する記事を頑張って書くとしよう。