BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース iOS 8 Day by Day - iOS 8プログラミングのフリーブック

iOS 8 Day by Day - iOS 8プログラミングのフリーブック

原文(投稿日:2015/02/11)へのリンク

iOS 8 Day by Day”は,shinobicontrolsのiOSエバンジェリストであるSam Devies氏の手による,iOS 8の主要機能を取り上げた39の短い章で構成されるフリーブックだ。それぞれの章では,そこで取り上げた機能を,スタンドアロンあるいはプレイグラウンドを使って確認するために,Xcodeのプロジェクトが提供されている。対象とするのは,Object-CとSwiftによるiOSプログラミングの基本をすでに理解している開発者だ。

“iOS 8 Day by Day”は,2014年の12月から氏が個別に書いた記事を集めたものだ。そのため,各章は自己完結しているので,独立して読むことができる。iOS 8に関するAppleの資料の単なる受け売りではなく,iOS 8の新機能の探求であり,Appleの資料を補完するための書籍である。多くの章には,そこで遭遇した問題点と,その回避策を説明する目的から,演習の節が設けられている。

InfoQでは,iOS 8で最も重要な機能,Swiftの価値,プライムタイムへの備えなど,iOSに関連する幅広いトピックについて,著者のSam Davies氏に話を聞いた。

shinobicontrolsのエバンジェリストとしてのあなたの活動について,簡単に説明して頂けますか?

shinobicontrolsは,たくさんのモバイル開発コミュニティから支援されています。ですから,エバンジェリストとしての私の役割のひとつは,それに報いることです。これを形にしたのが,彼らの役に立つことを願っている,コンテンツの提供です — ブログ記事や書籍,カンファレンスでの講演,ワークショップ,ビデオ,トレーニングなど,形式はさまざまです。コンテンツでは,shinobicontrolsが注目しているトピック以外に,もっと一般的なモバイル開発も対象にしています。iOS 8:Day-by-Dayはその一例です。これらの活動を通じて,私たちは,コミュニティの進歩を支援する役割を果たしているのです。モバイル開発に興味を持つ人はますます増えていますから,彼らの開発を支援することのできる,高品質なリソースの存在がよりいっそう重要になります。

iOS 8は,WWDC 2014で“史上最大のiOSリリース”と紹介されていました。実際に“iOS 8 day by day”は39章になって,前著の“iOS 7 day by day”から16章も増えています。それでもMetalなど一部の新機能は,対象から外さなくてはなりませんでした。iOS 8で注目する部分を選択する上で,どのような基準を用いたのですか?

iOS 8:Day by Dayのそれぞれの章を書くのは大変な仕事でしたので,一番の基準は,私自身がそのトピックに興味を持てることでした。iOS 8に含まれる新技術の数は膨大でしたから,今回は選択肢もたくさんありました。多くの人たちが関係するトピックにしたいとも思っていましたから,Accelerateフレームワークのような話題には,(残念ですが)あまり踏み込んでいません。それから,私はゲームに詳しくない(あまり好きでもない)ので,ゲームに関連した技術は避けることにしました - Metalを取り上げなかったのは,そういった理由からです。

iOS 8の最も重要な機能を3つ,あなたの基準で選んで頂けますか?

まずアダプティブレイアウトですね。レイアウトシステムが,真のマルチデバイスの世界へと進化したことの証明だと思います。まだ完成には程遠いですが,ストーリボードのレイアウトに関わるやっかいな問題が,解決への長い道程を踏み出したとは言えるでしょう。

それから,エクステンションは,iOSをサードパーティ開発者に開放する道になればと私が願っている,その方向への第一歩です。iOSを使うユーザのセキュリティとプライバシを維持しながら,重要な部分を開放するという点で,本当によくできたモデルだと思います。最初に提供されている,iOS自身の6つのエクステンションも興味深いのですが,それよりも私は,iOSがより開発者の手の届くものになる,そのスタートとして注目しています。

個人的に気に入っているのはハンドオフです。これを利用しているサードパーティ製アプリの数は,まだそれほど多くないのですが,通話応答やSMS転送など,システムレベルのインテグレーションには目を見張るものがあります。複数のiOSデバイスを使っているユーザにとって,大きな可能性を秘めていると思います。UXの面はまだ十分であるとは言えませんが,シームレスなマルチデバイスコーディネーションに発展することを期待しています。

ちょっとずるいかも知れませんが,4番目の候補として,開発者の視点からプレイグラウンドの話をさせてください。プレイグラウンドは,ちょっとした機能の開発を短時間で行ったり,新しいAPIについて練習したりするには,本当に素晴らしい手段です。Appleもプレイグラウンドには力を入れているようですから,彼らが今後,この分野でどのような新境地を開いていくのか,本当に楽しみです。

本書の中で,一番大変だった章はどれでしたか?一番面白かったのは?

