iPad アプリは Mac OS X で動くか

Mac App Store に関する議論がおもしろい展開を見せている。

iPad アプリはマックで動くか、すなわち iOS アプリは Mac OS X で動くだろうかという議論だ。

最初に問題提起をしたのは Dave Winer だ。

新しいジャンルの Mac アプリが登場するという Marco Arment の指摘を敷衍(ふえん)して、それを逆転して考える。すなわちiPad/iPhone アプリが Mac App Store にやってくるのではないかと・・・

Winer は Angry Birds(iPad アプリ)が MacBook Air で動くと予測するのだ。

     *     *     *

iPad アプリが MacBook Air で動くようになる

iPad や iPhone で実際に動くソフトを Mac App Store から購入することになるだろう。

The software we will buy from the Mac version of the App Store will be the actual software that runs on the iPad and iPhone.

言い換えれば、ひそかにアップルはデベロッパに対し、どうすれば iPad ソフトがキーボードを備えた iPad、すなわち MacBook Air で動くように書けるのか教えようとしているのだ。

In other words, they’re teaching the developers, privately, how to write iPad software for an iPad with a keyboard. In other words, the MacBook Air.

     *     *     *

これに対する John Gruber のフォローアップがおもしろい。

     *     *     *

問題は何か

iOS がデベロッパにとってモジョ[mojo:魔術、(運を好転させる)お守り、ブードゥー教の呪術から]であることは間違いない。アップルのデベロッパだけでなく、業界全体にとってもそうなのだ。iOS が世界で最もホットなプラットフォームだということに尽きる。間もなく登場する Mac App Store が、これまでマックのアプリケーションなど書いたこともない iOS デベロッパにとって絶好の機会になるとアップルが考えていることも明らかだ。しかしだからといって iPad アプリが現状のままで、まったく異なる入力方式に手を加えたり適合させたりしなくても、マックで動いたりすることは決してないと考える。ARM 対 x86 のコード生成や開発フレームワークの違いが問題なのではない。タッチスクリーンで直接操作することは、タッチパッドでマウスカーソルを動かすこととは基本的に異なるという事実が問題なのだ。

There’s no doubt that iOS is where the developer mojo is. Not just Apple’s developer mojo, but the industry’s. It’s the hottest platform in the world, period. And I do think Apple sees the upcoming Mac App Store as an opportunity for iOS developers who’ve never written apps for the Mac to start. But I don’t think iPad apps are ever going to run on the Mac as-is, without any change or adaptation to account for the very different input methods. This isn’t about ARM vs. x86 code generation, or development frameworks. It’s about the fact that direct manipulation on a touchscreen is fundamentally different than moving a mouse cursor via a touchpad. […]

     *     *     *

そのままでは快適でない

実際マックのスタンダードな機能として iPad アプリが動くことはないと証明することも可能だ。iOS デベロッパキットに同梱された iPhone/iPad エミュレータを使えば、たしかに iOS アプリは現在でも Mac OS X で動く。しかしそれではマックで使うのが決して快適ではない。タッチスクリーンでは自然で楽しいジェスチャも、マウスやタッチパッドでは不自然でかったるいものとなる。自分で開発した iOS アプリを、テストやデバッギングしたそのままの形でマック用に出荷したいと願う iOS デベロッパなど誰ひとりとして知らない。パックマンみたいなゲームを iPhone で試してみたことがあるだろうか。ジョイスティックや D-pad のようなハードウェアを念頭においてゼロから設計されたゲームはジョイスティックのついてないデバイスではどうしてもうまくいかない。iOS アプリをマックで動かすとみな同じことになるのだ。(逆にまた Angry Birds のようなポピュラーな iOS ゲームは、タッチスクリーンで初めて意味を持つようなコントロールを使っている。)

I can prove it, practically, that iPad apps aren’t going to run on the Mac as a standard feature. iOS apps do run on Mac OS X, today, in the iPhone/iPad emulator that ships with the iOS developer kit. Ends up they’re just not that pleasant to use on a Mac. Gestures that are natural and fun with direct touch are awkward and clumsy using a mouse or touchpad. I never hear iPad developers — who run their own iOS apps on their Macs during development, for testing and debugging purposes — wish that they could ship them as-is to Mac users. Ever try a game like Pac-Man on the iPhone? A game that’s designed from the ground up around a hardware joystick or D-pad just isn’t very good on a device without a joystick. Everything about iOS apps is like that when you run them on a Mac. (And, conversely, popular iOS games like Angry Birds tend to feature controls that only really make sense with a touchscreen.)

     *     *     *

最適化されていないアプリ

iPad で試したことのあるひとなら誰でも知っているように、iPad に最適化されていないアプリはひどいものだ。そんなもの自分はどれも使わない。なぜアップルが iPhone アプリを iPad で動くようにしたかというと、初日から iPad には何千というアプリ(理想的なものであろうとなかろうと)があるということを示すためだった。マックではそうしなければならない理由はない。(iPad に最適化されていないアプリはいずれ iPad でサポートされなくなっても驚かない。)

[…] everyone with an iPad knows that non-iPad-optimized iPhone apps stink on the iPad. Personally, I don’t use any of them. I still think the reason Apple allowed iPhone apps to run on the iPad is simply to make sure there were thousands of apps available on day one, whether they were ideal or not. The Mac doesn’t suffer that problem. (I wouldn’t be surprised if the iPad eventually drops support for non-iPad optimized apps.)

     *     *     *

AppKit と UIKit というフレームワークの違い

