iPhone」カテゴリーアーカイブ

iPhone Open Application Development

「iPhone Open Application Development」なる書籍が刊行されるそうで、日本のAmazonでも予約注文できるからワン・クリック。でも、刊行予定が5月なので使えないな〜と思いながら調べてみると、出版元のO’REILIYのサイトでは、Rough Cuts版のオンライン購入ができるようになっていました。

iphone-open-application-dev.jpg

このRough Cutsでは、正式出版前の書籍をオンライン閲覧またはPDFダウンロードして、いち早く読めるとともに、読者からのフィードバックを著者が反映できることを狙っているみたいです。言うならば、書籍のベータ版ですね。Rough Cuts版から正式版へアップグレードできるのか、フィードバックは対価として評価されるのか、といった疑問もありますが、なかなか良い仕組みだと思います。

実際、この本ではJailbreakやtoolchainについて書かれていて、正式SDKが公開されると大幅に事情が異なるであろう内容が少なくないですからね。つまり、紙として出版される頃には、書籍としての価値が半減しかねないので、オンラインで素早く出版するのは読者にも筆者にも出版社にも、それぞれメリットがある訳です。

この他にもSafari Books Onlineという有料電子図書館もあって、各種オンライン・サービスが充実しています。このような出版のダイナミズムでは、日本は相当遅れを取っていますね。同じO’REILLYでも、オライリー・ジャパンには日本版のSafari Books OnlineもRough Cutsもないですしね。

それで、元に戻って「iPhone Open Application Development」の内容は、すでにWeb等で公開されている各種情報を手際良くまとめた雰囲気で、ザッと目を通した限りでは、ビックリするような事柄はないようです。だから、Webサーチの達人には新鮮味がないでしょうし、分散している情報を探し出すのに辟易している人には有り難い内容だと思います。ま、今日の書籍ってそーゆーものですね。

笑っちゃったのは、チョット見(Preview)では本当にサワリしか読めないし、お試し無料登録したSafari Books OnlineではRough Cutsが読めない(たぶん)し、結局Rough CutsのEarly Access権を$19.99で購入せざるを得なかったことです。それでようやく読めるようになった内容は、大半が知っていること(&知りたかったことは載っていない)でした〜という結果ね。O’REILLYさん、うまくやってます(苦笑)。でも、学べることもイロイロとありそうなので、損した気分じゃないですけどね。

picomemo.app登場

ホーム・スクリーンに表示できる極小のメモ、picomemo.appを公開しました。ナント、英数字なら4文字程度、日本語なら2文字のみ表示可能という前代未聞の仕様ですが、Appleデザインの素晴らしさで、とっても目立ちます。真面目なのか冗談なのか、実用的なのか無駄なのか、よく分からない感じがグッドなんじゃないかと思います(笑)。

iphone-picomemo-icon.png iphone-picomemo.jpg

この赤い部分はアプリケーション・バッチと呼ばれていて、メールの未読数表示とかにも使われていますね。数字だけでなく任意のテキストを表示できますが、画像としてのバッチはサポートされていないみたい。コードは本質的には1行だけ。selfはアプリケーションのことね。

[self setApplicationBadge:@”色即”];

当初は、Dock上のアイコンみたいにアイコンを描き変えようとしてたのですが、それなりに面倒だったり、操作性が良くなかったりして、イマイチでした。でも、これがスマートにできれば、表示できる文字数が増えるので、もうちょっとメモ(付箋)らしくなりそう。それはきっとnanomemo.appという名前になるんだろうな。

iPhoneのファクトリー・フォント

ファクトリー・イメージファクトリー・サウンドに続いて、今回はiPhoneのファクトリー・フォントです。手順は以前の記事を参考にしてもらうとして、フォントは/System/Library/Fontsフォルダにあります。Finderでもおおよその字体が確認できますが、QuickLookやFontBookを使うと尚良しですね。

iphone-factory-fonts_s.jpg

すべてのフォントのサムネール一覧はコチラ(356KB)。

