近頃は行楽日和

iPhoneアプリケーションにデジタル署名を入れるときに必要な公開鍵と秘密鍵をうっかり削除して無くしちゃったよーん、X codeがエラーになっちまって非常に困ったよーん、証明書登録の手続きってし直せるんスカ?的な、相当インチキくさい英語でアップルの開発サポートに泣きを入れたわけですが、2日ほどたってその返事が丁寧な日本語で来たのでよく読んでみたところ、何のことはない開発者用サイトの管理のページで証明書とプロビジョニングファイルを全部無効(Revokeボタンをクリックだッ!)にしてやると、再びRequest Certificateできるようになるので、ゼロから作り直した証明書要求ファイルをアップロードすれば新しい証明書とプロビジョニングファイルがダウンロードできるようになったのでございました。もしかすると開発者用のドキュメントにちゃんと書いてあるのかも知れないけど分量あるし英語だしなかなか大変なんですよね(と言い訳してみる)。

しかしそれにつけても、iPhone Developer Programに登録してから、名前や住所の文字化け直してもらったり口座情報が入力できなかったり挙げ句の果てには自分で鍵を無くしたりして、すでに1ヶ月ぐらい経過しているわけですが、すでに出来上がっているアプリケーションを未だにアップロードするに至っておりません。なかなかの苦行です。

iPhone OS 3.1.2

自分の持っているiPhoneのOSを、公開されたばかりの 3.1.2 にアップデートしてみました。何が変わったか本当に判りません。プラシーボ効果とかはこれから起きると思います。

さて、XcodeとiPhone SDKのバージョンを上げるついでに、要るファイルと要らないファイルを整理していたところ、iPhoneのアプリケーション開発で必要な開発者の公開鍵と秘密鍵を、間違ってサクっと消してしまい、その余波で実機で自作アプリが実行できなくなっちゃいました。

これはちゃんと復旧できるんでしょうか〜。ただいまアップルのサポートに、頑張って英作文してメールで連絡してその回答待ちです。これを見せしめに、iPhoneアプリ開発者の皆さんはキーチェインアクセスにある自分の名前の公開鍵と秘密鍵は消えてあたふたする前にバックアップしておいた方がいいですよ。

それにしても、iPhoneアプリの開発は細かいところで罠がいっぱいです。英語のドキュメントをちゃんと読みこなしていないだけかもしれないけど、日本人の開発者が面白そうとか儲かりそうとか言ってちょっとやってみようなんてちょろっと動かすような敷居の低さになっているかと言うと、実際のところちょっと疑問です。ディープな趣味とか新興宗教の苦行としてなら許せるかも知れませんが(コラコラ)。

電卓の演算優先度も侮りが足し

高い電卓は入力したもの全部記憶してる予感が漂う。

100円ショップで買ったチープな電卓では「1+2×3+4×5=」と打つと「65」と表示されるので、打った順に評価してるんだぁと高を括って自分の電卓プログラムを作っていたところ、気になってWindowsの電卓とiPhoneの電卓でも同じように「1+2×3+4×5=」を打ってみたら、…ッ!、こっちは「27」と表示されました。エエ~

WindowsとiPhoneの電卓はOSのオマケなのに算数出来過ぎです。そろそろ、天高く馬肥ゆる、妥協の季節がやって来ました。

電卓侮りが足し

試しにiPhoneアプリを開発ということで、16進数電卓を作り始めました。

まぁこれなら簡単かもと思って作り始めたところ、ビューにボタンを配置してクラスのメソッドにアクションを接続して、いざ計算部分を作り始めたところ…。ひ~、これって実はかなり面倒くさいですよ。まじめにやろうとすればするだけはまっていくような気さえします。

苦労しつつ一通り四則演算ができるようになったので、今度はiPhoneの標準アプリにある計算機とカシオの太陽電池で動く安い電卓と、そこに自分が作った電卓を並べてそれぞれ同じ値になるか確認するわけですが…、1+1=は大丈夫。1+2+3=も大丈夫。1+2+3===も大丈夫。1+2+3=4=。あれ、違う…。その後、1+2+3+CLR=とか色々なコンビネーションを試してみたところ、標準アプリとカシオ電卓は大体同じ動作をするけど、自分が作った電卓は微妙なところで同じにならないパターンが結構ありました。なにかそもそも仕組みが違うみたい。

そもそもが有限オートマトンな動作モデルなのに、やっぱり設計もしないで適当に作ったら、そりゃぁやっぱり駄目かなーということで、ここまで3日ぐらいかかって書いた計算処理を捨てて(趣味でやってるだけにこの辺の勢いが強気)、土日ほとんど使って、状態遷移図と状態遷移表を書いてそれぞれ必要な処理を埋めて、そこからガリガリと新しい計算処理を作り直しました。もっとも、ここまでやっても完全に同じ振る舞いをしないけど、もうそれはレアなパターンだからこの際無視しようかと思います。

自作したiPhoneアプリの図

基本的なところはできたので次に設定画面に着手したわけですが、これがまたメイン画面のビューから設定変更のビューに切り替えるのも勝手がわからない。標準アプリの設定画面でやってるようなテーブルの行選択っぽいUIって画面デザインツールでは全てをサポートしていない事も発覚したので、SDKのサンプルを見つつ強引に作ってみました。これが正解って気が全然しません。残っている最後の関門は、計算結果のコピーとペーストですがこれはどうやらカスタムなUILabelを作らねばならないようです。面倒くさい…。

と、ここまでを全部できれば電卓としての目標はほとんど達成ですが、結局、作り始めてからすでに10日とか軽くかかってます。これがもし仕事だったら全然ペイしない予感です。