勝手アプリ3分間クッキング

iPhoneの勝手アプリを3分間で作る方法です。Objective-Cなんて知らないよ〜ってアナタも大丈夫。指定したURLを開く(だけの)ネイティブ・アプリが、手軽に出来ちゃいます。

手順は、MacのSafariでiPhone Apperにアクセスして、名称(Title)とURLを入力し、アイコン画像のPNGファイルを指定したら、App Me!ボタンをクリックするだけ。これで、オリジナル勝手アプリがダウンロードされるので、iFuntasticやiNdependenceあたりで、iPhoneに転送してください。

iphone-apper.jpg

Safariのブックマークと一緒でしょ?と思った人は、半分当たっていて半分外れています。機能的にはブックマークなんだけど、オリジナル・アイコンをホーム・スクリーンに表示して、ワンタッチでアクセスできますからね。知らない人に見せて、自慢してください。iPod touchでも動くんじゃないかな?(無責任)

と言う訳で、iPhone Apperで作らせていただいた2061.appを以下に入れておきます。このサイトを開く専用アプリね。アイコン画像は以前に作っていたので(料理は下ごしらえが肝心〜笑)、3分間どころか1分以内にできちゃいました。

iphone-2061icon.png 2061.appをダウンロード

ちなみに、作られたアプリのパッケージを開くと、指定したアイコンがicon.pngとして存在していて、Info.plistのEmbarkURLプロパティに指定したURLが記述されています。指定した名称はInfo.plistのCFBundleIdentifierプロパティとアプリの名前に反映されています。

このあたりのことが分かっていれば、自分でアプリを複製して勝手アプリを増殖させることができますね。http://の代わりにtel:を付ければ、指定した番号に電話をかけるアプリになります。プライベートな電話番号であれば、自己増産方式が安全ですね。

Yes|No.app登場

Mac OS X 10.5、Xcode 3.0、toolchain 0.3無事稼働記念ということで、新しいiPhone用アプリケーションを作りました。起動するとランダムにYesまたはNoを表示するだけの、シンプルな意思決定ツール、Yes|No.appです。

なんじゃそれ?と思われるかもしれませんが、とっても便利です。例えば、こんな風に使います。
「部屋を掃除しようかな?」→Yes|No.app起動→Noと表示→「そうか、止めておこう」
「モヒカンにしようかな?」→Yes|No.app起動→Yesと表示→「よし、決行じゃ!」
「あいつが真犯人だろう?」→Yes|No.app起動→Yesと表示→「それ、逮捕!」

iphone-yesno-icon.png iphone-yesno_m.jpg

ちなみに、勝手アプリが登場し始めた頃に、やられた〜と思ったのは、Erica Sadun女史のLight.app(当時はiLight.appという名前だった気がする)でした。これは全面的にスクリーンを白くするアプリケーションで、単に白い画像を表示しているだけね。でも、これでiPhoneを懐中電灯のように使える訳です。超簡単なプログラミングで納得できる機能を提供する、ってのは素晴らしいでしょ?

それで、Light.appの次にシンプルでお役立ちなツールとして考えたのがYes|No.appなのです。だから、複数のグループから選べたり、表示するテキストを編集できたり、といった拡張計画は一切ありません。でも、ジャンケン.appやサイコロ.appならいいかもね。

ところで、これまでiPhone用アプリケーションは、aka.objectsサイトにて公開していましたが、今回からaka.iphoneサイトにまとめることにしました。HTML流用の手抜きサイトですが、こちらもご贔屓に!

あと、Installer.appからダウンロードできるようにしたいんだけど、どうすればいいのかな?

Taking Your iPhone to the Max

Erica Sadun女史が執筆している”Taking Your iPhone to the Max (Technology – Action)“という書籍が、もうすぐ発売されるみたいです。一瞬、iPhoneをMaxに繋ぐ本、aka.iphoneと一緒?、なんてニッチな!って思いましたが、iPhoneを最大限に活用しよう〜ってことのようです(笑)。

taking-your-iphone-to-the-max.jpg

勝手アプリ界のクィーンたる彼女のことだから、ハッキング&プログラミング全開バリバリ本かと思いきや、必ずしもそうではないかも。USアマゾンのEditorial ReviewsのWhat you’ll learnには次のような項目が挙げられています。

iPhone basics
E-mail, voicemail, and using iCal
Surfing the Web with iPhone using Safari
Expanding the main menu using third-party software
Using iTunes, games, and iBooks
Connecting to the TV and ripping DVDs
Hacking OS X to run apps on the iPhone
Getting contract-free VOIP
Saving on accessories and what you really need

となると、ちょっと期待外れの感もありますが、実際にはどうなっているか、刊行を楽しみに待ちましょう。

ちなみに、USアマゾンでiPhoneを検索すると、Booksだけで192項目リスト・アップされますね。刊行予定の書籍や、PDFやHTMLでの販売も含まれていますが、それにしてもスゴイ量です。

SuperCollider 3.1登場

