企業や開発者がiOS向けのアプリを制作する際、テストを行い見つかったバグを修正します。ところが利用環境によっては通常通常想定されていないバグが起こる可能性が考えられます。本記事では一例として、通信速度が大幅に低下している状況を想定し、その環境の再現方法を説明していきます。
一般的に、通信速度の低下は電波の入りが良くない場合(山間部やWi-Fiの電波が届きにくい環境での利用)に発生します。このような環境はモバイルネットワークが十分に整備された昨今においては遭遇しにくいと考えられます。しかしアンテナが3本立っているような街中などでも通信速度が極度に低下するシーンが見受けられます。それは通信速度制限(いわゆるギガ不足)になってしまった状況です。
これはユーザーの使用状況や通信キャリアとの契約プランによるものであるため、エンタメ的な使い方であればユーザーはスマホの利用を自粛するだけで済むでしょう。しかし昨今、スマートフォンは単なる通信機器としてだけではなく、QRコード決済やクレジット決済といった支払い手段の1つとして用いられるため、これらに関わるアプリや機能は通信速度に依存せず確実に不具合無く動く必要があります。
iOS向けのアプリの開発ではiPhoneの実機やMacでiOSエミュレータを使用することが多いでしょう。これらの開発環境向けに、通信速度を任意の値に設定できるツールとして”Network Link Conditioner”がAppleから公式に準備されており、iPhone, Macのどちらでも利用することができます。注意点として、Network Link Conditionerの利用中はシステム全体の通信速度を操作することになるため、開発中のアプリ以外にも支障が出てしまうことが挙げられます。それでは実際にこのツールを利用する方法を説明してきます。
この機能を利用するにはまずiPhoneをデベロッパーモードにする必要があります。ここではiOS18.1.1のiPhone15 Pro Maxを例として解説します。
設定>プライバシーとセキュリティ>デベロッパーモード
よりデベロッパーモードをオンにできます。オンにする際にシステムの表示に従い再起動を行い、再起動後に出てくるアラートに従いデベロッパーモードをオンにします。
デベロッパーモードをオンにした後、再度設定を開くと画面最下部に”デベロッパー”という項目が追加されます。
一覧よりプロファイルを選択し、画面上部のトグルをオンにすることで有効にできます。しかし、デフォルトで用意されているプロファイルには日本の通信キャリアの通信速度制限に似通った条件のものがないため、現実にに近い状況を再現するのであれば新たにプロファイルを作成する必要があります。
画面下部の”プロファイルを追加”をタップしたのち各パラメータを下記画像のように入力していきます。(パラメータの設定値は通信速度制限を模したものであり、その挙動や正確性は保証できません。)
プロファイルの保存後、作成したプロファイルを選択してトグルを切り替えることで、通信速度が制限された実機の環境を再現できます。機能の切り替えは手動となるため、作業終了後はオフに戻しておくことをお勧めします。
MacでNetwork Link Conditionerを利用するためには、追加機能としてダウンロードおよびインストールを行う必要があります。今回はMac mini M1 2020, RAM: 16GB, Storage: 512GB, macOS: Sequoia15.2, Xcode: 16.2を用いて解説します。
https://developer.apple.com/download/all/?q=Additional
ツールのダウンロードにはApple Developperのダウンロードサイトにアクセスします。この際Apple Developper Programに登録しているApple accountでのサインインが必要になります。
ログイン後は検索欄より”additional tools”と検索し適合するXcodeバージョンの”View Details”を選択後、.dmgファイルのダウンロードを行います。
ダウンロードしたファイルをダブルクリックで実行すると下記画像のようにfinderが開きます。続いて、ウィンドウ内の”Hardware”というフォルダを開き、その中にある”Network Link Conditioner.prefPane”というファイルを実行します。
表示に従いインストールを行うと、システム環境設定の最下部に”Network Link Conditioner”という項目が追加されます。
mac版の使い方もiOS版と基本的には同じです。プロファイル作成は”Mange Profile”から行うことができます。パラメータの値についてはiOS版を参照してください。Network Link Conditionerをオンにするとシステム全体の通信速度が設定した任意の値になります。XcodeのiOS simulatorを利用したり、場合によってはwebブラウザなどから開発中のソフトを操作することで、速度が制限された状況を再現できます。
これらの方法によりiPhoneやMacで通信速度が制限された状況を再現することができます。開発したアプリに通信速度を起因とする不具合が起こらないようにするためにも、ぜひNetwork Link Conditionerを用いてテストを行ってみてください。