iOSで使えるセンサー・ハードウェア機能


## 対応表
| iOS | 2.x | 3.x | 4.x | 5.x | 6.x | 7.x | 8.x |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| 指紋認証センサ | | | | | | | ○ |
| 近接センサ |  | ○ | ○ | ○ | ○ | ○ | ○ |
| GPS | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| 加速度センサ | | | ○ | ○ | ○ | ○ | ○ |
| ジャイロ | | | ○ | ○ | ○ | ○ | ○ |
| 磁力センサ | | ○ | ○ | ○ | ○ | ○ | ○ |
| LED | | | ○ | ○ | ○ | ○ | ○ |
| 輝度センサ | | |  | ○ | ○ | ○ | ○ |
| バイブレータ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| マイク | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| スピーカー | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| カメラ(背面)  | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| カメラ(前面)  | | | ○ | ○ | ○ | ○ | ○ |
| iBeacon(BLE) | | | | | | ○ | ○ |

| デバイス | 3G | 3GS | 4 | 4s | 5 | 5s | 6 | 6p |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| NFC | | | | | | | ○ | ○ |
| 気圧計 | | | | | | | ○ | ○ |
| 指紋認証センサ | | | | | | ○ | ○ | ○ |
| 近接センサ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| GPS | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| 加速度センサ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| ジャイロ |  |  | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| 磁力センサ | | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| LEDフラッシュ | | | ○ | ○ | ○ | ○ | ○ | ○ |
| 輝度センサ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| バイブレータ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| マイク | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| スピーカー | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| カメラ(背面) | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| カメラ(前面) | | | ○ | ○ | ○ | ○ | ○ | ○ |
| iBeacon(BLE) | | | | ○ | ○ | ○ | ○ | ○ |

### Mobile Safariで利用可能な機能
| iOS | 2.x | 3.x | 4.x | 5.x | 6.x | 7.x |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| GPS | | ○ | ○ | ○ | ○ | ○ |
| 加速度センサ | | | ○(4.2〜) | ○ | ○ | ○ |
| ジャイロ | | | ○(4.2〜) | ○ | ○ | ○ |
| 磁力センサ | | | | ○ | ○ | ○ |
| スピーカー(Web Audio API)| | | | | ○ | ○ |

#詳細

## 指紋認証センサ
* iPhone 5s 〜
* iOS 8.0 〜

アプリ内の任意のタイミングで、指紋認証センサ（Touch ID）を使用した認証処理を行うことができる。

### 技術参考URL

* iOS Touch ID Authentication API Tutorial
http://hayageek.com/ios-touch-id-authentication-api/


* LAContext Class Reference
https://developer.apple.com/library/prerelease/ios/documentation/LocalAuthentication/Reference/LAContext_Class/index.html#//apple_ref/occ/instm/LAContext/evaluatePolicy:localizedReason:reply:
## 近接センサー
* iPhone 3G 〜
* iOS 3.0 〜

センサー近くにモノがあるかどうか(「ある」か「なし」かの2値)を判断することができる。
結構モノを近づけないと（数センチぐらい？）判定されない。

### 実装例

* 標準の電話アプリ
通話中に耳を近づけると画面が消灯してタッチセンサーがOFFになる。

* サントリー美術館（現在は配信されていない）
画面を手で包み込むようにすると、画面が変化する。
http://powerapp.jp/review/211?__from=mixipage

* Smoof
複数台のiPhoneを並べて使い、右から左に手をかざしてスライドすると、並べている他のiPhoneに写真を転送できる。
http://nlab.itmedia.co.jp/nl/articles/1109/16/news140.html

### 技術参考URL
* UIDevice Class Reference
https://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html

## GPS
* iPhone 3G 〜
* iOS 2.0 〜
* Mobile Safari iOS 3.0 〜

端末の現在位置（緯度・経度）を取得できる。
屋内、ビルの谷間では精度が低くなる。
屋外でも10m程度の誤差はある。

### 実装例

* Passbook
iOSから標準搭載になったチケット・クーポン管理アプリ。
GPSおよびPush通知に対応しているので、店舗の近くに来たときなどにチケットが自動的に表示される。

* Moves
端末を持って移動することで、移動経路を記録して地図上に表示する。
https://itunes.apple.com/jp/app/moves/id509204969?mt=8

### 技術参考URL
* CLLocationManagerDelegate Protocol Reference (ネイティブ)
https://developer.apple.com/library/ios/documentation/corelocation/reference/cllocationmanagerdelegate_protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html