Leopardにも対応した(と思われる)SuperCollider 3.1が公開されています。ダウンロード・サイトはこちら。追加変更点はChangeLogに書かれていますが、GeneralHIDやHelp.guiを始めとして、いろいろと機能が増えて、バグ・フィックスが行なわれているみたいです。

supercollider31.jpg

10.5でMaxが起動しない場合

LeopardでMaxが起動しない場合があるそうです。私の場合は、クリーン・インストールで問題なく起動しましたが、Leopardにアップデート・インストールしたり、移行アシスタンスを使った場合に、この症状が現れるとか。はい、お察しのようにバカ犬PACEくんの仕業です。

しかし、バカ犬が鍵をくわえて戻ってくるのは早かったようで、Driver download page
に新しいバーションであるInterLok Mac OS X extensions installer v5.5.1が公開されています。しっかり、For Mac OS X 10.3.0 through 10.5と記されていますね。

pace-interlok551-download.png

と言う訳で、Leopard宇宙に飛び出したものの、Maxが起動しないよ〜って人は、新版InterLokをインストールしてみてはどうでしょうか? 全然関係ありませんけど(笑)、最初に宇宙に行ったのは、ライカという犬、打ち上げ日は60年前の明後日(11/3)です。

Xcode 3.0/toolchain 0.3用テンプレート

Xcode 3.0/toolchain 0.3用テンプレートですが、ちょこっとやってみたら、ちゃんと動いているみたい。先の記事と同じようにMakefileを書き換えただけです。このテンプレートは、以下のリンクからダウンロードしてください。

Xcode3 iPhone Template for toolchain 0.3

テンプレートは、従来とは置き場所が変わったので、

/Developer/Library/Xcode/Project Templates/Application/

にコピーします。これで、最新バージョンでの開発体制が整うことになります。

xcode3-iphone-template.png

toolchain 0.3は最新のヘッダファイルを揃えているし、Xcode 3.0は便利な機能満載なので、これを使わない手はありませんね。後は、toolchain 0.3の簡単インストーラが登場すればイイのにね!(他人任せ)

ちなみに、従来のtoolchan 0.2用に開発していたXcode 2.0用のプロジェクトも、Makefileを書き換えるだけで、そのまま動作するようです。ヘッダ・ファイルが最新のものになっているので、多少の修正が必要になるかもしれませんね。aka.iphoneの場合は、Makefile以外の修正はナシで大丈夫でした。

当然のことながら、toolchain 0.2な人やXcode 2.xな人はこちらを使ってください。

Leopardでtoolchain 0.3

iPhoneが1.1.1、Mac OS Xが10.5となれば、iPhoneの開発環境も最新版のtoolchain 0.3でなきゃね〜ってことでセットアップしてみました。ただし、toolchain 0.2ならワンタッチ・インストーラがあるので簡単ですが、現時点では自分でtoolchain 0.3をビルドしなければなりません。軟弱者にとってはトホホです。しかも、toolchain 0.2のビルドでは丸3日間ハマリまくったので、イヤな予感(もしくはトラウマ)に満ち溢れていました。

ところが、実際には0.3のビルドは、自分でも驚くくらいスムースでした。総作業時間は3時間くらいだったので、24倍速ですね。3時間と言っても、その大半はソースコードのダウンロード(svn)とコンパイルの時間なので、ターミナルを叩いている時間はちょっとだけです。

iphone-toolchain03.jpg

具体的な手順は、HOWTO build the toolchainに載っています。Leopardでは上手く行かない箇所が2点ありましたが、Issuesにおいて既に解決済みでした。今後のアップデートによって、問題が解消するかもしれませんが、今回のトラブル・シューティングを書いておきます。

【トラブルその1】Build odcctoolsのmakeで、

..//include/libkern/machine/OSByteOrder.h:51: error: redefinition of ‘_OSSwapInt16’

などのエラーが出る。

【解決方法】ターミナルで、

export INCPRIVEXT=”-isysroot /Developer/SDKs/MacOSX10.4u.sdk”

と環境変数を設定した後、makeする。(Issue 31より)

【トラブルその2】Configure and make LLVM-GCC.の
make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svnで、

/usr/local/bin/arm-apple-darwin-ld: can’t locate file for: -ldylib1.10.5.o

というエラーが出る。

【解決方法】llvm-gcc-4.0-iphone/configureをテキスト・エディタで開き、4970行目の、

FLAGS_FOR_TARGET=

FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}

と変更し、ファイル保存した後、configureする。
さらに、ターミナルで、

export FLAGS_FOR_TARGET=”-mmacosx-version-min=10.1″

と環境変数を設定した後、makeする。(Issue 92より)

残るはMakefileの書き換えで、少々試行錯誤した結果、次のような設定でHelloWorldのビルドができるようになりました。これが必要十分にして最適解かどうかは分からないんだけどね。

