Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Xcode 7 の新しいところ #cm_ios9

3,673 views

Published on

2015-11-05 に開催された『iOS 9 週連続 Bootcamp!』の第6回目で Xcode 7 の新機能について紹介してきました。ざっくりとじっくり含めて、目に止まった新機能を網羅的に扱っています。

Published in: Software
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Xcode 7 の新しいところ #cm_ios9

  1. 1. EZ-NET 熊⾕友宏 http://ez-net.jp/ 2015.11.04 @ iOS 9 週連続 Bootcamp ! Xcode 7 の新しいところ
  2. 2. 熊谷友宏 EZ-NET http://ez-net.jp/ @es_kumagai CodePiece iOS, OS X, Apple Watch アプリ ソースコードを Twitter と Gist に同時投稿できる。 いつもの電卓 計算式も見える電卓アプリ。 watchOS 1 対応 音で再配達ゴッド 簡単操作で 再配達の申し込み。 EZ-NET IP Phone iPhone でひかり電話を使う。 自宅 LAN からの利用専用
  3. 3. 熊谷友宏 EZ-NET http://ez-net.jp/ @es_kumagai 横浜 iPhone 開発者勉強会 #yidev 勉強会 わいわい・ゆるく、iPhone 開発者の
 みんなで楽しく過ごすのが目的の会 【 横浜・馬車道 】 カジュアル Swift 勉強会 #cswift ゆるくみんなで Swift を語らえる場を
 作りたくて始めた会 【 横浜・青葉台 】 第21回を 2015-12-12 に開催 第3回を 2015-11-14 に開催
  4. 4. Xcode 5 徹底解説 著書 > 全機能を徹底解説 ✔ 各画面の使い方 ✔ プロジェクトやコードの編集 ✔ インターフェイスビルダー ✔ ビルドとデバッグ ✔ ユニットテストと Bot > 紙版は絶版 (2015/08/21) > 電子書籍版は販売中 ✔ 10x-Eng.com でも取扱予定 2014/04/28 - 2015/08/21 750 ページ
  5. 5. Swift 2 の話をする予定 MSM 2015 > MSM 2015 ✔ NPO 法人 MOSA 主催 ✔ 有料イベント(会員制) ✔ 年に一度の2日間に渡る
 お祭り的なイベント ✔ Apple 最新技術の話題満載 > NPO 法人 MOSA ✔ 10 年以上の活動実績 ✔ 法人会員での参加も多い印象 2015/11/06 - 2015/11/07 http://www.mosa.gr.jp/
  6. 6. Xcode 7 ̶ 2015.09.16 ̶
  7. 7. ▶ Swift 2 ▶ 新 OS サポート ▶ UI テスト ▶ コードカバレッジ ▶ ドキュメントコメント ▶ 呼出階層検索ナビゲーター ▶ インターフェイス定義の確認 ▶ 無料のオンデバイス開発 新機能 Xcode 7 ▶ スタックビュー ▶ ストーリーボード参照 ▶ オンデマンドリソース
  8. 8. ▶ Swift 2 ▶ 新 OS サポート ▶ UI テスト ▶ コードカバレッジ ▶ ドキュメントコメント ▶ 呼出階層検索ナビゲーター ▶ インターフェイス定義の確認 ▶ 無料のオンデバイス開発 新機能 ざっくり紹介 Xcode 7 ▶ スタックビュー ▶ ストーリーボード参照 ▶ オンデマンドリソース
  9. 9. ▶ Swift 2 ▶ 新 OS サポート ▶ UI テスト ▶ コードカバレッジ ▶ ドキュメントコメント ▶ 呼出階層検索ナビゲーター ▶ インターフェイス定義の確認 ▶ 無料のオンデバイス開発 Xcode 7 ▶ スタックビュー ▶ ストーリーボード参照 ▶ オンデマンドリソース 新機能 じっくり紹介
  10. 10. Xcode 7 の新機能 ざっくり紹介
  11. 11. Swift 2 1/8
  12. 12. ▶ プロトコル拡張とジェネリック拡張 ▶ 基本構文の追加
 guard, defer, repeat-while ▶ エラーハンドリング機構
 do-catch, try, throws, rethrows ▶ 関数 forEach の追加 ▶ 再帰的な列挙子 (indirect case) ▶ #available による環境判定 Swift 2 Xcode 7 の新機能 ざっくり
  13. 13. 新 OS サポート 2/8
  14. 14. ▶ iOS 9.0 ▶ OS X 10.11 ▶ watchOS 2.0 ▶ tvOS 9.0 新 OS サポート Xcode 7 の新機能 ざっくり
  15. 15. 呼出階層検索ナビゲーター 3/8
  16. 16. ▶ 機能がどこで使われているか検索できる 呼出階層検索ナビゲーター Xcode 7 の新機能 ざっくり 呼出階層を 検索 どこから 呼ばれるか分かる ⌘⇧⌃ H
  17. 17. インターフェイス定義の確認 4/8
  18. 18. ▶ Swift のインターフェイス定義だけ見られる ▶ 実装が省かれるので見渡しやすい ▶ Objective-C ヘッダーも
 Swift のインターフェイス定義に変換できる インターフェイス定義の確認 Xcode 7 の新機能 ざっくり
  19. 19. インターフェイス定義の確認 Xcode 7 の新機能 ざっくり ここから 定義を生成
  20. 20. インターフェイス定義の確認 Xcode 7 の新機能 ざっくり 読みづらかった 機能の定義が …
  21. 21. インターフェイス定義の確認 Xcode 7 の新機能 ざっくり すっきり把握
 しやすくなる
  22. 22. インターフェイス定義の確認 Xcode 7 の新機能 ざっくり Objective-C の ヘッダーファイルも…
  23. 23. インターフェイス定義の確認 Xcode 7 の新機能 ざっくり Swift の 構文で見れる
  24. 24. 無料のオンデバイス開発 5/8
  25. 25. ▶ 無料の Apple ID だけでコード署名できる ▶ iOS 9 以前のアプリも実行できる ▶ インストールされたアプリは
 ホーム画面からいつでも起動できる 無料のオンデバイス開発 Xcode 7 の新機能 ざっくり
  26. 26. 無料のオンデバイス開発 Xcode 7 の新機能 ざっくり ▶ アカウント設定で無料の Apple ID を登録して
 ターゲット設定で選択する 実行手順 (1/3) 無料の Apple ID を選択
  27. 27. 無料のオンデバイス開発 Xcode 7 の新機能 ざっくり ▶ 実機を選択してデバッグ実行を行い
 出てきた画面で Fix Issue する 実行手順 (2/3) コード署名が 生成される
  28. 28. 無料のオンデバイス開発 Xcode 7 の新機能 ざっくり ▶ コード署名の問題が解決すると
 実機でアプリが起動する 実行手順 (3/3) これが消えると 実機で動き出す
  29. 29. スタックビュー 6/8
  30. 30. ▶ 複数のビューを詰め込めるビュー ▶ 余白と順番で手軽にレイアウトできる ▶ オートレイアウトの使用を最小限にできる ▶ 全機能は iOS 9.0 と OS X 10.11 で使える スタックビュー Xcode 7 の新機能 ざっくり
  31. 31. スタックビュー Xcode 7 の新機能 ざっくり ここから簡単に まとめられる まとめたい ビューを選んで
  32. 32. ストーリーボード参照 7/8
  33. 33. ▶ ストーリーボードを分離してリンクできる ▶ 画面の見通しが効きやすくなる ▶ 複数人数でのデザインがしやすいかも ▶ 全機能は iOS 9.0 と OS X 10.11 で使える ストーリーボード参照 Xcode 7 の新機能 ざっくり
  34. 34. ストーリーボード参照 Xcode 7 の新機能 ざっくり 分割したい 部分を選んで リファクター すると…
  35. 35. ストーリーボード参照 Xcode 7 の新機能 ざっくり 別ファイルに 分断される
  36. 36. オンデマンドリソース 8/8
  37. 37. ▶ リソースを必要時に DL できる ▶ リソースは App Store に保持される ▶ 実行可能バイナリ以外のほぼ全てを扱える ▶ NSBundleResourceRequest で取得する ▶ tvOS, watchOS, iOS で利用可能 オンデマンドリソース Xcode 7 の新機能 ざっくり
  38. 38. オンデマンドリソース Xcode 7 の新機能 ざっくり ターゲットの
 リソースタグで設定
  39. 39. オンデマンドリソース Xcode 7 の新機能 ざっくり ファイルインスペクター
 からも設定できる アセットカタログでは
 属性インスペクター
 からも設定できる
  40. 40. オンデマンドリソース Xcode 7 の新機能 ざっくり デバッグ時の リソースサーバーを 変更できる ターゲットの ビルド設定から
  41. 41. オンデマンドリソース Xcode 7 の新機能 ざっくり リソースの状況を 確認できる ディスク
 デバッグゲージで
  42. 42. Xcode 7 の新機能 じっくり紹介
  43. 43. UI テスト 1/3
  44. 44. ▶ 画面操作を自動でテストする ▶ コードでアプリを操作する ▶ 操作からコードを生成できる 特徴 UI テスト
  45. 45. テキストフィールドに入力したら ボタンが押せるようになるか確認 たとえば
  46. 46. ここに入力 したときに 押せるように なるのを確認 たとえば
  47. 47. テストを登録する
  48. 48. STEP 1 : テストターゲットを登録 UI テストの登録
  49. 49. STEP 2 : テストメソッドを登録 UI テストの登録 test で始まる メソッドを定義 テストナビゲータに 登録される
  50. 50. テストコードを書く
  51. 51. コードで画面を操作できる UI テスト func testAutoEnabled() { let app = XCUIApplication() let window = app.windows["CodePiece"] let menuBars = app.menuBars let TweetTextField = window.textFields["TweetText"] let tweetButton = window.buttons["PostButton"] menuBars.menuItems["Clear Tweet"].click() XCTAssertFalse(tweetButton.enabled) TweetTextField.click() TweetTextField.typeText("abc") XCTAssertTrue(tweetButton.enabled) }
  52. 52. 書き方が分からないときは?
  53. 53. たとえば 画面いっぱいに 表示させたい
  54. 54. 操作をコードに変換する UI テスト 入力したい行に カーソルを置いて 記録開始
  55. 55. 変換したい操作を実施 UI テスト 最大化ボタンを 押すと・・・
  56. 56. 操作がコードに記録される UI テスト 操作が 記録される
  57. 57. 先の画面操作を記録したい場合は?
  58. 58. この場面で
 操作を記録したい たとえば
  59. 59. 操作の記録は休止できる UI テスト 記録休止 ボタン ▶ 操作をコードに変換しなくなる ▶ アプリの操作は進められる ▶ 記録したい場面から再開できる
  60. 60. テスト結果を見る
  61. 61. CASE 1 : テストナビゲーターで確認 UI テストの実行結果 テスト項目と 結果を確認可能
  62. 62. CASE 2 : テストログビューで確認 UI テストの実行結果 テスト項目と 結果を確認可能
  63. 63. CASE 2 : テストログビューで確認 UI テストの実行結果 その時の画面も 記録されている
  64. 64. まとめ UI テスト
  65. 65. ▶ 従来の XCTest と同じ感覚で使える ▶ UI をコードで操作する ▶ 操作の都度、状態をコードで判定する ▶ テストを実行すると実際に動く ▶ 操作からもコードを生成できる 要点 UI テスト
  66. 66. ▶ 最新 OS で利用可能 iOS 9.0 以上 OS X 10.11 以上 tvOS ▶ テスト完了までに時間がかかる ▶ テスト実行中の操作が結果に影響する 留意点 UI テスト
  67. 67. コードカバレッジ 2/3
  68. 68. ▶ どのコードが実行されたかを収集 ▶ コードが実際に使われた割合を表示 ▶ メソッドやプロパティごとに計測 ▶ テスト実行ごとに測定 特徴 コードカバレッジ
  69. 69. コードカバレッジの収集
  70. 70. ▶ スキーム設定で有効化 ▶ テストを実行すると収集される 収集の仕方 コードカバレッジ
  71. 71. テスト
 アクションで コードカバレッジ を有効化 テストアクションで有効化 スキーム設定
  72. 72. 実行結果
  73. 73. テストログビューで確認 コードカバー率 テストログに 記録される カバレッジの タグを選択
  74. 74. ソースコードエディターで確認 コード通過回数 直近のテストでの 通過回数 通過してない コードは赤で
  75. 75. 表示されない場合は … コード通過回数 カバレッジの 表示切り替え
  76. 76. まとめ コードカバレッジ
  77. 77. ▶ どのコードを実行したかを計測できる ▶ 計測はテストの度に行われる ▶ スキーム設定のテストアクションで有効化 ▶ テストログビューでカバー率を確認できる ▶ ソースコードエディターで
 実際の網羅状況を確認できる(直近のみ) 要点と留意点 コードカバレッジ
  78. 78. ドキュメントコメント 3/3
  79. 79. ▶ コードの型や機能に説明を記載できる ▶ コード補完時に概要を見られる ▶ クイックヘルプで詳細を見られる これまでの機能 ドキュメントコメント
  80. 80. ▶ Markdown のような書式 • テキストの装飾 • 画像の挿入 • リンクの挿入 ▶ プレイグラウンド専用機能 • ページナビゲーション • リッチコメント描画 ▶ Swift 専用 強化されたドキュメントコメント ドキュメントコメント
  81. 81. 1. シンボルの文書化 ▶ 型や機能にドキュメントを添える ▶ クイックヘルプやコード補完で見れる ▶ ソースコードとプレイグラウンドで使える 2. リッチコメント ▶ 見栄えの良いコメントが書ける ▶ プレイグラウンドをドキュメントとして見せる ▶ プレイグラウンド専用 利用できる場面 強化されたドキュメントコメント
  82. 82. 1. シンボルの文書化
  83. 83. ▶ コメント行内でマークアップする ▶ コメント行は次の2通りで書く (a) /// でコメント行を書く(複数行可) (b) /** ∼ */ でコメントブロックを書く 書き方 シンボルの文書化
  84. 84. 記載 シンボルの文書化 /// 指定したターゲットをビルドします。 /// 設定を追加することで異なるオプションでビルドできます。 /// /// - precondition: /// ビルド対象のプロジェクトが開かれている必要があります。 /// /// - parameters: /// - target: ビルドするターゲットです。 /// - configuration: ビルドで使う設定です。 /// /// - returns: ビルドの実行結果を返します。 /// - throws: エラー時は BuildError が投げられます。 func build(target:Target, config:Config) throws -> Report {
  85. 85. ▶ コード補完 表示 シンボルの文書化 ▶ クイックヘルプ
  86. 86. 2. リッチコメント
  87. 87. ▶ コメント行内でマークアップする ▶ コメント行は次の2通りで書く (A) //: でコメント行を書く(複数行可) (B) /*: ∼ */ でコメントブロックを書く 書き方 リッチコメント
  88. 88. 記載 リッチコメント //: ## `reduce` メソッド //: 配列の **総和** を簡単に計算できます。 //: ### 準備 let values = [1, 3, 8, 20] //: ### 実行 let sum = values.reduce(0, combine: +)
  89. 89. 表示 リッチコメント
  90. 90. ▶ ファイルインスペクターで切り替える 表示の切り替え リッチコメント オン・オフで 切り替わる
  91. 91. マークアップ
  92. 92. ▶ シンボルの文書化やリッチコメントの
 内容に付加情報を添える ▶ コマンドを使ってマークアップする ▶ コマンドはインデントレベルが大事 • インデントによって解釈が変わる • コメントブロックの最初が第一レベル ▶ Markdown みたいな書式 基本 マークアップ
  93. 93. 1. 行書式コマンド 2. テキスト書式コマンド 3. シンボル文書化コマンド 4. ページナビゲーションコマンド コマンドの種類 マークアップ リッチコメント 専用 シンボル文書化 専用
  94. 94. 詳細は割愛 ! Apple - iOS Developer Library Markup Formatting Reference 参照
  95. 95. シンボル文書化 ページナビゲーションコマンド リッチコメント
  96. 96. ▶ ページ移動するための機能 • 指定ページに移動する • 前後のページに移動する ▶ リッチコメントだけで使える 特徴 ページナビゲーションコマンド シンボル文書化 リッチコメント
  97. 97. [ 表題 ] 移動先ページ名( ) ▶ 指定したページ名へのリンクを作れる ▶ ページ名の空白文字は %20 に置き換える 指定ページに移動 ページナビゲーションコマンド 記載方法 シンボル文書化 リッチコメント
  98. 98. [ 表題 ] @next( ) ▶ 次のページへのリンクを作れる ▶ 順番はプロジェクトナビゲーターで指定する 次のページに移動 ページナビゲーションコマンド 記載方法 シンボル文書化 リッチコメント
  99. 99. [ 表題 ] @previous( ) ▶ 前のページへのリンクを作れる ▶ 順番はプロジェクトナビゲーターで指定する 前のページに移動 ページナビゲーションコマンド 記載方法 シンボル文書化 リッチコメント
  100. 100. ページ シンボル文書化 リッチコメント
  101. 101. ▶ プレイグラウンド内に
 複数のページを追加できる機能 ▶ プロジェクトナビゲーターで管理する Playground ページ ページナビゲーションコマンド シンボル文書化 リッチコメント
  102. 102. ▶ 各ページがリソースを持てる ▶ Playground ファイル直下のリソースは
 すべてのページで利用できる様子 Playground ページのリソース ページナビゲーションコマンド シンボル文書化 リッチコメント このページ
 専用 全ページで 使える
  103. 103. ページ作成 シンボル文書化 リッチコメント
  104. 104. ▶ プロジェクトナビゲーターから作成 ページの新規作成 Playground ページ シンボル文書化 リッチコメント 新規作成 ⌥ + Click
  105. 105. ▶ プロジェクトナビゲーターで
 登録されている順番で管理される ページの順番 Playground ページ シンボル文書化 リッチコメント ページは この順番
  106. 106. ページ移動 シンボル文書化 リッチコメント
  107. 107. 指定ページに移動 ページ移動 //: 目次 //: //: [セクション A](Section%20A) //: //: [セクション B](Section%20B) 表示例 記載例 シンボル文書化 リッチコメント
  108. 108. 指定ページに移動 ページ移動 //: [前のページ](@previous) //: //: [次のページ](@next) 表示例 記載例 シンボル文書化 リッチコメント
  109. 109. まとめ ドキュメントコメント
  110. 110. ▶ シンボルに説明を記載できる • セクションで詳しく意味づけできる • コード補完やクイックヘルプで見れる • テキストを装飾できる ▶ Playground コメントの可能性が広がる • テキストを装飾できる • ページ移動のリンクが貼れる まとめ ドキュメントコメント
  111. 111. ▶ Swift 2 ▶ 新 OS サポート ▶ UI テスト ▶ コードカバレッジ ▶ ドキュメントコメント ▶ 呼出階層検索ナビゲーター ▶ インターフェイス定義の確認 ▶ 無料のオンデバイス開発 Xcode 7 の新しいところ ▶ スタックビュー ▶ ストーリーボード参照 ▶ オンデマンドリソース

×