iOS 9 Day by Dayは,shinobicontrolsのChris Grant氏が開発者にiOS 9のレビューを提供するフリーブックである。13の短い章からなる本書では,iOSの主要な機能の実例がサンプルプロジェクト付きで紹介されている。
InfoQでは過去数ヶ月にわたって,iOS 9を幅広く取り上げてきた。 “iOS 9 for Developers”シリーズやeブックを公開したのは,開発者によるiOS 9 SDKや関連ツールのキャッチアップを支援し,新しい,あるいは更新されたフレームワークの概要を広範に提供したいという意図からだ。iOS 9 Day by Dayも目指すところは同じだが,新機能のハンズオンに利用可能なサンプルプロジェクトを提供することで,それを行なおうとしている。
全13章のリストは以下のとおりで,それぞれにXcodeのプロジェクトが添付されている。
- 検索API
- ユーザインターフェースのテスト
- ストーリボードのリファレンス
- UIStackView
- Xcodeコードカバレッジ
- マルチタスク
- Contactsフレームワーク
- Apple Pay
- UIKit Dynamics
- MapKit Transit
- GamePlayKit – 経路探索
- GamePlayKit – ビヘイビアとゴール
- CloudKit Webサービス
本書は独立した記事を集めたものであるため,各章は自己完結型のチュートリアルになっていて,それぞれを独立して読むことが可能だ。プロジェクトはすべてSwiftで実装されている。
shinobicontrolsのテクニカルエバンジェリストであるSam Burnstone氏に,SwiftとiOS開発エコシステムについて話を聞いた。
iOS 9の最も重要な特徴を3つあげるとすれば,あなたならば何だと思いますか?
特徴 1) UIStackView – まず最初に目に留まるのはAutoLayoutでしょう。コンテナにビューを固定するのは簡単なのですが,相互に関連するビュー配置を必要とするようなもう少し複雑なビュー階層は,プログラムで行うにしても,あるいはストーリボードを使用しても,すぐにレイアウトがもつれてしまって簡単には実現できません。
Appleもこれを十分に認識していて,ビューのレイアウトに関する苦労の大部分を解消可能なUIStackViewを導入しました。開発者に必要なのはスタックビュー自体の位置決めと,サブビューを配置するべき軸(水平または垂直)を定義することだけです。あとはビューがサブビュー表示を自動的に処理してくれます。StackView内にStackViewをネスト配置可能な機能は特に強力で,管理性の極めて高い,制約の少ないレイアウトを実現することができます。
特徴 2) 検索 – iOS 9では,アプリのコンテンツをiOSに公開することができます。これによってユーザは,ホームスクリーンを離れずにコンテンツを見ることが可能になります。NSUserActivityを使って実現されているこのディープリンク(deep-linking)を使えば,検索結果からアプリケーションのある場所へ直接ジャンプすることができます。これはユーザエクスペリエンスを劇的に改善します。
特徴 3) 右から左への記述のサポート – もっとエキサイティングな特徴もたくさんありますが,個人的にはこれが特に印象深い追加機能だと思いました。私たちは,私たちと同じ方法でアプリケーションを使用することのできない地域が世界にあることを,ともすれば忘れがちです。ごく普通のUIKitを使っている大部分のアプリケーションが,コンテンツのローカライズという問題を別にすれば,ほとんど何も変更せずに右から左への記述のサポートというメリットを享受できるというのは,よいニュースだと思います。
書籍として記事をまとめるプロジェクトの中で,書いていて最も面白かったものは何でしたか?
StackViewの章は特に興味深いものだったと思います。この新機能を調べている時,ほとんどすべてのビュー階層をレイアウトする上で必要なコード量の少なさに驚かされました。いくつかのビューをストーリボード上にドラッグして,制約を少し追加すればよいのですから!APIもよく考えられているようですし,アレンジしたサブビューの表示と非表示をアニメーション化する機能など,付加的な機能もいくつか用意されています。
いくつもの小さなプロジェクトで拡張機能を実装していますが,Object-Cの代替としてのSwiftは,もはや完成の域に達していると思いますか?
プロジェクト全体を開発する言語としてのSwiftが,十分な完成度を持っているのは間違いないでしょう。CやObjective-Cで記述された既存のコードベースとの相互運用性がありますから,既存のコードベースを移行することも可能です。ただし,Appleが導入した新しいアノテーションを古いコードベースに使用すれば,従来と同じObject-Cの開発を続けながら,APIのSwiftからの利用方法を改善することもできます。
Swiftの進化するペースはかなりエキサイティングですが,その反動として,以前の言語バージョンで開発したコードが,次のリリースでは動かないことも少なくありません。しかし,Swiftの開発をオープンに委ねるというAppleのコミットメントは,コードベースのどの部分に支障が発生する可能性があるかを開発者自身が知ることができるという意味で,このような変化にも早く対応できるようになります。
Swiftの開発ツールは現時点ではまだ初歩段階ですが,Xcode Playgroundへと進むAppleの方向性は,新しいアルゴリズムの教育や試験を行なう優れたツールになり得るという意味からも,非常に望ましいものだと思っています。AppleはSwiftを最初に学ぶべき言語として非常に強く推しているようで,可能な限り容易に利用できるように,さまざまな努力をしています。
shinobicontrolsはiOSおよびAndroid開発者向けに,shinobichartsやshinobitoolkit,shinobiformsといったインタラクティブなUIコントロールを販売する企業である。