【WWDC2018】iOSエンジニア的に気になる新機能・新APIまとめ

公開日: : iOSアプリ開発

こんにちは、@akio0911です。

先日開催されたWWDC2018で発表された内容のうち、エンジニア的に注目のトピックを抜き出して紹介したいと思います。

参考ページ: Apple Developer

Xcode 10

アプリの開発ツールであるXcodeは、Xcode 10へ。ダークモードへの対応やgitとエディタの連携など、開発作業が更に快適になりそうな新機能が搭載されるようです。

参考: Xcode – Apple Developer

  • ダークモード
    • Xcode自体がダークモードに対応
    • macOSアプリ開発における、ダークモード対応のための様々なサポート
  • ジャンプバーによるMarkdownファイルのナビゲート
  • 長いソースコードファイルのスムーズなスクロール
  • 変更したコードは各行の横が強調表示される
    • 自分がローカルで変更したもの
    • リモートリポジトリでチームメイトがcommit upstreamで行った変更
    • 競合が発生した場合は赤いインジケータが表示される
      • クリックするとupstreamのコードの違いに関する詳細情報が表示される
  • コラボレーションプラットフォームへの対応
    • GitHubとGitHubエンタープライズ
    • Bitbucket CloudとBitbucket Server
    • GitLab.comとGitLab self-hosted
  • Xcodeによって独自のSSHキー生成とサーバーへのアップロード
  • Xcodeクローンウィンドウ
    • リポジトリのリスト表示・リポジトリ検索・最新版のpullなど
  • ソース管理ナビゲータ
    • ブランチ、タグ、リモートのそれぞれをコミットのタイムラインで表示
    • コミットに関する詳細表示
    • ブランチの作成やマージなど
  • OSLogのsignposts
    • これらでprint()を置き換えられる
    • CPU・メモリ・ネットワーク使用状況などと共に表示可能
  • カスタムInstruments
    • カスタムビジュアライゼーションとデータ解析
    • Xcodeにテンプレートが含まれている
    • 他のチームメンバーや公開フレームワークのユーザーによってインストール可能
  • ユーザーからの匿名のバッテリー消費・クラッシュログを収集
    • 最も重要な問題を強調表示し、問題のあるコード行を直接表示可能
  • シミュレーションとテスト
    • 同時に複数の物理デバイスでユニットテスト・UIテスト・パフォーマンステストを実行
    • 並列実行されているシミュレーターを使用してテストを大幅に高速化
    • ネットワーク内にある他のMacでXcode Serverをホストし、自動ビルドとテストを実行
      • 機能がXcodeに組み込まれているので、専用のXcode CIセットアップにより簡単に起動して実行可能
      • 追加のサーバーソフトウェアは不要
  • Swift 4.2
    • Swift 4.0と比較して、大規模なアプリケーションを2倍以上高速にビルド
    • 毎日の編集・ビルド・テストのワークフローがはるかに高速に
  • Playground
    • ライブビューのレスポンスが向上
    • 新しいコードを追加すると、新しい行だけが再コンパイル
    • 特定のコード行を再実行するか、shift-returnを押して入力したばかりのコード行まで実行するかを選択可能
    • Create ML

ARKit 2

拡張現実を実現するためのフレームワークであるARKitは新バージョンのARKit 2へ。AR体験の共有機能やusdzファイルのクイックルック機能など、アップルが引き続きARに力を入れていることが伺えます。

参考: ARKit – Apple Developer

  • 永続的なAR体験
    • セッション間で持続するAR体験を提供し、あとで再開できる
      • 例として、テーブル上でARパズルを開始し、後で同じ状態でゲームに戻ったりできる
  • 共有AR体験
    • 複数のユーザーがiOSデバイスを使って同時にAR体験を表示できる
  • オブジェクトの検出と追跡
    • 完全な2D画像トラッキングを提供
      • 製品の箱や雑誌などの可動オブジェクトをAR体験に組み込むことができる
    • 彫刻・玩具・家具などの既知の3Dオブジェクトを検出する機能も追加されている
  • 3DとARでオブジェクトのQuick Look
    • 新しいファイル形式「usdz」
      • Universal Scene Description
    • Safari・Message・Mail・News・Notesアプリでは、3DまたはARでusdzファイルをQuick Lookできる
    • Quick Look viewをアプリに埋め込むこともできる

機械学習

機械学習に関する専門知識がなくてもモデルを簡単に構築できる「Create ML」が良さげですね。機械学習を活用したアプリが続々と出てきそうです。このあたりのツール周りも整備していっているのが好印象です。