一般的な傾向として,最初の頃は,早期ベータ版で作業しなければならないので苦労が多いですね。バグが多いし,ドキュメントもよくありません。間違いなく一番大変だったのは,最初のベータ版を使わなくてはならなかった,エクステンションの共有に関する部分です。この時点では,まだツーリングが動作しませんでした。ドキュメントもありませんでしたし,動作するはずのターゲットでも,複雑な部分には問題があったのです。ですから,この章に関しては,後になって,別のベータ版を使ってアップデートしなければならない部分がたくさんありました。早い時期に刊行できたのはよかったのですが,Appleが今年になってNDAを緩和したために,本を書くことはとても難しくなりました。ですが,6月以降かなり多くの変更がありましたから,今の時点で同じような記事を書こうとすれば,苦労はかなり少なくて済むと思います。

その他の章で特に大変だったのはCloudKitです。これについては,まだ書くべきことが残っています。なにしろプラットフォームのサイズが大きいですから。とにかく巨大で,機能の多いシステムなので,重要な部分を取り出すだけでも大仕事です。

気に入っているのはカスタムコアイメージカーネルを取り上げた章です。この部分は,私が以前やっていた,コンピュータ画像の研究と関わりがあるからです。この章を書いて新しいものに触れたことが,もう忘れていた,私がソフトウェア技術者になった頃の問題を考える機会になりました。少しわがままだと思われるかも知れませんね。

SwiftがObject-Cに代わるものとなるのは,どのような理由からでしょうか?

私はSwiftの大ファンです。アカデミックな言語設計コンセプトと実用性をうまく組み合わせた方法には,本当に感心します。改善の余地があるのは間違いありませんが,現在の状態でも型システムやクロージャや列挙型など,正しい方向への第一歩を踏み出していると思います。ここで重要なのは,Objective-Cとの相互運用性です。まだ洗練されていない部分はありますが,全体的に見てAppleのSwiftチームは,現時点で可能な範囲で素晴らしい仕事をしています。

Swiftはプライムタイムで使用可能な域に達していると思われますか?一般的に使用する上で問題があるとすれば,主にどのようなものでしょう?

現在のSwiftにとって最大のハードルは,ツーリングとコンパイラです。いずれも初期のベータ版に比べれば大きく進歩していますが,Object-Cのものに比べると,まだまだ見劣りがします。6月のリリースでは,どちらも大幅に改善されることを期待しています。Swiftで大規模なアプリ(あるいはその一部)の開発に取り組んだという報告は,まだほとんどありません。ArtsyのEidolonと,khan Academyアプリの最新リリースは,どちらもSwiftを大々的に使用していますが,コンパイラやツーリングに多くの改善が必要だと感じているようです。Swiftの優れた点のひとつは,Object-Cコードとの相互運用性によって,既存のアプリにビット・バイ・ビットで追加できることにあります。つまり,Swiftに完全にコミットしてしまう前に,それを試してみることが可能だ,ということです。

iOS 7が導入されたのは1年以上前のことになりますが,iOS 7の機能の中で,期待されたほど広範に普及しなかったものは何だと思われますか?私が思うには,例えば,マルチピア接続などは ...

マルチピア接続についての評価は,あなたの言うとおりだと思います。私がそれについて書いている時,ポテンシャルは大きいと感じましたが,実際に利用しているアプリケーションはひとつしか見つかりませんでした。問題はいくつかあると思います。1) UXが十分ではない 2) インターネットアクセスがあれば,ロケーションサービスとネットで同じことができるので,新しい技術をあえて学ぶ必要がない 3) ネットワーク数が8までに制限されている,といった点ですね。私はこの技術について,AirDropをサポートするために開発されたのではないかと思っています。それをAppleが,サードパーティにも利用できるように開放したのではないのでしょうか?

その他の技術で,失望して,当面は注目しないでおこうと思ったのはiBeaconです。大きな可能性を持っていることは確実なのですが,最終的に何に使うつもりなのか,まったく理解できませんでした。iBeaconに関して私が最初に書いてから,その革新的な応用例がいくつかありました。マイクロローカライゼーションの提供にiBeaconを使ったスタジアムがありますし,没入型のエクスペリエンスを開発したアートギャラリもあります。ですが,実際に提供している例はそれほど多くありません。これについては,関連するハードウェア面に原因があると思います。iBeaconの実装には,ソフトウェアの開発に加えて,企画や調査,展開といった多くの作業が関わります。それでもまだ,空港の手荷物受取ベルトコンベアでスーツケースを見付けるためだけではない,iBeaconの応用例が現れるかも知れない,という期待は持っています。

その他にも,もっと活用されてもよいiOS 8の機能があると思われますか?

HomeKitの分野は,普及にもう少し時間が掛かるでしょう。理由はiBeaconのときと同じで,ハードウェア的なものです。このホームオートメーションや管理という分野は,技術的には専門外なのですが,実際に動くところを見て見たいですね。ですが,まだ,先は長いでしょう。ハードウェアメーカが注目するものは,私たち開発者と同じですが,リードタイムがずっと長くかかります。AppleはHomeKit互換デバイスの認定作業を始めているはずですが,実際に採用した製品が現れるのには,まだしばらく時間が必要だと思います。HomeKitの採用がどの程度拡大するかが分かるのは,その後になるでしょう。

Sam Davies氏は“iOS 7 Day by Day”の著者でもある。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT