特集:builder的Lionのみどころ--開発環境:API周りの変更点(後編)

小池邦人 (有限会社オッティモ)
2011-08-02 20:05:00
  • このエントリーをはてなブックマークに追加

オートレイアウト(Auto Layouto)とフルスクリーンアプリケーション

 Xoced 4.1にビルトインされたInterface Builderには、GUIパーツのオートレイアウト機能が追加された。ウィンドウをズームしても、その上にレイアウトしたボタンなどの配置位置をガイドラインに準じて崩さないように保つ機能である。

 この仕組み、ボタンに表示された文字列の長さが変化した時にも適用される。例えば、ダイアログの右下にいくつかのボタンを配置する。ボタンの文字列は各国語にローカライズするわけだが、言語によって文字列の長さが異なる。例えば、日本語なら「追加」の2文字で済む表記が、ヨーロッパの言語ではやたらに長かったりする。逆に、日本語のカタカナで表記する外来語(キャンセルなど)は英語よりも長くなり、ボタンの横幅に悩むことになる。

ボタンを配置すると自動で近郊のオブジェクトとの関連付けがなされる※クリックで拡大画像を表示 ボタンを配置すると自動で近郊のオブジェクトとの関連付けがなされる※クリックで拡大画像を表示

 オートレイアウトでは、ボタンの幅を文字列に合わせて固定しなくても自動で調整してくれる。結果的に数多くのローカライズ用リソースを用意する手間を省くことができる。

 一般ユーザーには地味な機能に見えるだろうが、アプリケーションを多国語にローカライズして提供している開発者にとっては、大変有り難い仕組みである。今後、Mac App Store(ワールドワイド市場)でアプリを販売するのが当たり前になり、ローカライズすべき言語の種類も増える。Apple提供のアプリケーションも例外ではないわけだから、搭載してほしいという身内からの声が大きかったのかもしれない(社内同業者に感謝!)。

 スーパービューに対するレイアウトを自動調整する機能は以前からあり、その設定はビューのプロパティに保持されていた。今回のオートレイアウトでは、ビューとビューを関連付けているレイアウト情報は、NSLayoutConstraintオブジェクトに保持される。つまり、1つのレイアウト情報について1つのNSLayoutConstraintオブジェクトが必要となる。

青いラインをクリックするとNSLayoutConstraintオブジェクトを編集できる※クリックで拡大画像を表示 青いラインをクリックするとNSLayoutConstraintオブジェクトを編集できる※クリックで拡大画像を表示

 NSLayoutConstraintは、Interface Builder機能で配置するだけでなく、プログラムからも制御可能である。面白いことに、NSLayoutConstraintクラスのメソッドでは「Visual Format Language」と呼ばれる簡易レイアウト言語も利用できる。興味がある方はぜひ調べてみてほしい。

実装フレームワークの遷移

 Lionでは、iOSで実績のあるフレームワークが多数採用されている。例えば「Store Kit」もその1つで、Mac App Storeでアプリ内課金が可能になったため採用された。

 そうしたフレームワークの中で最も注目されるのはAVFoundationだろう。これはサウンドやビデオを含むメデイア関連アプリケーションで活用される。今までメディア関連で利用されてきたQuickTimeは、64bitモードで利用不可なので、その後釜としての登場となる。

 新APIが追加されたQTKitやCoreVideoと連動し、より高機能なメデイア関連アプリケーション開発への応用が期待される。こうしてiOSと共通フレームワークが増える大きなメリットは、iOSでのアプリ開発経験をOS Xに生かせるようになることかもしれない(その逆もまた然り)。

 LionではOpenGL 3.2が採用されている。バージョン番号を聞いて「今ごろ?」と思われた方も多いだろうが、実はMac OS X 10.6はOpenGL 2.xであった。ただし、Macの場合にはプラットフォームが閉じているので、Appleが拡張APIを多数用意することで、限りなく3.xに近い2.xという位置づけで利用できていた。

 OpenCLもOpenGLと同様にAPIが拡張されており、マルチスレッド環境であるGCD(Grand Central Dispatch)やBloksとの親和性が高まっている。また、OpenCLでは演算結果を実メモリに転送する時にボトルネックがあるのだが、それに対する改良も進み、演算結果をダイレクトにOpenGLのレンダーバッファとして操作可能(例えばテクスチャとして利用)となった。

ユーザーインターフェース回り

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]