* Getting Geographic Locations (mobile safari)
https://developer.apple.com/library/ios/documentation/appleapplications/reference/safariwebcontent/GettingGeographicalLocations/GettingGeographicalLocations.html

## 加速度センサ
* iPhone 3G 〜
* iOS 4.0 〜
* Mobile Safari iOS 4.2 〜 

端末にかかる加速度(G)を測定することができる。
振る、落とす、投げるなど。

### 実装例

* i震度
端末で検知した揺れを視覚化したり、ログをとったりする。
http://www.hakusan.co.jp/yure/ishindo/

* VirtualBell
端末を振ることで、ハンドベルの音を鳴らすことが出来る。
https://itunes.apple.com/jp/app/virtuabell/id486710600?mt=8

### 技術参考URL
* CMAccelerometerData Class Reference
https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMAccelerometerData_Class/Reference/Reference.html

## 3軸ジャイロスコープ
* iPhone 4 〜
* iOS 4.0 〜
* Mobile Safari iOS 4.2 〜 

端末の回転を検出することができる。
ジャイロの回転だけを利用するというよりは、加速度と合わせて使用して使用することが多い。

* 365日 腹筋アプリ SitApp
腹筋を自動カウントしてくれる。
https://itunes.apple.com/jp/app/365ri-fu-jinapuri-sitapp/id416324414?mt=8

### 技術参考URL
* CMGyroData Class Reference
https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMGyroData_Class/Reference/Reference.html

## 磁力センサ(電子コンパス)
* iPhone 3GS〜
* iOS 3.0 〜
* Mobile Safari iOS 5.0 〜

端末の向きがどの方角を指しているかを取得できる。
（0〜360度)
端末の向きに応じた3軸(x,y,z)の磁気の強さも取得可能

### 実装例

* 恵方コンパス
太巻きが今年の恵方を示してくれる。

https://itunes.apple.com/jp/app/id377321278?mt=8&ign-mpt=uo%3D4

### 参考URL
* DeviceOrientationEvent Class Reference (Mobile Safari)
https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/DeviceOrientationEventClassRef/DeviceOrientationEvent/DeviceOrientationEvent.html

* CLLocationManagerDelegate Protocol Reference 
https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManagerDelegate_Protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html

## LEDフラッシュ
* iPhone 4 〜
* iOS 4.0 〜

背面カメラ用のフラッシュを点滅・点灯することが出来ます。

### 実装例

* 懐中電灯 

https://itunes.apple.com/jp/app/huai-zhong-dian-deng/id451129895?mt=8&ign-mpt=uo%3D4

### 技術参考URL

* AVCaptureDevice Class Reference (Managing Flash Settings)
https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVCaptureDevice_Class/Reference/Reference.html

## 輝度センサ
* iPhone 3G〜
* iOS 5.0 〜

現在の画面の輝度（明るさ）を取得することが出来る。
画面の輝度設定を固定にしている場合は、周りの明るさの判定に試用することは出来ない。

### 技術参考URL

* UIScreen Class Reference (brightnessプロパティ）
https://developer.apple.com/library/ios/documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html

## バイブレータ
* iPhone 3G 〜
* iOS 2.0 〜

## マイク（音声入力）
* iPhone 3G 〜
* iOS 2.0 〜

## スピーカー（音声出力）
* iPhone 3G 〜
* iOS 2.0 〜
* Mobile Safari iOS 6.0 〜
(HTML5 WEB Audio API)

### 技術参考URL
* Playing Sounds with the Web Audio API
https://developer.apple.com/library/safari/documentation/audiovideo/conceptual/using_html5_audio_video/PlayingandSynthesizingSounds/PlayingandSynthesizingSounds.html

## カメラ（背面）
* iPhone 3G 〜
* iOS 2.0 〜

## カメラ（前面）
* iPhone 4 〜
* iOS 4.0 〜

## iBeacon(Bluetooth Low Energy)
* iPhone4s 〜
* iOS 7.0 〜

iBeaconが使用するBluetooth Low EnergyはiPhone4s以前のデバイスには対応しない。

### 技術参考URL
* CLBeaconRegion Class Reference

https://developer.apple.com/Library/ios/documentation/CoreLocation/Reference/CLBeaconRegion_class/index.html#//apple_ref/occ/instm/CLBeaconRegion/initWithProximityUUID:identifier: