HMDT - Logic and Intuition -

about HMDT

HMDT Journal

March, 2008

Mar 29

iPhone SDK beta 2登場。開発環境でbeta 2ってなんじゃそりゃ。さらに引き続きNDA。なんじゃそりゃ。

beta 2では、待望のInterface Builderが対応。こないだのロードマップイベントでは、華々しくInterface Builderを使ってiPhoneアプリを作る様を紹介していたけど、実はbeta 1では非対応。世界中から「またデモだけかい!」と、突っ込みを受けてた。ドキュメントには最終リリースで対応とか書かれていたけど、なぜかこのタイミングで登場。

使ってみたら、おぉーInterface Builderだ。ドラッグ・アンド・ドロップでボタンを配置して、アウトレットつないで、実行したら、動く動く!楽チンだ。いままでの苦労はなんだったんだ。

しかし、ViewControllerの取り扱いが、いまいちよく分からねー。サンプルもないし。ナビゲーションバーとタブを表示する正しい手順は、どうなるんじゃい。

その他にもbeta 2、あちこちAPIが変わっている。いままで動いていたプログラムが動かず、コンパイルすら通らねぇ。なんじゃそりゃ。

ベータ版と言えど、そんなに変更していいのかい。つーか、Apple製のアプリケーションも、毎回対応してんのかい。これがベータを使うリスクというか、正式版公開まで待つのが正論というか。

Mar 14

WWDCの日程が発表。今年は6月9日から13日まで。例年通りの6月開催で、ほっと一安心。

あっ、そうそう。業務連絡。今年のWWDCは全員で行くので、HMDTの社員はスケジュール空けておくように。

お金?お金はねぇ。。。どうにかして調達するさ!なるようになるさ。

今年のWWDCは、とうぜんのことながら、iPhoneがメインになる。トラックの紹介ページを見ると、iPhone、Mac、ITの3つが並んでいて、iPhoneがMacと同じ規模になっている。本気を感じさせるね。

iPhoneトラックの紹介で、いくつか気になるものを。まず、Dashcode。「DashcodeでiPhone用のWebアプリケーションの作成、検証、デバッグを簡単に行う方法について解説します。」どうやら、ウィジェットが動くらしい。最も簡単なiPhone向けアプリケーションを開発するものは、Dashcodeウィジェットになりそうだ。

ただ、既存のMac OS X用のウィジェットの多くは、プラグインを利用している。Mac OS X用プラグインは、そのままではiPhoneでは動くまい。機能としては、結構制限されそうだ。

入門のところでは、「アプリケーションのメモリフットプリントの最小化、電力消費の最小化、ワイヤレスとセルラーの帯域幅の使用」って項目がある。携帯デバイス向けアプリケーションということで、大きさを小さくしたり、消費電力を気にしたりっていう、Mac向けとは違うプログラミング技術を求められる。機能が同じアプリケーションでも、消費電力が少ない、ってのを売りに出来るようになるかもね。

あと、「iPhoneテクノロジーの統合」のところに、「地図を表示して位置を確認」って書いてある。これは、サードパーティのアプリケーションからも、Google Mapsを使った地図の表示や、Sky Hookを使った位置情報の取得が利用出来る、っとことを示唆しているね。

Mar 12

iPhone 1.1から1.2へのAPIの変更は、予想以上に大きい。前に書いたソースコードは、70%くらい書き直しのような気が。作り込んであればあるほど、受けるダメージは大きい。

もちろん、文句をつける筋合いはこれっぽっちもないのだが。

Cocoa touchと名称を変えたiPhoneのAPIは、かなり成熟されている印象。NeXT Step時代からずっともまれ続けて、また新たにしきり直して、とても拡張性に富むものになった。

でも逆に言うと、シンプルではない。歴史の重みを感じるということは、歴史を理解しないといけないということでもある。経験のない人がここから新規に始めるのは、なかなかに大変そうだ。Mac OS XのCocoaの方がシンプルなところも、ままある。

Mar 11

iPhone Dev Centerには、iPhone開発のためのリファレンス、サンプル、チュートリアルビデオ、How-toがある。登録すれば、誰でも見れるよ。

この内容が、充実している。Appleにあるまじき充実っぷりである。Mac開発って言ったら、ドキュメントがないぜーとブツブツいいながら、ヘッダファイルから機能を想像するのが楽しいのに。こんなに丁寧に解説されたら、楽しみ半減である。嘘です。

特に、How-toは便利。こういうプログラミングはどうすんの?っていう質問に答えている。入門時にはこういうドキュメントがあると、非常に助かる。これの日本語訳を速攻で出せば、日本の開発者を引きつけることが出来るぞ、アップルジャパン。

iPhoneのセキュリティモデルは、なかなか大胆。暗号化やアプリケーションの署名の他に、アプリケーションのサンドボックス化も行っている。サンドボックスには、そう作りましたかい!と、びっくりさせられる。

そのおかげで、他のアプリケーションをコントロールしたり、他のアプリケーションが持つリソースを利用する類いのアプリケーションは、作るのが難しそう。

Mar 10

iPhone SDKに含まれるiPhone OSのバージョンは、正確には1.2になる。Aspenってコードネーム。

1.2と2.0は違うのか?おそらく違う。企業向けのExchangeメールとかプッシュメールとかは、2.0から入るんだろうな。でも、Cocoa TouchのAPIとかはいっしょだと思う。

2.0は6月に公開ということだけど、その前に1.2が公開されないかな。これならSDKで作ったアプリを実機で動かせる。でもそれだと以前に作られた勝手アプリが動かないとかで、すごい混乱が起きそうだ。

Mar 9

iPhone SDKに入っているものと、入っていないもの。

まず大前提として、サードパーティアプリをインストール出来るのは、iPhone OS 2.0以降ということ。この、iPhone OSという呼び方も、こないだ初めて出てきたね。いままでFirmwareの1.1.4とか呼んでたけど。

で、フリーでダウンロード出来るiPhone SDKには、iPhone 2.0用のコンパイラやヘッダやライブラリ、およびそれをMac上で動作させるシミュレータが入っている。開発したら、シミュレータでテストしろ、ってことね。

次に、iPhone SDKに入ってないもの。それは、iPhone OS 2.0。ん?どゆこと?iPhone OS 2.0用のアプリを開発するのに、iPhone OS 2.0は入ってないの?

その通り。つまり、アプリを作っても、実機で動かすことが出来ない。だって、OSがないんだから。あくまでシミュレータの上でテストするだけ。籠の鳥にすらなれんのかい。

でも、シミュレータが完璧に動けばそれで開発は進められんでしょ?んな、シミュレータが完璧に動く訳ないって。実際、シミュレータでサポートされない機能はけっこうあるしね。

実機で動かすためのiPhone OS 2.0の入手には、iPhone Developer Programへの加入が必要になる。これは有料。

金払うのはいいんだけどさ。企業の活動としてみれば、ぜんぜん高い金じゃないし。

問題は、このiPhone Developer Programに入れるのが、現状ではUSのいくつかの会社に限られている、ということ。USの、どの会社が入れるのか?不明。日本の会社が入れるようになるのはいつか?不明。

ここがはっきりしないことには、どーにもならんぜ。

また、作成したアプリケーションを実機に転送するには、証明書の作成とコードへの署名が必要になる。これも、iPhone Developer Programへの加入が必要になるらしい。ただ、証明書自体は汎用的なものだから、iPhone Developer Program以外でも作れんじゃないの?とも思うんだけど、詳細は不明。どっちにしろ、iPhone OS 2.0ないと動かんし。

iPhone SDKで作ったアプリケーションは、現在のJailbreakしたiPhoneで動くか?これは動かない。なぜなら、CocoaのAPIが、ガラっと変わっちまったから。iPhone OS 2.0じゃないと、事実上動かんね。同様に、現在のToolchainで作ったアプリケーションも、すべて作り直す必要あり。

ただ、これはSafariとかiTunesも事情はいっしょで、Apple謹製のアプリケーションも2.0に対応させる必要があるはず。いまごろ書き直してんじゃないかなー。

