スマホ向けWebページの検証を行う方法

スマホ向けサイトの表示確認、通信内容確認などの検証を行いたいときのやり方いろいろ。

##スマホだけで確認する方法
###view-source:を使用する
ChromeブラウザやFirefoxで使える方法。URLの先頭に`view-source:`を加えてWebページを読み込むとhtmlソースを見ることができます。ユーザー辞書に「view-source:」と登録しておくとラクラク。
<img src="https://qiita-image-store.s3.amazonaws.com/0/103957/907fc937-c600-abbb-f16e-4626f159490f.png" width=50%>

また、ブックマークレットからソースを表示することは無理でした。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103957/e7f03e10-4dd2-1c68-64f3-16fb986dd98a.png)

###iOSアプリを使用する
iPhoneやiPadの場合はアプリをインストールすることでhtmlやJavaScriptのソースを確認することができる。「Srcfari」と「View Source」が人気な様子。

- [【iOS】ウェブサイトのソースを閲覧できる［Srcfari］はウェブデザイナーの方にお勧めの神アプリです。 - ONZE](https://xenontenter.com/view-source-ios/)
- [サイトのソースコードを確認できるアプリ「View Source」が最高だ！｜キセノンテンター](https://on-ze.com/archives/2388)
- [iPhoneのSafariでHTMLソースを表示する拡張機能アプリView Source | AppBase](https://jp.appbase.info/view-source-iphone/)

##PCからスマホブラウザの情報を確認する方法
PCでWebサイトをデバッグするときと全く同じ感覚でスマートフォンが表示中のWebページのソースや通信した内容の確認が出来るので便利。何より実機による検証なので確実で安心です。

#### Android実機とPCのChromeブラウザでやる場合
- [Android 端末のリモート デバッグを行う  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/?hl=ja)

#### iOS端末の実機とPCのSafariでやる場合
- [iOS SafariのWebインスペクタをMac Safariで表示してデバッグする](https://www.islog.jp/entry/ios-safari-web-inspecter/)
- [Enabling Web Inspector - developer.apple.com](https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/Web_Inspector_Tutorial/EnableWebInspector/EnableWebInspector.html)


##PCブラウザのデベロッパーツール内モバイルモードを使用してシミュレートする方法
一番手軽なので簡易確認に大活躍する方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/05065d5e-be0e-0fef-3527-4d7e1388005e.png)

基本的に画面幅を変えた上でユーザーエージェント情報を偽装するだけの機能なので過剰な信用は禁物。油断するとヒドい目に遭います。

**ヒドい目の例**

- 実機で確認すると画面レイアウトがややズレていた。
- タッチ操作のイベントハンドリングをJavaScriptで実装して、PCのChromeブラウザによるエミュレートで満足していたらiPhoneで動いていない。
- エミュレートで問題なかったリンククリック時に動作するスクリプトの動作を実機で確認するとJSが干渉して一部のボタンが反応しなくなっていた。

###Chrome
#### 1. シークレットモードとデベロッパーツールの起動
[シークレットモード](https://support.google.com/chrome/answer/95464)でChromeを開き、<kbd>F12</kbd>キー、または右クリックからの「検証」でデベロッパーツールを呼び出します。（もし既に開いているシークレットモードのタブがある場合、予めすべて閉じてから実行してください。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/b94c9496-bede-1dfc-b766-d1205752b070.png)
スクリーンショット右側に表示されているのが呼び出されたデベロッパーツールです。

#### 2. モバイル端末のシミュレート機能を呼び出し
以下画像の赤枠部分のスマホのようなアイコンのボタンをクリックして機能を呼び出します。
ショートカットキーを使って呼び出すことも可能です。

- Mac : <kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>M</kbd>
- Windows : <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>M</kbd>

[Device Mode でのモバイル端末のシミュレート  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/device-mode/?hl=ja)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/099e0c7b-7c0a-70a1-3722-ba582b6e1852.png)

#### 3. シミュレート対象の端末を選択
スマホ表示されている画面の左上のメニューでシミュレートする端末を選びます。
「Edit...」オプションを選択すると使える端末の種類を増やしたり、独自の画面幅・ユーザーエージェントを持つ設定を作成することも可能です。
[レスポンシブな端末固有ビューポートのテスト  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/device-mode/emulate-mobile-viewports?hl=ja)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/4457d988-673b-6776-eb45-5e483adc3e60.png)

#### 4. 検証対象のページを開く
この状態にしてから対象のURLを入力してページを表示させれば検証を行うことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/6121c9a4-f76f-d2e9-c6bd-03fc4f947044.png)

ページによっては最初にアクセスしたときにPC経由かモバイル端末経由のアクセスか判別してCookieなどに記録、これに依存して一部の処理が行われる場合があるので、上記の手順をすべて完了してからページを開く方法が確実です。

#### Chromeのモバイル端末のシミュレートで使える小技

右上の「︙」ボタンをクリックして呼び出せるメニューからスクリーンショット画像を撮影したり、iPhone6など一部シミュレート端末ではデバイスの枠を表示させることが可能。
説明用の資料にスクリーンショットを貼るときに便利な機能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/d8d56460-52a0-f4de-3c85-97d8beb1601d.png)

#####iPhone6/7/8 Plusのシミュレート中に「Show device frame」を有効にした状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103957/e6c05454-7b2d-6d5a-72e6-437ba1a28055.png)


#####「Show device frame」を有効にして「Capture screenshot」で撮影した画像
iPhone5とiPadのシミュレート
![無題.png](https://qiita-image-store.s3.amazonaws.com/0/103957/abe87e86-ae48-d892-b36c-8bb2f63f31dd.png)


### Firefox
Chromeと同様の手順でスマホ向けWebページを表示できます。
Webページが表示されているウィンドウの直上のメニューからエミュレートする端末を選択。また、右上のカメラボタンを押すとスクリーンショットを撮影できます。
[レスポンシブデザインモード - 開発ツール | MDN](https://developer.mozilla.org/ja/docs/Tools/Responsive_Design_Mode)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/103957/212df83b-4cae-0ba9-0b28-25a1e579bcdf.png)

撮影したスクリーンショット
<img src="https://qiita-image-store.s3.amazonaws.com/0/103957/2fc11b61-6f7f-06a8-6926-e93932f268a5.png" width=50%>

### Safari
リンク先のやり方のとおり
[Simulate responsive web content on Apple devices - Apple サポート](https://support.apple.com/ja-jp/guide/safari-developer/simulate-responsive-web-content-apple-devices-dev84bd42758/mac)