5G対応アプリをつくろうZ!

この投稿は、私が所属するKDDIテクノロジーで行っているアドベントカレンダーの3日目の記事となります。
モバイル通信の第五世代目の通信規格「5G」。対応エリアも広がり、5G端末を使っていれば、アンテナ横の「5G」のマークが点いていることも事も多くなりました。しかし、まだまだ5Gは進化中です。
私の本日のアトレベントカレンダーでは、この5Gの現在を読み物として紹介します。

 # 5GアプリつくろうZ
「今のアプリを5G対応にしましょう」
「5Gのアプリを開発しましょう」
このようなコトバを発したとしたら「いやいやいや、アプリ関係ないでしょ、何もしなくても5Gで通信できているし」という声が聞こえてきそうです。That's 正しいです。

5G通信を行うために、アプリが開発時に対応しなくてはならない開発項目はありません。スマートフォンが5G対応であり、かつ5Gの電波のエリア内にいれば、自動的に5Gの通信が開始してくれます。
普通にアプリを作れば5G通信ができる「5G対応アプリ」となっているわけで、5G対応できないアプリなんてものは無いのです。そういう意味でも「5G対応アプリ」という言葉を聞くと「いったい何の詐欺だよ」と思いたくなる気持ちもとてもわかるのてす。
しかし、あえてここで「5GアプリをつくろうZ」と言いたいのです。5Gはアプリにとって、従来の通信方式による進化(通信速度の高速化)以上に、大きな変化がありました。その上で「ただ通信する以上の、気にしなくてはならないこと」が増えており、これらに丁寧に対応していかないとユーザに不利益を発生させたり、新しく利用できるようになった5Gのメリットを活かせなくなってしまいます。
そして、ただ通信すること以上に新しく追加された5Gの特徴もあります。これは、新たな設定をしないと利用することができません(オチとしては、まだ公開されていないのですが)。

# 5Gアプリの本当の意味
従来の通信方式の進化では、アプリにとって「通信速度の向上」が大きい変化点でした。しかし、5Gの特徴はそれだけでありません。次の3つがあります。

➀　高速大容量通信
➁　低遅延通信
➂　同時多接続

➀大容量通信については「通信速度の向上」と同じ特徴で、高速な通信を実現してくれます。高精細な動画のストリーミング転送などができるようになったりします。
➁超低遅延通信については、ほぼリアルタイムに相手へデータを送り届ける仕組みであり、送信から受信までの「遅延時間」を短くする取り組みです。これにより、対戦ゲームやビデオミーティングなどで、タイムラグを抑えられることにより、より臨場感を得ることができ、遠隔運転などの少しの時間の遅れでも人命にかかわるようなソリューションへ活用することができます。
➂同時多接続は、同じ場所に大量のデバイスが存在するときでも、大量な同時アクセスでもエラーを極力出さず接続できるようにする取り組みです。人が集まるスタジアムなどで、一か所に大量なデバイスが通信しなくてはならないようなケースで活用されます。

さて、皆さん、これらの特徴のご利益を受けていますか? 実感としてはどうですか?

# 5Gの3特徴を活かしたアプリ開発
## 大容量通信対応の5Gアプリの作り方
大容量通信を活用するアプリは、通信を行うすべてのアプリです。この5Gの特徴を使うだけならば何も対応することはありません。すでに多くの方がこのご利益を体感されていると思います。
しかし、そのままユーザも提供側も5G通信を気にせずに使ってしまうと。5Gの高速通信が利用者にデメリットを与えてしまうケースがあるのです。それを解消するために「5Gエクスペリエンス機能」という、通常のデータ通信とは別に役立つAPIを活用します。

### 5Gエクスペリエンス機能
5Gエクスペリエンス機能とは、ユーザ視点で一口に言うと「不用意なパケット/ギガの使い過ぎ」を防く方法です。コンテンツ提供者視点で言うと「ユーザに不満感を与えずに最大の5Gの効果を最大限に体感(エクスペリエンス)してもらうサービスを構築する」事を目指します。
この機能は、Android 11とiOS 14のバージョンから利用できるようになっており、大きく3種類の機能からできています。
　1 5Gエリア判定
　2 5G通信速度の推定
　3 従量課金の判定
https://developer.android.com/about/versions/11/features/5g?hl=ja

