【Swift / iOS】iPhone の通信状況をわざと悪くする方法
初めに
iPhoneの実機でアプリのテストを行う際、電波が悪い状態で不具合が起きないかどうかをテストする時にこれから紹介する方法が使えると思うので、共有します。
なお、通信状況はそれぞれの端末、場所などによって異なりますので、その点はご了承いただければと思います。
記事の対象者
- Swift学習者
- iOSアプリのテストをしたい方
方法
-
iPhone の「設定」を開く
-
「デベロッパ」を選択
※設定画面に「デベロッパ」が表示されない場合は以下の手順を試してみてください。
「プライバシーとセキュリティ」を開く
「デベロッパモード」を ON にして iPhone を再起動する
-
「NETWORKING」の「Network Link Condituiner」を選択
-
「Enable」を ON にする
-
通信状況を選択
結論
最初に結論を申し上げると、ネットワークの検証で最も悪い通信状況を再現できるのは
「Very Bad Network」の設定 (ダウンロード:290Kbps アップロード:1.2Mbps) でした。
ダウンロード速度の順番は悪い順で以下の通り
- Very Bad Network
- 3G
- Wi-Fi
- 学校のWi-Fi
- LTE
- Wi-Fi 802.11ac
- High Latency DNS
- 通常時
アップロード速度の順番は悪い順で以下の通り
- Very Bad Network
- 3G
- LTE
- Wi-Fi
- 通常時
- High Latency DNS
- Wi-Fi 802.11ac
- 学校のWi-Fi
検証
-
通常時
Down: 150Mbps Up: 6.6Mbps
ダウンロードに関して非常に高速であることがわかります。
-
学校のWi-Fiに接続した時
Down: 41Mbps Up: 61Mbps
ダウンロード、アップロード共に安定して高速であることがわかります。
-
「100% Loss」を選択した時
通信が全くない時の再現なので、上の画像のようにテストが実施できなくなっています。
-
「3G」を選択した時
3G は第3世代の通信規格であり、4G よりも通信範囲は広いものの通信速度が遅いという特徴があります。
Down: 710Kbps Up: 1.5Mbps
1, 2 と比較して低速になっており、通信状況が悪い状態を再現できています。
-
「DSL」を選択した時
DSLは既存の電話回線を用いて高速なインターネット接続を提供するための通信技術の一つで、主に銅線を使用しています。しかし、光ファイバー接続など他の高速なインターネット接続手段が普及するにつれて、DSLの人気は少しずつ減少しているのが現状です。
Down: 1.8Mbps Up: 1.9Mbps
今回の検証では「サーバーに接続していない」としてエラーになっています。
-
「Edge」を選択した時
3Gのうちのひとつで、データ通信速度は最大384Kbpsとなっています。
Down: 240Kbps Up: 930Kbps
今回の検証ではDSLと同様に「サーバーに接続していない」としてエラーになっています。
-
「High Latency DNS」を選択した時
遅延時間が長いことをレイテンシが高いと表現するため、この設定は名前の通り遅延時間が長いときの検証に使えます。
通信速度は下の画像のように通常時とあまり変わらないという結果になりました。
具体的には遅延があっては困るようなオンラインゲーム、高頻度の金融取引などのテストに使用できそうです。
Down: 120Mbps Up: 7.0Mbps
ダウンロードやアップロードの速度は通常時とあまり変わりなく、今回の検証においては「レイテンシ」の値も他の比べてあまり変化がないように感じます。
-
「LTE」を選択した時
LTEは4G通信の基盤となっており、数Mbpsから数百Mbpsのダウンロード速度とアップロード速度を提供します。また、レイテンシが低いことも特徴として挙げられます。
Down: 45Mbps Up: 5.6Mbps
今回の3Gの検証と比較してもダウンロード速度、アップロード速度、レイテンシの三つの点においてLTEは3Gを上回っていることがわかります。
-
「Very Bad Network」を選択した時
通信状況が非常に悪い時の検証に使用します。
Down: 290Kbps Up: 1.2Mbps
今回の検証において、エラーが出ていないかつ、ダウンロード、アップロード両方において最も悪い通信状況を検証できたのがこの「Very Bad Network」でした。
名前の通りではありますが...
したがって、この設定の時に正常に動作するアプリができれば、ほとんどの通信状況において対応できるアプリケーションであると言えるのではないでしょうか。
-
「Wi-Fi」を選択した時
Wi-Fiに接続したことを想定した検証ができます。
Down: 36Mbps Up: 6.3Mbps
結果としてLTEと似たような結果となりました。
-
「Wi-Fi 802.11ac」を選択した時
802.11acとは無線LANの新しい標準規格の一つで、第5世代の規格です。
1Gbps以上の高速なデータ通信を実現することが大きな特徴です。(引用)
Down: 91Mbps Up: 14Mbps
今回の検証では確かに 9 の Wi-Fi の設定よりも良いパフォーマンスとなりました。
以上です。
アプリのテストなどを行う際などにお役に立てれば幸いです。
あとがき
最後まで読んでいただきありがとうございました。
誤っている箇所があればご指摘いただければ幸いです。
参考
Discussion