こういうことになるのではないか。iPad のネイティブアプリは iPhone アプリとは異なるが、それなら両者はどんな関係にあるのかという問題に近い、と。Cocoa ではマックのアプリは AppKit というフレームワークをベースとしている。AppKit は1980 年代末期の NeXT フレームワークに遡る。iPhone の登場で AppKit を UIKit に置き換えた。私自身は Cocoa の専門家ではないが、それでも AppKit と UIKit には単にマウスカーソル対タッチスクリーンの以上の違いがあることは分かる。ある意味で UIKit は一度白紙の状態にしてやり直したものだ。「AppKit を初めからやり直すとしたら、いくつかの点では違ったやり方をする」的な変更を加えたものだ。現在我々がよく知っている iPad がそのままの状態で Mac OS X で動くということになるだろうか? — ノーだ。未来のマックのための UIKit 変種は、本質的により iOS に近いマックのネイティブアプリになるだろうか? — イエスだ。これから2か月後に登場しようとしている Mac App Store は、誰もが知っている古くからの AppKit マックアプリで溢れることになるだろう。

I think it would be something more like how native iPad apps are related to, but different than, iPhone apps. In Cocoa, Mac apps are based on the AppKit framework — and AppKit dates back to the original NeXT frameworks from the late 1980s. With the iPhone, Apple replaced AppKit with UIKit. I’m far (very far) from being a Cocoa expert, but I know enough to say that UIKit is different from AppKit in more ways than just issues related to mouse cursors vs. touchscreens. UIKit is in some ways a clean slate do-over — an “if we could do it all over again, we’d do a few things differently” successor to AppKit. Can I imagine iPad apps, exactly as we know them today, running on Mac OS X? No. Can I imagine a future variant of UIKit for the Mac, which results in native Mac apps that are inherently more iOS-like? Yes. That’s all conjecture about the future, though. The Mac App Store that’s scheduled to ship about two months from now is going to debut filled with nothing but good old-fashioned AppKit Mac apps.

     *     *     *

最適化が iOS 成功の原因

iOS でアップルが成功したのは、「一度書いたコードはどのデバイスでも動く」という考えとは逆だったという点にある。むしろ「この特定のデバイスにちゃんと最適化されたバージョンのコードを書け」というものだったのだ。

The whole point of Apple’s success with iOS has been the opposite of “write once, run anywhere”. It’s more like “write a version that is specifically optimized for this particular device”.

     *     *     *

マックへの回帰の意味は、ソフト的には Mac OS X Lion、ハード的には MacBook Air だった。

さすれば、iOS を踏まえて Mac OS X に回帰するという意味は何なのかが問われているのだろう。

Mac App Store に登場するマックの製品群によってその姿が明らかになる・・・

     *     *     *

追記:非公開の iOS デベロッパ Game Center サミット

Dave Winer の議論から Rene Ritchie はさらに想像を逞しくする。

昨夜の iPad Live ポッドキャストで私と Georgia は秘密の iOS デベロッパセッションのウワサを話題にした。そのセッションでアップルはデベロッパたちに、 iPad アプリをマックで動かすカンタンな方法を教えているのではないかというのが彼女の想像だった。

Last night during the iPad Live podcast, while Georgia and I were discussing the rumor about Apple holding a secret iOS developer session, she conjectured that Apple might be showing developers a way to quickly make their iPad apps run on the Mac.

     *     *     *

それに対する John Gruber のコメント:

Rene Ritchie はさらに、それこそ今週クパティーノで行なわれている非公式の iOS デベロッパ会議で起きていることではないかと想像を逞しくする。(そうではない・・・開催されているのは Game Center サミットだ。)

Rene Ritchie even wonders if that’s what’s going on this week at the private iOS developer meeting in Cupertino. (It’s not — that event is a Game Center summit.)

     *     *     *

そこで Gruber が彼一流のさりげないやり方で情報を漏らしたというわけ。

出席者はみな NDA[守秘義務契約]で縛られているのだろうから、情報がないのは当然といえば当然。

結局 Gruber のこの一行が非公開サミットに関する初めて情報となった。

しかし、iOS 4.2 が Golden Master になったり、Mac OS X 10.6.5 Build 10H571 がデベロッパにシードされたりしているところをみると、開催されていることの状況証拠はいっぱいだ。

一方で Mac App Store でのアプリの受付も始まっており、最初に登場するマックアプリがどんなものになるかますます興味津々。(まずはゲームだったりして・・・)

広告

コメント / トラックバック4件

  1. iPadアプリをMac OS Xで動かそうと思ったことはないけど、そうハードルは高くないと予想します。なぜなら、iOSの開発ツールにシミュレータがついていて、そこで動作しています。

    ただし、シミュレータはエミュレータではなく、実行ファイルはi386用です。ですからシミュレータ向けの実行ファイルはiPadでは動かず、その逆もまたしかりです。

    とはいえ、バイナリのトランスレータは技術的にはそう難しい物ではなく実現は可能だと思います。


  2. とても面白かったです。1点だけ、

    (iPad に最適化されていないアプリはいずれ iPad から削除されても驚かない。)
    は、
    (iPad に最適化されていないアプリがいずれiPadでサポートされなくなっても驚かない。)

    ということかなと。



以下に詳細を記入するか、アイコンをクリックしてログインしてください。

    WordPress.com アカウントを使ってコメントしています。

    Twitter アカウントを使ってコメントしています。

    Facebook アカウントを使ってコメントしています。

    Google+ アカウントを使ってコメントしています。