これらの機能はスマートフォン上だけで活用するのではなく、多くの場合はコンテンツを提供するサービスと連携して課題の解消に取り組みます。
まず、5Gの高速に大容量データを通信できるを能力「①高速大容量通信」を活かした「5Gの動画サービス」をインターネット上で提供する場合、4Kや8Kなどのビットレートの高い高精細な映像を準備し、インターネット上から5G通信を行っている端末に向けてストリーミング配信する事で、「きれい」で「迫力がある」と言った、高い5G体験をユーザは体感できます。
しかし待ってください。
情報を再生するスマートフォンが5Gエリア外であったり、そもそも5Gの契約を結んでおらずLTEで通信していた場合はどうなるでしょうか。
十分の通信帯域が取れず、表示がカクカクしてしまったり、壊れてしまったり、場合によってはエラーとなってしまいます。一部の5Gユーザには高い体験を与えつつ、他方(場合によってはこちらの方が多いケースがあります)では悪い体験を与えてしまっているケースがあるのです。
これを解消するために、上記の「5Gエクスペリエンス機能」の2つを用います。「1 5Gエリア判定」と「2 5G通信速度の推定」を組み合わせて、端末が現在通信できる実力値をあらかじめ知り、それを動画配信のシステムに通知することで、端末の実力に見合ったビットレートの動画を送り出すようにします。これで5Gエリア外の端末でも再生はできようになり、体験低下は防げます。
それでも待ってください。
5Gで美しい動画が再生できたとしても、それが広告でありパケット/ギガ定額プランに記入していない場合(従量課金制のプラン)はどうでしょうか? 5Gという高速通信ですので、あっという間にデータ通信代がかさんでしまいます。最終的にはクレームとなり、悪いユーザー体験となってしまいます。
これを解消するために、「3. 従量課金の判定」を行い、ユーザのデータの使い過ぎを気にすることなく、高品質のサービスを思う存分提供することができるようになります。
なお、この「従量課金プランに入っているかどうかの情報」については、移動体通信事業者にユーザが加入している情報であり、スマートフォンの中には情報を持っていません。そのため、このAPIを使えるようにするためだけに、世界中の移動体通信事業者が、これらの情報を移動体通信事業者内のシステムから取得する仕組みを、個別にわざわざ構築しています。そのため、一部の移動体通信事業者では、未対応となつています。
### これらの機能の使い方(追記　12/11)
　1 5Gエリア判定　/　2 5G通信速度の推定　/　3 従量課金の判定
この3つの機能をアプリでどの様に設定するのか、サンプルアプリなどは、次の「4Gアプリを作ろうZ!Ⅱ」で紹介しています。
https://qiita.com/simdroid/items/f35d986120288704ba59

## 超低遅延通信の5Gアプリの作り方
### 5GSAとNSA
5Gのもう一つの特徴の超低遅延について、このご利益を感じている方はいますでしょうか。
実は現在(2022/12/03)主に提供されている5Gは、「5G NSA方式(ノンスタンドアロン)」のものであり、まだ本来の5Gの特徴をフルに出せていない状態なのです。5Gの本気は「5G SA方式(スタンドアロン)」を使った時に発揮されます。そのため5G SAを「真の5G」と呼ばれることも多いです。
➁超低遅延通信と➂同時多接続通信については、この5G SA方式から利用可能となる特徴です。
しかし、現在の5Gの遅延を測定してみると、LTEに比べて多くの場合において遅延が改善されている事がわかります。ネットワークを活用した映像やゲームなどの開発者からすると、これだけでもありがたい改善ですはあります。
それでは、「真の5G」で実現される本気の超低遅延通信を、アプリから使うにはどうすれば良いのでしょうか?
まずは5G SAを利用することが前提となります。モバイル通信各社で、法人向けを中心にSAサービスが開始されていますので、5G SAを利用すること自体は可能です。それでは、大容量通信の時と同じように、端末さえサポートしていれば超低遅延接続が可能となるのでしょうか。
残念ながらそうはなりません。もう一枚壁があります。
### ネットワークスライシング
超低遅延通信を用いるには、ネットワークスライシングを用いて通信を行う必要があります。実は、このネットワークスライシング機能を、アプリから活用するための、開発キットや具体的に開発手法は公開されておらず、Androidで試作や実証で使われている事例があるだけにとどまっています。
ただ、Googleから公開されたオープンソースのAndroid 12に、モジュールを追加して5G SAを構築する情報も公開され始めました。そこには、URSPルールという、どの5Gの特徴を持つスライシング(仮想的なネットワーク)を利用するかの定義を記載し利用することが書かれていたりします。機会があれば、こちらについても紹介したいと思います。

##  同時多接続の5Gアプリの作り方
同時多接続を現行の5Gで体験される方は少ないと思います。こちらも、超低遅延通信と同じで、5G SAのネットワークスライシングを用いて実現します。

# 進化する5G
5Gの通信は、エリアも順次広がり、そして機能も順次拡大しています。標準規格は定まってはいるものの、それらが使えるようになり、活用する部分については、まだまだ進化中の通信方式です。
これらを用いて、次の新しいイノベーションの糧にしていくことに対してワクワクしております。

# 最後に(ちょっと宣伝)
株式会社KDDIテクノロジーでは、AndroidやiOSのアプリを中心に開発を行う仲閒を積極的に募集しています。ともに開発やPMの仕事をしてみませんか? 興味ある方は是非こちらの採用ページからご相談ください。お待ち申し上げています。
→　https://recruit.kddi-tech.com/