2010年4月 8日
iPhone SDK 2.2 その後
一昨日の日記のその後です。iPadシミュレータで起動しない件ですが、アクティブSDKをiPhone OS 3.2にしたら、あっけなく起動しました。この状態で、iPhone OS 3.2未満のiPhoneでちゃんと起動するんですかね? だったらこのままにしちゃっても良いかも。
ただ、起動するとはいえ、iPadの中でiPhoneサイズのアプリが立ち上がるだけなので、あまり面白くありません(^^;) せめて、ちゃんとiPadの画面サイズに引き伸ばされた状態で起動して欲しいです。画面サイズに依存するようなコードは書いていないので、それほど難しくないはず・・・と思って、ちょっとだけチャレンジしてみました。
私のアプリはNavigation Basedなのですが、SDK 3.2で新たに新規プロジェクトを作ってみたところ、iPad用のコードは含まれていませんでした。Navigation BasedはiPadでは推奨されないんですかね? 仕方ないのでWindow Basedで作ってみたところ、両方に対応していました。
ドキュメント類はまだ一切読んでいませんが、ソースを見た限り、単純にiPhone用とiPad用のxibファイルがあって、使い分けているだけのようです。でも既存のiPhoneアプリをこのやり方でiPad対応するのは面倒なので、今はなんとか引き伸ばし表示するだけに留めたいです。
最初はプログラムからウィンドウのサイズを画面サイズに変えたりしてみたのですが、どうやってもうまくいきません。そうなるとだぶんInfo.plistだろうと思って調べると「Main nib file base name」のiPad用がありました。これを既存のアプリのほうにも作成して、iPhone用と同じxibファイルを指定したところ、ちゃんとiPadでも引き伸ばし表示ができるようになりました。
たったこれだけで、基本的にはちゃんと動作しています。ただ、768x1024の画面は思った以上に広大で、iPhoneと同じデザインだと明らかに見た目が不自然です。正式にiPadに対応するときは、やはりiPadらしい画面を用意しないといけないかもしれませんね。
まだ他に何かあるかもしれないので、また暇を見つけて、今度はちゃんとドキュメントを読んでみたいと思います(^^;)
2010年4月 6日
iPhone SDK 2.2
iPhone SDK 2.2の正式版が出たようなので、とりあえずサブマシン(MacBook)に入れてみました。今回はiPad対応ということで、ちょっと楽しみにしていました。仕事で作ったアプリをすぐiPadに対応する予定はないけど、とりあえずシミュレータをいじってみたかったのです(^^;)
ただ、自作のアプリをそのまま起動しようとしたら、起動すらしませんでした。まだ何も調べてないけど、何かやらなくちゃならないのでしょうか? まあ、時間ができたらやってみたいと思います。
iPad本体を買うかどうかは、まだ決めあぐねています。少なくとも、宣伝のように信じられない
ほど安い価格ではないみたいだし(笑) つーか、$499からって普通だよね・・・。
関連リンク
・iPhone SDK 2.2 その後 (2010年04月08日)
2010年3月24日
プログラマのための文字コード技術入門
Amazonを眺めていて見つけた「プログラマのための文字コード技術入門」という本を買いました。この手の本は昔から何か1つ欲しいと思っていたのですが、内容が古いものが多く、これまで機会がありませんでした。この本は出たばかりで、おそらく最新の内容だと思うので即決しました。
まだ中身は全く読んでいませんが、小さい本(A5判)で読みやすそうです。技術書は大きな本が多いけど、私はこのくらいが好きですね。
2010年3月 1日
ビデオ管理データベース 再び
一昨年12/20の日記のその後です。あれから何も修正せず使い続けていたお手製のビデオ管理データベースですが、最近仕事でPHPを使ったついでに(頭がPHPに慣れてるうちに)若干改良しました。自分しか使わないアプリでURLも秘密なのに毎回ログインしなくちゃならないのは非常に面倒なので、クッキーにログイン情報を保存して自動ログインできるようにしました。
PHPでクッキーを扱うのは至極簡単なのですが、念のためパスワードは暗号化するようにしました。ただ、このアプリのログイン情報はデータベース(MySQL)のログイン情報なので(ログインする先はあくまでDB)可逆暗号でなくてはなりません。
最初はPHPのmcrypt系の関数でやろうと思って作ったのですが、なんとうちのレンタルサーバでは使えないことが判明。そういうこともあるんですね。仕方ないのでネットで見つけたCrypt_Blowfishというライブラリを使いました。mcryptが色々と面倒なのに、このCrypt_Blowfishは凄く簡単。あっという間に実装できました。でも暗号自体の評判はよく分からないのが若干不安です。これって仕事でも使えるレベルのものなんですかね?
まあ、今回の用途には(非公開アプリのブラウザ内データだし)平文じゃなきゃなんでもいいんですけどね(^^;)
2010年1月26日
仕事でPHP
仕事で作っているiPhoneアプリのサーバ側のソフトをPHPで書いています。今まで個人的に使うためのWebアプリで使ったことはありますが、仕事でPHPは初めてです。これで履歴書とかの過去の実績にPHPも書けますね(^^;)
作っているのはGUIもない、簡単なファイル管理のプログラムなのですが、改めて、PHPは楽だなと思いました。大規模な開発には向かないのかもしれないけど、何よりネットに情報が多いし、ちょっとしたものを短期間で作るには本当に便利ですね。なぜか好き嫌いの分かれる言語みたいだけど、私はかなり気に入っています。今後も積極的に使っていきたいです。
2010年1月15日
iPhone ゲーム開発ワークショップ
「iPhone ゲーム開発ワークショップ」という本を買いました。最初はOpenGLとかそっち系の本を探していたのですが、中身を見ていたらRendezvous(今はBonjourって言う?)について書かれているページがあったので、これにしました。実は以前から興味がありました。
最近iPhone本をたくさん買っていますが、やはり書籍は手っ取り早くて良いですね。ネットにも情報はたくさんあるし、アップルのドキュメントも分かりにくいわけではないのですが、書き手の、なんていうかサービス精神に差があるように思います。媒体としてネットが本に劣るわけでは決してないのですが、やはりお金を取るという前提で書かれているものは違いますよね。
ちなみに、今のところゲームを作ったりする予定はありません(^^;)
2010年1月 9日
仕事中に音楽は効果的か
最近「仕事中にヘッドフォンで音楽を聴くのはアリか?」という議論をあちこちで見かけます。どうもスラッシュドットの記事が発端らしいのですが、いろんな人の意見を興味深く眺めています。
私は会社勤めをしなくなってから10年以上たつので最近のことは分かりませんが、当時所属していた会社(比較的おカタイ仕事が多いSIer企業)でも、ヘッドフォンで音楽を聞きながら作業している人は結構いました。ちょうどPCがCD-ROMを搭載するようになった時期で、手軽に聴けるようになったという理由もあるのかもしれません。リーダー格の人が率先して始めて、すぐに広まったように記憶しています。私も安いDiscman(ソニーのポータブルCDプレイヤー)を会社に置きっ放しにして、たまに聴いていました。
また、フリーになってすぐの頃、週に2〜3回出入りしていた小さなソフトハウスでは、就業時間中ずっとFMラジオがかかっていました。言葉がやっと聞き取れるくらいの小音量でしたが、リラックスしたムードに包まれて、なかなか良かったように思います。少なくとも、邪魔に思ったことはありません。
今は一人なのでヘッドフォンを使うことはありませんが、テレビ、ラジオ、音楽と、その時の気分で適当に流しています。最近は、動画サイトで音だけ聴いている時もありますね(^^;) 何もかけない時間は全体の半分くらいでしょうか。
ソフト開発という仕事は手間暇のかかる単純作業が少なからずあるので、気を紛らわせて長時間がんばるためにも、こういうのが効果的だと思います。特に一人だと孤独ですしね。実際、ロックとかかけてると、退屈な作業もノリノリでやれてしまうことが確実にあります(^^;) モチベーションの維持にも役立ちますね。
IT業界以外の会社は全く経験ありませんが、普通の事務職でそれをやっているというのは確かに想像できませんね。やはりクリエイティブな仕事ならではの習慣なのでしょうか。そうでなくても、日本人は他人の目を気にする人が多いので、なかなか変われないのかもしれません。
2010年1月 8日
iPhoneアプリ ネットワーク+GPS プログラミング
「iPhoneアプリ ネットワーク+GPS プログラミング」という本を見つけたので買ってみました。内容はまだ分かりませんが、これはきっと役に立つこともあるでしょう。入門書はもう十分なので、今後はこういう専門的な本が増えていって欲しいですね。
仕事で作っているiPhoneアプリも8割方完成しました。SDKのリリース後、かなりたってから始めたおかげで、書籍も情報も豊富で比較的苦労が少なかったように思います。ただ、やはり新しいプラットフォームを学ぶには、仕事でやらないとだめですね(^^;) 仕事じゃなければ、ここまでの時間をかけられません。そういう意味では今回、iPhone開発に取り組めたのはラッキーだったなと思っています。
2010年1月 4日
iPhone Core Audioプログラミング
本屋に行ったら「iPhone Core Audioプログラミング」という本があったので買ってきました。この本、以前Amazonで見つけて、そのうち買おうと思っていました。仕事で使う機会があるかどうかは微妙ですが、もともと興味がある分野だし、iPhoneだけでなくMac OS Xの開発にも通用するので、持っていても損はないと判断しました。なにより、この手のピンポイントな技術書は買っておかないと、のちのち手に入らなくなる可能性が高いですからね(^^;)
ざっと眺めてみましたが、iPhone OS 3.0ではiPhone内の音楽ライブラリ(ビデオは除く)にもアクセスできるようになったんですね。知りませんでした。以前、iPod touchを買ったときにも書いたけど、Podcast(ラジオ)みたいに1曲が長いものはiPhoneのスライダーを使ったインターフェイスでは早送りが面倒なので、そういうのに適したプレイヤーが欲しいとずっと思っていました。10秒とか30秒とか、ボタンで飛ばしたり戻したりできるようなものが良いんですが、探せば既にあるかな?
2009年12月 9日
技術書を2冊購入
最近、Amazonを眺めていると、過去に定番と言われたプログラミング関連の技術書が長く売り切れ状態になっているのが目立ちます。特にC++本に顕著で、そのうち買おうと思っていた本が買えなくなってきています。高い本は躊躇してしまって、なかなか買えないんですよね(^^;)
この手の本はしばらく待っていると復活することも多いのですが、思い立ったが何とやらということで、2冊ほど買ってみました。家にはまだ買って読んでない本もたくさん積んであるんだけど、普段から月に1冊くらいは技術書を買おうと思っているので良しとしましょう。モノは「Effective C++ 第3版」と「C言語による最新アルゴリズム事典」です。
前者は評判が良いのでずっと読んでみたいと思っていました。後者はかなり昔からある本なので、とても最新
とは言えない感じですが、私はプログラミングは完全に独学で、アルゴリズムとか、そういった教科書的なジャンルには少しうといので、ちょうど良い内容です。でもまあ、もうこの本に載っているような面倒な処理を自分で作ったりはしないかなぁ。
2009年12月 7日
iPhone開発 その後
仕事で始めたiPhoneアプリの開発ですが、だんだん全体像が見えてきました。具体的なことは書けませんが、最近かなり楽しくなってきています(^^;) Objective-Cの変態的な文法にも慣れたし(笑)やはり実際に実機で動くものができると満足感が違いますね。
Cocoaは昔、Mac OS Xアプリ開発のための入門書を読んだことがあるくらいで、本格的に使うのは今回が初めてです。予備知識はあったつもりですが、実際に開発してみると、いろんなことが本当に楽にできますね。特にファイルとかバイナリデータとかの扱いはあっけないくらい簡単で、PHPのようないわゆる軽量言語よりも開発しやすいように感じました。もうMac OS Xアプリの開発も、Carbonには戻れないかもしれません(^^;)
まあ、Cocoaについてはまだまだ全てを理解したとは言い難いレベルですが、とりあえず今回のアプリで必要なGUIの開発には目処が立ちました。今回のアプリは2Dの画像処理があるので、そこはCarbonと同じような開発になりそうですが、Core Graphicsは多少、経験があるので時間の問題です。あとはコツコツと作り込むのみ。
2009年11月 6日
iPhone Developer Program 加入
本格的にiPhoneアプリの開発をスタートしたので、iPhone Developer Programに加入しました。私個人の名前でアプリを配布する予定はありませんが、加入しないと実機でのテストができませんからね。まあ、開発ツールが無料なので、年間1万円くらいなら全然OKです。
とりあえず適当なテスト用アプリを作って、実機で動作させるところまではできました。手順はいろいろと面倒だけど、できてしまえばあっけないですね。実際のテスト作業はiPhoneではなく、主にiPod touchでやろうと思っています。
2009年10月14日
WeblocToURLのSnow Leopardでの動作について その2
9日の日記のその後です。あれから暇を見つけては調べているのですが、まだ原因が分かりません。分からないというか、これはOS側の問題で私のプログラムのせいじゃないのではないかという思いが日に日に強まっています(^^;)
根拠もなくそう言っているわけではありません。実は、同じような現象が出るアプリケーションが、他にもたくさんあるのです。例えばバイナリエディタのHexEditや、テキストエディタのmi、KEdit等で試しても、やはりブラウザで開かれてしまいます。.webloc以外のファイルは正常に開けるので、Finderがイベントを横取りしてしまっているのかもしれません。
また、おかしくなるのはFinder上のアイコンにドラッグ&ドロップした場合(コンテクストメニュー含む)で、Dock上のアイコンにドラッグ&ドロップした場合は問題ありません。したがってWeblocToURLの場合も、アイコンをDockに登録しておいて、そこにドラッグ&ドロップすれば、正常に使用できます。
もしFinderの問題だとすれば、こちらで対処するのはかなり難しくなりますが、明らかにおかしな動作なので、今後OSのバージョンアップで修正される可能性はあるかもしれません。
ちなみに、発生条件として1つ面白いことに気づきました。ブラウザで.weblocファイルを作成すると、そのファイルには'drag'リソース(128番)が含まれています。これをリソースエディタで削除すると、なんと正常に開けるようになるのです。このリソースが何らかの影響を与えているのかもしれません。これって何のためのリソースなんですかね?
2009年10月 9日
WeblocToURLのSnow Leopardでの動作について
拙作WeblocToURLのMac OS X 10.6 Snow Leopard上での動作に問題があるようです。.weblocファイルをWeblocToURLのアイコンにドラッグ&ドロップ(またはコンテクストメニュー経由で実行)しても正常に動作せず、.weblocファイルが割り当てられたアプリ(普通はSafariなどブラウザ)で開かれてしまうという現象です。(オープンダイアログから開けばOK)
まだ原因は分からないのですが、ざっと調べてみたところ、WeblocToURLが起動された後FinderからAppleEventが送られてきていないか、WeblocToURLが正常に受け取れていないようです。アプリは起動されるのですが、kAEOpenApplicationもkAEOpenDocumentsも受け取れないので、WeblocToURLは起動したままアイドル状態になってしまいます。
先日のScrubDelete Xの不具合もそうでしたが、10.6はCarbonアプリの互換性がだいぶ失われてきているようですね。たぶん、私のプログラムに何か古いやり方をしている部分があって、それが問題になっているのではないかと思いますが、こんな小さなアプリはさっさとCocoaで作り直したほうが早いかもしれませんね(^^;)
なお、ユーザーさんからの報告によるとSafari 4をインストールした10.5でも発生しているようです。私のほうでは未確認ですが、OSではなくSafariがバージョン4になったことによって発生する問題なのかもしれません。
関連リンク
・WeblocToURLのSnow Leopardでの動作について その2 (2009年10月14日)
2009年9月30日
詳解 Objective-C 2.0
本格的にiPhone向けアプリケーションの開発をやることになったので、Objective-Cの本を購入しました。定番(たぶん)の「詳解 Objective-C 2.0」です。実は買ったのはだいぶ前なのですが、まだ全く読んでいません(^^;) ざっと読んで、あとはリファレンスとして使っていきたいと思っています。
ついでにiPhone本も1冊買いました。以前購入した本が思ったよりあっさりしていたので、今度は「基礎からのiPhone SDK」というのを買ってみました。例によってネットで選んだので内容はまだ分かりませんが、少し読んでみた限り、ひととおり網羅してそうです。
それにしても、いつのまにかiPhone開発の本がやたらと増えましたね。Amazonで買ったら、おすすめ商品にたくさん追加されてしまいました(^^;)
2009年9月28日
Xcode 3.2と古いMac OS X SDK
メインマシンをMac OS X 10.6 Snow Leopardにした際に、最新のiPhone SDKとXcode 3.2をインストールしました。しかし、例によってそのパッケージにはMac OS X 10.3以前のSDKが含まれていませんでした。私が仕事で開発しているプロダクトの多くはまだ10.3を動作保証しているので、メインマシンでビルドできないと何かと面倒です。
ネットで調べたところ、手動でインストールすれば使えることが分かりました。日本語の情報があまりなかったので、メモがわりにざっと書いておきたいと思います。試行錯誤したせいで細かい手順は忘れてしまいましたが、ポイントは以下の3点だと思います。
- MacOSX10.2.8.sdkとMacOSX10.3.9.sdkは古い環境からコピーするか、古いXcodeのパッケージから再インストールする
- GCC 3.3を古いパッケージから再インストールする(必ず起動ボリュームのルートへ)
- 古い環境から"/Developer/Library/Xcode/Plug-ins/GCC 3.3.xcplugin"をコピーする
更にMacOSX10.2.8.sdkは、以前Xcode 3をインストールした時に書いた対応も必要だと思います。今回は古い環境からそのままコピーしてきたので、これは対応済みでした。
なお、MacOSX10.2.8.sdkとMacOSX10.3.9.sdkはGCC 4.0では正常にコンパイルできませんでした。エラーが出ます。以前は(少なくともMacOSX10.3.9.sdkは)4.0でコンパイルできたのですが、Intelマシンだからですかね。まあ、3.3でも問題ないので、そちらを使うことにしました。
また、GCC 3.3でコンパイルしても、1つだけ以下のような警告が残りました。無視しても良さそうですが、消せるようなら消したいですね。まだ追求していません。
ちなみに、CodeWarrior 9.0とResorcererもMac OS X 10.6でちゃんと動作しました。うちにはまだまだMac OS 9をサポートしているプロダクトもありますから、これも大事です(^^;)
2009年6月29日
MacOSX10.3.9.sdkの動作環境
以前、仕事で作ったアプリケーションが、一部のMac OS X 10.3環境で起動しないという連絡があり調査したところ、今まで知らなかった事実が分かりました。そのOSは10.3.2だったのですが、どうやらそのバージョンでは、XcodeのMacOSX10.3.9.sdkを使用して作成したアプリは起動しないようです。
まあ、SDKの名前にちゃんと10.3.9と入っているわけですから、それより古いバージョンで動かないのは当たり前だと言われても仕方ありませんが、まさか起動すらしないとは思いませんでした。どうやらlibgcc_s.1.dylibというファイルが存在しないのが原因のようです。細かいバージョンアップでも意外と大きな変更があるんですね。
具体的にどのバージョンから動くのかは確認していませんが、テストにも限界がありますし、今後は動作環境には10.3.9、10.4.11、10.5以降
みたいに、ちゃんとそれぞれの最終バージョンを書いて対応するしかないですね。
ネットに繋がっていないコンピュータは、ソフトウェアアップデートを行うのが面倒なので、ユーザー側にはこういった古い環境が意外と残っているのかもしれません。特に、特定の業務のみで使っているマシンには多いでしょうね。どこまでサポートすべきか、なかなか難しいところです。
2009年4月13日
iPhone SDK プログラミングガイド
「iPhone SDK プログラミングガイド」という本を買いました。iPhoneのプログラミング本は以前から何か買おうと思っていたのですが、在庫がなかったりしてなかなか機会がありませんでした。今日たまたま本屋でこの本を見つけて衝動買いです。どうやら先月末に出たばかりの本みたいですね。
まあ正直、iPhone開発へのモチベーションは低いままなので、こういうのを読めば少しはやる気になるかもしれないという期待もありました。あとは、メインマシン(Power Mac G5)で開発できないのもネックなのかなぁ。
2009年1月18日
WeblocToURL 機能追加 その後
4日の日記のその後です。あれから少しずつ開発を進めていますが、とりあえず逆変換と、元ファイルを残す機能は実装できました。あとは設定画面を作るだけです。
なお、前回予告した内容に加えて、もう1点設定項目を追加することにしました。WeblocファイルからURLファイルに変換するときに、元ファイルにあるリソースデータ(Mac特有のデータ)を残すかどうか選択できるようにします。
以前は元ファイルを上書きで変換していたので、これらのデータも残りましたが、これがあるとファイルをWindowsに移動した際に余計なファイル(元がSample.urlだったら._Sample.urlという名前のファイル)ができてしまうのです。これはWindowsではまったく不要なファイルなので、以前のバージョンからそうしておくべきだったかもしれません。
2009年1月 4日
WeblocToURL 機能追加を検討
拙作フリーウェア WeblocToURLの機能追加を検討しています。ユーザーの方から要望のコメントをいただいて、やる気になりました(^^;) 以前いただいた別の要望も長いこと放置したままですしね。
具体的には、以下の機能を追加する予定です。
- URLファイルからWeblocファイルへ逆変換できるようにする
- 設定画面を作って、ファイルを新規に作成するか上書きで変換するかを選択できるようにする
仕様で1つ悩んでいるのは、設定画面をどうやって出すか。このアプリは起動したときにファイルオープンダイアログを出すようにしてしまったので、Commandキーか何かを押した状態で起動した場合のみ設定画面を出すようにしようかと考えています。
フリーウェアに関しては最近なかなかモチベーションが維持できず、やると言っておいてやらないことが少なくないですが、今回はやります。まあ、たいした追加機能じゃないんですけどね(^^;)
関連リンク
・WeblocToURL 機能追加 その後 (2009年01月18日)