明らかに日本語フォントであるのはヒラギノ角ゴシック(ProNW3とProNW6) だけみたいですが、arialuni(ArialのUnicode版)やSTHeiti/STXihei(簡易中国語)あたりでも日本語が使えそう。7セグメントLED風のDB_LCD_Temp-Black(すべてのアルファベットはない、残念)とか電話用に最適化されているらしいPhonepadTwoとかも面白い。

フォント選択用らしいUIFontChooserを使うと、こんなビューが現れます。

iphone-uifontchooser.png

コードはこれだけ。

UIFontChooser *fontChooser = [UIFontChooser sharedFontChooser];
[mainView addSubview:fontChooser];

このビューで選択可能なフォントは以下の通り。

.helvetica It mm
.times It mm
american typewriter
applegothic
arial
arial rounded mt bold
arial unicode ms
courier
courier new
db lcd temp
georgia
helvetica
helvetica neue
hiragino kaku gothic pron
lock clock
marker felf
phonepadtwo
stheiti
times new roman
trebuchet ms
verdana
zapfino

はい、お疲れさまでした。

寝た子を起こすWake-On-LAN

MaxMSP-MLのトッピックなんだけど、ネットワーク経由でスリープしているMacを起こすにはどうするの?って話が出ていました。スリープさせるのはaka.powerとudpsend/udpreceiveあたりを使えばバッチリなのですが、寝た子を起こすのはaka.powerでもできない。MaxもMacも動いていない訳ですからね。

ところが、Wake-On-LANという技術があって、特殊なパケットを送り込めばMacがスリープから目覚めるそうです。そんなこと知らなかったのでビックリしつつ、Wake550というユーティリティを使ってみたら、ちゃんとMacBookが目覚めるので、またビックリ。

そこで、Wake550が使っているPerlスクリプトを読み解いて、aka.datagramとudpsendを使って実験してみると、これまたお目覚めしてくれるので、3度目のビックリでした。Perlは使ったことがないので、間違っているかもしれないけど、取り敢えず動いています(笑)。素晴らしい〜!

wakeonlan-test.png

テスト・パッチはコレね。もちろん、MACアドレスやブロードキャスト・アドレスは、使用する機材やネットワーク環境に合わせて設定してください。Wi-Fiはダメみたいですよ。iPhoneもダメでした。
wakeonlan-testpat.zip

aka.Repository開設

このサイトはともかく、世間的にはヒッソリしていようと思っていたものの、簡単にインストールしたいとか、アプリが実行できないとか、いろいろと要望が寄せられるようになりました。なので、個人用のレポジトリを作成して公開しています。はい、http://akamatsu.org/repo.xmlです。詳しくはコチラね。

iphone-aka-repository-1.jpg iphone-aka-repository-2.jpg

要は、コンピュータナシにiPhoneだけでアプリケーションをインストールできるわけです(もちろん、Installer.appが必要ですよ)。レポジトリはXMLまたはplistファイルを書くだけなので簡単でしたけど、量が多かったので少々時間がかかっちゃいました。ただ、あと1ヵ月もしないうちに状況が変わって、レポジトリが不要になるかもね(笑)。

ところで、なぜヒッソリしたいのかと言えば、サポートをする気がないからです。真剣に取り組んでいる人には対応しますけど、ロクに状況も書かずに助けを求められても困っちゃいますからね。商品でもないし、広告や寄付を取っているわけでもないから、自己責任&自己解決が原則ですよ〜(と日本語で書いても読めない人が大半)。

サポートが大変である最大の理由は、ユーザ層が広いことでしょうね。Maxオブジェクトに比べて、iPhone関係のダウンロード数やアクセス数は2桁または3桁違いますから。つまり、100倍とか1000倍とかのオーダーなのです。それに、Maxユーザは基本的なリテラシーが高いと思うけど、iPhoneユーザは必ずしもそうじゃないだろうしね。

とにもかくにも、個人レポジトリながら公開しちゃったので、それなりに訳の分からない問い合わせが増えるんじゃないかな。牧歌的な世界の終わりと言うか、幼年期の終わりと言うか、激動の時代の始まりかもしれません。

