CallConnect運営者ブログ

クラウド電話システムのCallConnectの運営メンバーによるブログです。

Android初版リリースを終えて

こんにちは。エンジニアの牧です。

9月20日、ついにコールコネクトのAndroidアプリをリリースしました。

本格的に調査を始めたのが今年の3月、開発中の告知を始めたのが5月末、告知からはさらに4ヵ月かけての取り組みでした。 大規模なAndroidプロジェクトでは2年〜3年という開発期間をとることもある中、コールコネクトは通話機能に絞った開発を予定していたため、7ヵ月という期間でリリースまで漕ぎつけました。 機能だけを見れば半年くらいで開発する見立てで、むしろ時間がかかったと思うところですが、それは十分な事前調査とテストをしたためです。 品質や安定性の高いリリースのために、自然に工数がかかることが理想でしたが、概ねその通りにできたと思います。

以下では、どんなこだわりを持って進めていたかをご紹介します。

スリープ対策

近年のスマホではスリープしたときの動作制限が厳しくなっています。 しかし、電話アプリにおいて、スリープ中に接続が切れてしまい着信を受けられなくなるケースは可能な限り避けるべきです。 スリープの対象にならないことと、スリープしていても最低限の動作が保証できることを最優先に考えました。

スリープにならないためには、アプリ側でフォアグラウンドサービスというものを立ち上げます(特にユーザーは意識しなくて良いものです)。 さらに、ユーザー側で適切なアプリ設定をすることで、常時着信を受けられます。 コールコネクトAndroidアプリでは、ログインしたとき、省電力化の解除をユーザーに依頼するように設計されています。 保留中の電話表示や内線のリスト表示更新なども影響を受けるため、バッテリーの制限は解除していただけるよう推奨しております。

また、仮にスリープに入っていても、Firebaseの通信=一部の着信は受けることができます。 キューイング着信(上位プラン向けの機能)をフルに使うことには向いていませんが、最低限の着信が受けられるようになっています。

ネットワーク切断対策

Wifi接続が切れやすいことも、スマホにおける重要課題の1つです。 データ通信で圏外になることはそう多くありませんが、Wifiの圏外ギリギリで通話をした際はネットワークの切り替わりが多くなります。 通話には電話回線の提供元であるTwilioのAPIを使っており、そうした場合でも素早く切り替えに対応します。 再接続だけでなく、インターネットの接続が不安定な場合に画面にて警告を出す作り込みも、iOSと同様に行いました。

もし、通話中に赤い文字が現れた際は、インターネット接続が不安定です。 音声が届きにくい時は、一度画面の表示をご確認ください。


上述の通り、通話機能を最優先に開発を行いました。 着信のしやすさや使いやすさのために、今後も改良を続けていきたいと思います。

裏話(技術者としての反省点)

過去にAndroid開発の経験はありましたが、自社製品として、調査、仕様検討、制作、テスト、リリースの全工程をこなすことは初めてでした。

ここで違いとして認識することになったのが、デザインやフィードバックに関する考え方です。 一般的に分業化された開発において、提示されたデザインの通りに作ることは必須であり、私も製品化の前半まではデザインの提示=指図書という見方をしていました。

とりわけコールコネクトはiOSアプリを2021年にリリースしており、特に理由がない限りはiOSに合わせた仕様決定で進む前提でした。 その前提の中で打ち出されたデザインを評価する際、画面や通話の機能が成り立たないといった点は指摘できても、iOSと違うデザインになるのはなぜか、もっと良いデザインは何かを問い直すことはしませんでした。

製品化の後半では、自分から新しいデザインを実装した上で提案し、それが一番違和感のない案として採用されました。 また、自分で考えてわからない場面でも、早めにデザインについてのフィードバックを全員からもらえるようにしました。

プロジェクトによって最適な考え方は異なりますが、方針に対してまとまっていないデザインがあれば、その段階で実装工数をかけるべきではありません。画面として表示しなければ判断できない状況も多く、廃案になることが前提で早く作るスキルも今後は意識できればと思いました。