2015 11 05_ios9_新仕様まとめ_社内勉強会
TRANSCRIPT
![Page 1: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/1.jpg)
iOS9新仕様まとめ@社内勉強会
![Page 2: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/2.jpg)
目次
・iOS 9 仕様変更点
- App Thining- ATS対応- IPv6対応
・iOS-9-Samplerで新APIの動きを見てみる
![Page 3: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/3.jpg)
App Thiningについて
◉ App Slicing
◉ On-Demand Resources (ODR)
◉ Bitcode
アプリ容量削減やバイナリ(.ipa)の最適化の話
公式https://developer.apple.com/library/watchos/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html参考:http://qiita.com/usagimaru/items/cb19f283db4ac0cd8bd6
![Page 4: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/4.jpg)
・Asset CatalogでImage Setを作成・端末に合わせた画像ファイルのみがコンパイルに含まれるらしい
公式にはthe store delivers universal apps to customers.って書いてあるので多分手元で確認できない
App Slicing
![Page 5: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/5.jpg)
↑これ
![Page 6: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/6.jpg)
こんな感じで指定
![Page 7: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/7.jpg)
・リソース後からダウンロード
・Apple提供なので多分CDN要らず
・iOS8以下/Androidで使えない問題はある
On-Demand Resources (ODR)
※公式https://developer.apple.com/library/prerelease/ios/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/
![Page 8: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/8.jpg)
プロジェクトナビゲーターからプロジェクトを選択して Build SettingsからEnable On-Demand ResourcesをYesにする(デフォルト:Yes)
画像:公式から
![Page 9: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/9.jpg)
Resource Tagsからassetに対してタグを設定
![Page 10: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/10.jpg)
アセットを取得する時は↓のように書く
On-Demand Resources (ODR)
※公式https://developer.apple.com/library/prerelease/ios/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/
NSSet *tags = [NSSet setWithObjects: @"body", @"face", @"hair"];
resourceRequest = [[NSBundleResourceRequest alloc] initWithTags:tags];
![Page 11: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/11.jpg)
下記のようなメソッドもある
On-Demand Resources (ODR)
※公式https://developer.apple.com/library/prerelease/ios/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/
・すでにダウンロード済みかチェック
・ダウンロード後コールバック
・ダウンロードの優先度付け
・プログレスに反映する為に進捗率をとる
![Page 12: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/12.jpg)
容量制限あり
On-Demand Resources (ODR)
※公式
https://developer.apple.com/library/prerelease/ios/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/PlatformSizesforOn-DemandResources.html#//apple_ref/doc/uid/TP40015083-CH23-SW1
![Page 13: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/13.jpg)
Bitcode
ソースコード ネイティブの機械語 この中間表現が
※参考http://qiita.com/gamako/items/f37dbb05de9d3832ce6bhttps://project-flora.net/2015/09/13/xcode-7%E3%81%A7%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E3%83%93%E3%83%AB%E3%83%89%E6%99%82%E3%81%AB%E3%83%93%E3%83%83%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E5%90%AB/
メリット
・それぞれのアーキテクチャ毎にapple側でコンパイルを最適化してくれる
・パフォーマンス上がるかも
![Page 14: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/14.jpg)
Bitcode
デメリット
※参考http://qiita.com/gamako/items/f37dbb05de9d3832ce6bhttps://project-flora.net/2015/09/13/xcode-7%E3%81%A7%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E3%83%93%E3%83%AB%E3%83%89%E6%99%82%E3%81%AB%E3%83%93%E3%83%83%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E5%90%AB/
・ライブラリとかが対応してない場合、「does not contain bitcode.」エラー
・ダメな時はプロジェクトのBuild SettingsからEnable BitcodeをOff
・ライブラリの対応を待つしかない…
![Page 15: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/15.jpg)
ATS(App Transport Security)について
![Page 16: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/16.jpg)
※参考
http://qiita.com/yanayanalte/items/e6d83c12af77fa238a58
ATS(App Transport Security)について
iOS 9, OS X 10.11 以上向けのビルドの場合、すべての接続は基本的に ATS の動作に従うことになり必要条件を満たさない接続はエラーが返ってきます。
http://dev.classmethod.jp/smartphone/iphone/ios-9-intro-ats/
NSURLConnection等でhttp://xx.co.jp などにアクセスするとNSErrorDomainとか返ってきてつながりません。
![Page 17: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/17.jpg)
※参考
http://qiita.com/yanayanalte/items/e6d83c12af77fa238a58
ATS(App Transport Security)対応方法
対応方法は四つのどれか
・XCode6系以前でビルドする
・info.plistにNSExceptionDomains等設定してドメインごとにATSをオフ
・info.plistにNSAllowsArbitraryLoadsを設定して ATS自体をオフ
・サーバーをATSに対応したドメインに設定する
![Page 18: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/18.jpg)
・TLS バージョン 1.2 以上
・暗号スイートがApple指定のもの
・SSL証明書の暗号化アルゴリズムがSHA256以上
・SSL証明書の暗号強度がRSA2048bit以上、もしくはECC256bit以上
※参考
http://qiita.com/yanayanalte/items/e6d83c12af77fa238a58
ATS(App Transport Security)対応方法
サーバーサイドでこれに対応する場合SSL対応した上で下記が必要です
↑特に証明書の方は対応してないとNSURLConnectionやってもサーバーまでアクセスすらきません
![Page 19: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/19.jpg)
IPv6対応について
![Page 20: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/20.jpg)
※参考
http://qiita.com/shao1555/items/4433803419dfc72bf80b
IPv6対応について
どういうこと?
・ユーザーの端末がIPv6のネットワーク環境でもアプリが正常に動くようにしな
いといけない
・大体のWebサービスはIPv4で動いていて、大体キャリアがIPv6でアクセスし
てきても透過的にアクセスできるようにしてくれる
・UDPとか、中でgetHostByName使ってるようなのはエラー吐く
![Page 21: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/21.jpg)
※参考
http://qiita.com/shao1555/items/4433803419dfc72bf80b
IPv6対応について
・必ずIPv6 only Networkの環境でデバッグしましょう
・できれば審査前必ずその環境でデバッグする体制を作りたい
来年初頭以降これに対応しないとAppleの審査に通らなくなる!
![Page 22: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/22.jpg)
※参考
http://qiita.com/shao1555/items/4433803419dfc72bf80b
IPv6対応について
対応方法
・El CapitanのMac用意
・システム環境設定→共有をoptionクリック(optionやらないと出てこない)
→create nat64 networkにチェックを入れてインターネット共有スタート
・WifiポイントをそのMacにしてアプリを動かす
![Page 23: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/23.jpg)
iOS9 新APIについて
![Page 24: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/24.jpg)
iOS-9-Sampler
・iOS9の新APIを抽出したデモ
http://d.hatena.ne.jp/shu223/20150917/1442440780
・画像見ただけで何ができるようになるのか大体分かる
いいサンプル
![Page 25: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/25.jpg)
・3Dでガシガシ動く
・日本エリアだと遅い…?
iPad miniで↓すげー重かった
https://github.com/hirai-
yuki/ShopMapSample
Map Customizations
MKMapViewのMKMapTypeにFlyoverが追
加
![Page 26: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/26.jpg)
Text Detector
文字認識のサンプル
![Page 27: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/27.jpg)
New Image Filters
・CIFilterクラスの静止画フィルター
・自分の端末だとちょっと重い
![Page 28: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/28.jpg)
Etc...
他、下記を落としてきてXcode7でビルドしてみてください
https://github.com/shu223/iOS-9-Sampler
![Page 29: 2015 11 05_ios9_新仕様まとめ_社内勉強会](https://reader031.vdocuments.site/reader031/viewer/2022021921/58f9b49e1a28abb6628b45cb/html5/thumbnails/29.jpg)
以上ありがとうございました