2008-06-21
iPhone/iPod touchアプリケーション開発者になるための高速道路 建設予定地
お知らせ
高速道路の建設予定地は iPhoneアプリ開発グループに変更になりました.今後はiPhoneアプリ開発関係の情報はiPhoneアプリ開発グループにアウトプットしていきます.
開発環境の準備
- Xcodeのインストール
- Macを買ったときに付属してきたインストールCDの2枚目に入ってます
- iPhone SDKのダウンロードページ
- Apple Developer Connectionのアカウントを取得し,iPhone SDKをダウンロードする
サンプルコードを使った演習
iPhone SDKは1.2GBぐらいあるので,ダウンロードの待ち時間中に以下の演習をこなす.
- Cocoaアプリケーションチュートリアル: Cocoaアプリケーションチュートリアルの紹介
- 簡単な通貨変換アプリケーションの開発を通じて,Xcodeの使い方,Objective-Cの概要,GUI作成ツールとMVCモデルによるCocoaアプリケーション開発の勘所をつかむ.
- Apple Developer CenterのiPhoneのサンプルコード集
- iPhoneアプリのサンプルコードを読んだり実行してみたりする
ToDo
- iPhone SDKに関する言及がどこから利用規約に抵触するのか(抵触するとされているのか)調査 ← いまここ
- テーブル形式のUIコントロールの扱いに慣れる
- HTTP Requestの発行とResponse取得方法
- XML Parserが存在するのか,存在するとしたらどうやって使うか調査
- 画像を表示するには?
はまりポイントの原因と対策
自分の作業が進み次第,随時アップデートしていこうと思います.当面のゴールは subtechでやりたいこと・抱負 - yanbe.diff - subtechで挙げたObjective-CでHello WorldからiPhone用Twitterクライアントを作るです.
任意のファイルやディレクトリが更新されたときに任意のコマンドを実行するシェルスクリプト(1行)
2008-06-20 - いぬビームにインスパイアされて作りました.statコマンドを使っているため今のところBSD系のOS(Mac含む)でしか動きませんが,BSD上でなら特に何もインストールしなくても動きます.
#!/bin/sh f="$1";c="$2";s="stat -f %m $f";t=`$s`;while [ 1 ];do if [ $t -eq `$s` ];then sleep 1;else echo `$c`;t=`$s`;fi;done
第一引数に与えられた単一のファイルまたはディレクトリが更新を監視し,更新されたタイミングで第二引数で与えたコマンドを実行します.第二引数は以下の使い方の例のように,必要に応じて二重引用符で囲って下さい.
使い方の例
スクリプトが更新されたら自動で実行する.
$ auto.sh tmp.py "python tmp.py"
Webサイトをローカルで編集し,ディレクトリの中のファイルが更新されたらrsyncで自動で同期する
$ auto.sh public_html "rsync -r public_html somehost:~"
こんな感じで割と強力なんではないかと思います.
その他考えられる利用例
- ソースコードを保存したらバックグラウンドで自動でビルドする
- ファイルが更新されたらバージョン管理ツールで自動でコミットするようにする
- ファイルが更新されたら前のバージョンとdiffを取ってどこかにアップロードする
- LiveCoding的な何かに応用する
- Remote Procedure Callみたいなこと出来ないかな
- (ToDo: 面白い使い方を考える)
*BSDではなくLinuxで同様のことを行うには?
id:scezx氏がdebian etch で同様のことを行う方法を公開されています.Linuxユーザの方はこちらをご参照ください.
debian系OSでもstatコマンドは存在するのですが,(ファイルの各種情報を取得する)statコマンドのフォーマット指定オプションがBSD系とは異なるため,それを変更すれば動くようです.
本エントリを書く直前に,Solaris9標準付属のコマンドで、ファイルの変更日時を秒まで取得.. - 人力検索はてなにある
*BSDのstatコマンドのようなものがあるならともかく、
という記述を読んでいたので,てっきりstatが*BSD固有のコマンドだと思っていました.
BSDで同様のことをもっとスマートにやるには?
コメント欄でid:cavorite氏にご指摘していただいたwait_onを使って同様のことを行う方法をid:hot_coffee氏が解説されているのでご参照ください.
シェルの組み込み関数を使う
tcshで同様のことを行う方法が公開されています.
- 4n0+h3r p13c35 - auto.sh
- iPhone向けアプリケーションの開発を始める そ...
- src’s note - 気になる技術メモ
- WEB開発日記 - iPhone/iPod touchアプリケーション開...
- [Mac]巡回
- hot_coffeeの日記 - wait_onを眺めてみる
- yanbe.diff - iPhoneアプリ開発者のための高速道路...
- src’s note - 気になる技術メモ
- yanbe.diff - 高速道路を一人で建設するのは大変...
- もとまかのiPhone・iPod touch戯れ日記 - iPhoneSDKのN...
- もとまかのiPhone・iPod touch戯れ日記 - iPhoneアプ...
- iPod touch アプリ開発日記 - iPod touch で アプリ開...
- もとまかのiPhone・iPod touch戯れ日記 - カテゴリ...
- シック疾駆&跋扈バコ
- シック疾駆&跋扈バコ - perlさ書いてるんすけ...
fileschanged: http://savannah.nongnu.org/projects/fileschanged/
wait_on: http://www.freebsdsoftware.org/sysutils/wait_on.html
なるほどこういうものがあるのですね.参考になりました.ただ,今私が使っているMac OSXだと(*BSDなのに)標準ではインストールされないようです.Ubuntu 8.04でも同様でした.
これらのツールはポーリングしない分,明らかにパフォーマンスが高そうですし正しいアプローチだと思います.将来,大量のファイルのモニタリングが必要になった場合はこういったツールを使おうと思います.
・Appleの方針が明らかになるまでは,自分で書いたiPhone SDKを使ったソースコードやバイナリは,たとえ部分的であっても公開しない
・非公開の(具体的にはApple Developer Networkでログインしないと得られない)情報をここで書かない(リンクを貼るのはOK)
この2つのポイントに注意すれば問題ないと判断しました.
http://japan.zdnet.com/sp/feature/07leopard/story/0,3800081890,20360956-3,00.htm