CC=/usr/local/bin/arm-apple-darwin-gcc
CXX=/usr/local/bin/arm-apple-darwin-g++
CFLAGS=-fsigned-char
LDFLAGS=-lobjc -ObjC -mmacosx-version-min=10.1 -framework CoreFoundation -framework Foundation -framework UIKit -framework LayerKit -framework CoreGraphics -framework GraphicsServices -framework Celestial -framework MusicLibrary
LD=$(CC)

といったあたりで力尽きたので、今日はここまで。さらには、Xcode 3.0用のプロジェクト化なども必要ですが、そのうちね!…ってか、どなたか作ってください。

【追記】Leopardでのtoolchain 0.3の修正版ビルド方法が公開されました。上記のトラルブ・シューティング2点が反映されているようです。これが1日早く公開されてたら、私のビルド時間は1時間くらい短縮できたんじゃないかな(笑)。いずれ、大元の説明も更新されるでしょうね。

Leopardでrootを有効化

Mac OS Xはデフォルトではrootユーザ(スーパー・ユーザ)が無効になっていて、suやsudoがエラーになります。そこで、NetInfoマネージャを使ってrootを有効化するのが、これまでの定番でした(よね?) ところが、10.5にはNetInfoマネージャが存在しないんです!

それじゃどうやってrootになればイイのだぁ?とWeb検索してみると、ちゃんと方法がありました。

【解決法】ターミナルを開いて、

sudo passwd root

とタイプしてreturnキーを押す。これで、あなたのパスワード、新たに設定するrootパスワード、確認のためにもう一度rootパスワードと3回入力を求められますので、それぞれ適切に入力すれば完了です。

他にも、インストールDVDから起動して、ユーティリティ・メニューの「リセットパスワード…」を選べば、rootユーザを有効にして、パスワードを設定することができるようです(未トライ)。

いずれの方法も、随分以前から(10.0から?)あるようで、単に私が無知だっただけみたい(苦笑)。ジョーシキかもしれませんが、他にも迷っちゃう人がいるかもしれないので、書いておきました。

【追記】もうひとつの方法として、ユーティリティ・フォルダにあるディレクトリユーティリティに使って、rootパスワードの有効化ができることも分かりました。ウィンドウの左下にある「カギ」アイコンをクリックして、ユーザ・パスワードを入力すれば、編集メニューの「ルートパスワードを有効にする」が選べるようになります。同メニューには「ルートパスワードを変更…」もあります。この方法は、以前のNetInfoマネージャ風の操作ですね。

AppSnappでWeb経由で脱獄

何でもありの勝手iPhoneワールドだから、少々のことでは驚かなくなってますが(笑)、今回は久々にビックリさせていただきました。なんと、iPhoneまたはiPod touchのSafariからWebサイトにアクセスすれば、ワンタッチで脱獄(Jaibreak)できちゃうAppSnappが登場したからです。これでInstaller.appも同時に入るので、その後は勝手アプリもインストールできちゃいますね。URLは、http://jailbreakme.com/です。

セキュリティ命のWebブラウザから、デバイスの根幹に関わるような操作をしちゃうんだから、これをビックリと言わずして何て言えばいいんでしょう。少し前に問題(標的)になっていたTIFFライブラリの脆弱性も修復するそうだけど、これ自体はどんなメカニズムで動いているのかな?

アクティベーション自体は、iTunesや勝手アクティベータで行なう必要があるものの、その後はコンピュータ要らずになります。Appleは戦略的にコンピュータなしのiPhoneは思い描かないでしょうけど、これはコンピュータ無しの世界へ突入している訳です。未来ですね〜これだからiPhoneは面白い!

US特派員は既に2台とも脱獄させているので、敢えて再トライする気がないみたいです。なので、Webサイトのスクリーン・ショットを送ってもらいました。ちなみに、このサイトはiPhone/iPod touch以外からアクセスした場合は、表示が異なります。

iphone-appsnapp.png

【追記】その後、FAQページも追加されました。スクリーン・キャプチャを撮り直すのも面倒なので、各自確認してください。

【追記】そのFAQから推測するに、AppSnappもTIFFライブラリの脆弱性を利用しているみたいです。

日本初のSuperColliderオーナー

現在のSuperColliderは、フリーウェアにしてオープン・ソースですけど、かつては「商品」だったのです。と言っても、James McCartney氏がプログラミングから発送まで、内職的に手がけてたんだと思いますけどね。

商品だったおかげで顧客名簿があって、それは今も残っているそうです(エライ!)。それによると日本人(と思われる)最初のSuperCollider購入者は不祥赤松正行のようで、しかも顧客番号74番だそうです(笑)。はい、ちょっとイイ話、あるいは、単なる自慢話です。

当時は、海外口座への振り込みが面倒&手数料高額だったので、アメリカ在住の知人に頼んで購入し郵送してもらいました。届いたのはフロッピー・ディスク1枚と、100ページ程のマニュアルでした。10年程前の話ですが、ほとんど何でもダウンロード&オンライン購入できる今日とは、隔世の感がありますね。

マニュアルは(たぶん)捨てちゃったんだけど、フロッピーはあります。はい、証拠写真。

sc1-floppy-disc_m.jpg