TapTheBeat.app登場

ミュージシャン必携ツール、タップする時間間隔によってテンポを表示するBPMカウンタ、その名も懐かしのTapTheBeat.appを公開しました。四分音符、八分音符、三連八分音符、十六分音符での時間長(ミリ秒)も同時に表示されます。上下ボタンで表示するテンポを調整することも可能です。鼻歌でも歌いながら曲のテンポを確認したり、テンポに合ったディレイ・タイムを割り出したりして使ってください。

iphone-tapthebeat-icon.png iphone-tapthebeat.jpg

写真では分かりにくいかもしれませんが、このアプリのグラフィックスは必要以上にジャギー・ジャギーしています。実はコレ、元々はTapTheBeatというDA(デスク・アクセサリ)なのです。DAなんて、最早誰も知らないでしょうけど、まぁ、そーゆーものがあって、しかも、白黒(グレースケールではない)画面が一般的だった頃に、なんとかウィンドウやボタンを立体的に見せようとしていたのが、こーゆー表現でした。

これは、当時ウルトラ・モダーンだったNeXTSTEPの影響によるもので、この輝かしい後継者が現在のMac OS XおよびOS Xですね。いや〜時の流れを感じさせると言うか、巡り巡って今再びと言うか、もう演歌の世界ですね(笑)。つまり、iPhoneの源流は20年ほど前にあって、それが今日まで(きっと未来へも)滔々と流れていることになります。Knowledge Navigatorも同時期だけど、遥かに小さなデバイスとして実現されているし、バトラーみたいなプッシュ型サービスは要らないよね。

ともあれ、懐古趣味であることは承知しつつ、そんな歴史的な意味もあって化石発掘的に疑似立体GUIを再現した訳です。以前にはWebの時代だってことで、Shockwaveプラグイン版も作ったけど、今じゃ動かないしね(苦笑)。それに、違和感タップリで変なインパクトがあって、何よりグラフィックスに悩まなくて済むのは有り難い(でも、リソース取得は大変でした)。まぁ、ニヤニヤしながら楽しんでください。

LEDBanner.app登場

LEDマトリックス風のメッセージ・ディスプレイ、LEDBanner.appを公開しました。設定したメッセージを延々とスクロール表示するもので、スクリーンをタップすればテキスト入力が現れます。部屋の片隅に置いてもいいし、腕に付けたりバックルに付けたりして、薄暗いクラブで遊んでください。

iphone-ledbanner-icon.png iphone-ledbanner.jpg

英数字だけでなく日本語表示もできるし、サポートされている言語なら何でもOKなハズです。ただ、逆スクロールはしないので、アラビックな人はゴメンナサイですね。日本語や中国語なら垂直スクロールって手もあったな。

LEDっぽい光の表現がイマイチだし、フォント関係の指定が分からないままなんだけど、まぁ、こんなものでしょうってところでリリースしました。アンチ・エイリアスがかかった多階調LEDバナーってのは、ちょっとイケてませんから、なんとかしたいところですが、これまた公式SDK待ちです。って、旧作をアップデートするのは面倒なので、そのままになりそうな予感大ですけどね。

iPhoneのDock Connector

iPhoneのDock Connectorについて調べたので、備忘録として書いておきます。

iPhoneのDock Connectorのピン配列
Dock Connector @ wikiPodLinux
Apple iPod dock interface pinout @ pinouts.ru
これらのサイトはiPodのDock Connectorについての情報だけど、iPhoneでも同じハズ(?)「tried leg 28 and 27 instead of 3 4 and its not working…」という記述もアリ。どちらが正しいのかな??

汎用のDoc Connectorアダプタ
iPod Connector Style 1 @ Soarkfun
iPod Connector Style 2 @ Soarkfun
PodBreakout @ Sparkfun

iPhoneのビデオ出力
Apple コンポジット AV ケーブル @ Apple Store
Apple コンポーネント AV ケーブル @ Apple Store
Video/TV Output? @ Hackint0sh(自作)
市販の一般的な4極ミニプラグ型のAVケーブルの使用はできないらしい。