という訳でまとめると、iPhoneアプリケーションを作るなら、iPhone SDKをダウンロードして、2.0用につくるべし。でも、これは実機で動かせない。動かすには、iPhone Developer Programに入るべし。

だから、いつこのiPhone Developer Programに入れるようになるかが、すべてのキーになる。どうも国別に開始されるみたいだけど、日本ではどうなるのか?見通しは悲観的にならざるを得んね。なにせ、日本じゃiPhone売っとらんし。

つまりだ。日本では、iPhoneアプリケーションの開発は、事実上しばらくできない、ってことだね。実機で動かなければ、どーしようもないね。しばらくがどの程度になるのか、現状では不明。6月になってもまだ環境が整わない、ということも十分想像出来る。

Mar 8

iPhone SDK入れたー。

が、まず大前提として、全然予想していなかったのだけど、iPhone SDKはNDA扱いになるらしい。てなことで、iPhone SDKインストールしちまった以上、ここではSDKの内容については特に言うことはありません。うわー、従順。

なんかねー、SDKの記事書いたんだけど削除されちまったし。

で、SDKの感想なんだけど、いつものジョブズプレゼンマジックに引っかかってしまったのかな、と。いや、プレゼンは素晴らしかったよ。あそこで言われていたことが、すべて実現されているならば。

ほら、SDKは「ベータ」だし。「ベータ」って言っておけば、何でも許される訳だし。

ま、肩すかしの部分も多かったかな。でも、6月に正式版がリリースされるということは明言しているし。アップルとかジャパンとかは無視して、サードパーティとしてやるべきことを、きちんとやっていこうかと。

iPhoneが魅力的なこと、そしてiPhone SDKが素晴らしいことは、間違いない。ただ、潜航の時期はまだしばらく続きそう。

Mar 7

SDK出たー。

Xocdeだよ、Interface Builderだよ、リモートデバッグだよ、Instrumentsだよ、シミュレータだよ。出るといいな、と、思っていたものは、すべて出たよ。すげぇな。Appleは本気だ。

早速SDKをダウンロード。。。しようとしているが、ぜんぜんつながんないー。デベロッパ登録までは出来たけど、その次に進めないー。

にしても、短期間でこれだけそろえることが出来るのは、Mac OS Xベースだからだね。ほんと、よくやった。

iPhoneってARMベースだから、OS Xとその開発環境はPowerPC、Intel、ARMで動いているわけか。ただ動いているだけじゃなくて、コンシューマプロダクトで動いている実績があるわけか。すげぇな。

Mar 6

いよいよ、今夜SDK公開、のはず。

先日は、Cocoaセミナーグラフィックス編。参加された方々、お疲れさまでした。

そのときに話したんだけど、Image Kitってあるでしょ。Leopardから追加されたやつ。iPhotoみたいな画像のブラウザ作れるやつ。そのブラウザ作るクラスって、IKImageBrowserViewっていうんだけど、こいつに問題が。

テストとしてデスクトップ画像をブラウズ表示していたんだけど、気がついたら、メモリをドッカンドッカン消費している。アクティビティモニタで見てたら、見る見るうちに1G超えやがんの。そりゃねーだろ、おい。

でも、アップルのサンプルダウンロードして動かしたときは、そんなことなかった。どこが違うのだー、と探しまわったら、わかった、ガベージコレクタだ。ガベージコレクタが無効のときは問題ない。有効にするとメモリをガシガシ消費する。なんて分かりやすいメモリリーク問題の例なんだ!

どうも、情報によると、Image Kitの問題というよりは、Core ImageのあるImage Unitの問題らしい。てなわけで、Image Kitを使うときはガベージコレクタを無効にするのが、いまのところおすすめ。将来のバージョンで修正されることに期待。

MacRubyを調べた。

RubyのObjective-C実装つーか、RubyオブジェクトをObjective-CのNSObjectでのっとった、って言った方が近いような気がする。

すべてのRubyオブジェクトは、Objective-Cになったんだよ。いや、Objective-CはRubyからtoll-freeでアクセス出来るんだよ。RubyがObjective-Cで、Objective-CがRubyで、ややこしやー、ややこしやー。

back to top content

Copyright © 2002-2006 HMDT. All rights reserved.