参考: Machine Learning – Apple Developer

  • Core ML 2
    • 30以上のレイヤータイプでディープラーニング(?後で詳しく調べよう🤔)
    • ツリーアンサンブル・SVM・一般化線形モデルなどの標準モデルもサポート
    • MetalやAccelerateなどのローレベルテクノロジーをベースに構築
      • CPUとGPUをシームレスに活用して最大のパフォーマンスと効率を実現
    • デバイス上で機械学習モデルを実行
      • データをデバイスからサーバーへ送信する必要はない
  • Vision
    • コンピュータービジョン機械学習の機能をアプリに簡単に組み込める
    • サポート機能
      • 顔トラッキング
      • 顔検出
      • ランドマーク検出
      • テキスト検出
      • 矩形検出
      • バーコード検出
      • オブジェクトトラッキング
      • 画像登録
  • Natural Language
    • 自然言語のテキストを分析し、その言語特有のメタデータを推測する
    • Create MLとともに使用して、カスタムNLPモデルをトレーニングし、展開できる
  • Create ML
    • 機械学習の専門知識を必要とせずに、機械学習モデルを簡単に構築できる
    • Xcode 10のplaygroundに統合されている
      • モデル作成ワークフローをリアルタイムで表示できる
    • 数行のSwiftコードを追加するだけで使える
      • Vision
      • Natural Language
      • 回帰
      • 画像分類
      • 単語タグ付け
      • 文章分類
    • 専用のサーバは必要としない
      • Macでカスタムデータを使ってモデルをトレーニングできる

SiriKit

アプリのタスクをロック画面などでの1タップや好きなセリフで実行できる「Siri Shortcuts」が便利そう。

参考: SiriKit – Apple Developer

  • Siri Shortcuts
    • ロック画面・検索・Siriウォッチフェイスから直接、アプリに関するタスクを実行できる
    • 自分の声でショートカットを実行できる
    • 新しいショートカットアプリで自分のショートカットを作成できる
    • Siriサジェスチョン
      • 位置情報・時刻・移動のタイプ(歩行・走行・運転など)のようなシグナルを使用して、ショートカットをいつ提案するかを学習
    • 通知
      • ショートカットはロック画面に通知として表示される
      • ユーザーは通知をタップしてタスクを実行
    • オンデバイス
      • すべての学習はデバイス上にてローカルで実行される
      • プライバシーを犠牲にすることなく、インテリジェントでパーソナライズされた体験を作り出す
    • ショートカットアプリ
      • 今年の秋にApp Storeでリリース予定
      • サンプルのギャラリーとドラッグ&ドロップで使えるエディタ
      • アプリが提供するショートカットを含む複数のステップを、1回のタップやユーザーの声で呼び出すことができる

まとめ

個人的に

  • Xcode 10のエディタとgitの連携
  • カスタムInstruments
  • ARKit 2の3Dオブジェクトを検出
  • Create ML
  • Siri Shortcuts

あたりが気になっています。特にSiri Shortcutsはライフハック大好きな僕としてはユーザーとしても楽しみな機能です!

この記事を書いた人
あきお(@akio0911
iOSエンジニア、ブロガー。「プログラミングで人々を幸せに」をテーマに活動中。著書に「iPhoneアプリ開発レシピ」「cocos2d for iPhoneレッスンノート」など。東京・大阪にてアプリ開発講座「アプリクリエイター道場」を主催。 MAMORIO株式会社 技術顧問(インタビュー記事)、VISITS Technologies株式会社 技術顧問(インタビュー記事)。ブログ「卵は世界である」を運営。

関連記事

この記事が気に入ったら「いいね!」しよう

follow us in feedly

Feedlyで最新記事を購読

Twitterで更新情報をゲット!

LINEでご感想・ご要望お送りください!
(スマホでLINEを起動 > 友だち追加 > QRコード)

プログラミング未経験者向けのプログラミング入門連載記事を始めます

こんにちは、@akio0911です。 これからプログラミング未経

【RxSwift】BehaviorRelayとPublishRelayについてまとめてみた

こんにちは、@akio0911です。今回はRxSwiftのBe

【RxSwift】materialize, dematealizeを使ってみた

@toshi0383さんに教えていただいた、RxSwiftのm

【RxSwift】ストリームのcompletedをつぶす(消し去る)方法

RxSwiftで元々のストリームからcompletedをつぶす

【RxSwift】completedかerrorが流れてきたらsubscribeはdisposeされる

RxSwiftにおいて、completedかerrorが流れて

→もっと見る

PAGE TOP ↑