iPhoneのシリアル入出力
Iphone Serial Port Tutorial @ DevDot
Dock Connectorからはシリアル信号(Ground, Serial Ground, TX, RX)が出ている。
UARTデバイスとしてUxinの標準APIが使用できる(サンプル・コード有り)。
シリアル・ポートを初期化後に、Serial Ground(Pin 11)を500ミリ秒間隔でLOW→HIGH→LOW→HIGHと変化させるオマジナイが必要。

シリアル入出力ができるとなると、GainerやArduinoなどに接続したくなるね。理屈ではGainer上のUSB-UARTブリッジを外して、シリアル・ライン同士を直接繋げば良いハズ(?)。本題から外れるけど、ワイヤードが嫌なら、LANTRONIXのWiPortなどが使えるかも。

ハードが苦手な私としては、間隔が狭いピンにケーブル線をハンダ付けするのは、考えるだけで目眩がするんですけど、誰かこんな感じのケーブル、あるいはプラグ・アダプタを作ってくれないかな? LINE IN、LINE OUT、VIDEO OUTの3種類の端子があれば嬉しいです。

iphone-stompboxes.jpg
(Thanks to Amplitube)

Sinewave.app登場

些細なバグを潰して(それを見つけ出すのは難しい場合が多い)、まともにサイン波が鳴るようになったので、Sinewave.appとして公開しました。GUIも元祖Sinewaveに似せつつ、iPhone風に仕上げています。メーリング・リストへの元祖ポストも見つけました。なんてことをしていると、どこぞのマニアさんみたいですが(笑)、2001年オリジナル版と2008年ポーティング版とを仲良く並べて記念撮影です。

iphone-sinewave-icon.png iphone-sinewave.jpg

ともあれ、安定して動作するようになったものの、その結果は、当然のことながらサイン波です。凶暴な音が出ていたバグ入りバージョンに比べると、ちょっと気が抜けちゃいますね。ひとつのバグは安定動作させながら再現できるけど、もうひとつのバグはAPIを間違って多重呼び出ししていたので、復活させるとフリーズが再発します。うむ、困ったな〜。

【追記】書き忘れてました。iPodで音楽を流しながら、サイン波を鳴らすことができます。カラオケ・トラックを用意して、テルミンっぽく演奏してください…って、周波数がリニア・スケールなので(何故って元祖Sinewaveがそうだから)メロディをとるのは難しかもね。

Firmware 1.1.3でのaka.iphone

iPhoneをFirmware 1.1.3へアップデートされた方へaka.iphone情報。akaRemote 2.1 (aka.iphone / Experiment 2.1)は初期設定が更新されないか、最悪実行時エラーになるかも。他のアプリは大丈夫な気がします。US特派員は未アップグレードで、実際の動作確認はできていないそうで、単なる推測なんですけどね。

Firmware 1.1.3では、これまでのrootユーザではなく、mobileユーザとしてアプリケーションが実行されるそうです。初期の頃に作ったakaRemote 2.1は、直接/var/root/Library/Preferences/下にパス名を指定して初期設定(Preference)ファイルを読み書きしている(しかも、標準的なファイル名じゃない)ので、ちゃんと動作しないんじゃないかな。他のアプリは初期設定を使っていなかったり、パス指定をしないNSUserDefaultsクラスを使っているので、問題がないハズです(祈)。他にも落とし穴があるかもしれません〜大変大変。

iphone-preferences.png

ちなみに、当初はAppleが脱出経路を塞ぐのを懸念して、公式SDKが出るまでは脱獄方法を公開しないというのがiPhone Devチームの方針だったのですが、参加していた一人(?)が抜け駆けして公開しちゃったらしいです。当然のことながら、他の人からは非難囂々なんだけど、これは以前にもあった話ですよね。しかも、公開された方法はバグだらけなので、近日中に本家版を公開することになったみたいです。まぁ、真相や各自の意図までは分からない(しかも私は英語力微弱)けど、これもまた砂場ではない現実の(無茶な)世界ですね。