ひげろぐ

技術者として仕事人としての思うところや覚え書きやらです
Home      Profile      Works     
2010-08-04

iPadアプリ出しました『温泉探索地図』

iPhoneアプリとして出していた『温泉探索地図』をiPad対応させました。

えー、酒代にするので買ってください。よろしくお願いします。
iPad/iPhoneのユニバーサルアプリになっているのでひとつのアプリで両方で使えてお得です。

両対応する作業はiPad独自のSplitViewControllerやPopoverControllerの勝手がわかればそれほど大変でもなかった。
その他の処理はiPadの場合とiPhoneの場合で条件分岐するコードをちょっと埋めたくらいで問題なく。

しかし今回は審査にけっこう時間がかかった。
7/24に提出して、In Reviewになったのが7/31、Ready for Saleになったのが8/3。
10日以上かかっている。
スケジュールに合わせて出そうとするなら、リジェクトされる可能性も考えるとずいぶん時間を見ておかないと心配だ。
自分の場合はいつ出てもでなくても大して問題はないが、何かのキャンペーンに合わせてアプリを出したりとかしようとすると大変だろうなあ。

2010-07-22

iOS開発で遭遇した謎のエラーたち

メモをあげておく。
基本をちゃんと理解してれば謎ではないんでしょうが。

unrecognized selector sent to instance hogehogeっつってるけど
  • 定義されてないメソッド、またはinterfaceで公開されてないメソッドを使った
  • 対象のオブジェクトを使った覚えがない場合はポインタが意図してないアドレスを見てる

後者はメモリ周りで以下のように適当にやってると起こる。

  • まだ使われているオブジェクトを解放してるかもしれない releaseしすぎ
  • またはautorelease対象を解放してるかもしれない releaseしすぎ

プロパティへの代入はセッターでretainされてるかされてないかちゃんと意識すること。

error: expected specifier-qualifier-list before ‘HogeController’
  • クラスが見つからないようだ
  • フレームワークとか他のクラスのヘッダファイルとかインポートし忘れてないか確認
  • 忘れてないのにアレだったら@classを使うとなんとかなるかもしれない

@classが必要なケースはいろいろとインポートしていて順序の前後関係がごちゃごちゃしている時?
よくわからず。

ユニバーサルプロジェクトがiPhoneで動いてくれません
  • 「データフォーマッタが一時的に使用できなくなっています。」って言われてもなんのことだか
  • UIKitをWeak LinkingにするとかNSClassFromStringを使うとかして解決
  • 参考:http://useyourloaf.com/blog/2010/6/21/symbol-not-found-errors-in-universal-apps.html
  • 参考:http://d.hatena.ne.jp/KishikawaKatsumi/20100625/1277476249
何も言わずに止まりやがる
  • コントローラのViewを作り忘れてるのにそれにaddSubviewとかいけませんよね
2010-06-29

iOS開発 2010年6月終わり頃の記録

土日にいろいろやったので記憶の定着をかねてメモっておきますよ。

画像を回転させる
  • SDK 4.0からは既存のUIImageからCGImageを取得して、そこから回転を指定した新しいUIImageが作れる
  • でも今3.2なのでめんどくさいから回転した画像を別途作った
ナビゲーションバーに複数ボタン
  • 普通にやると右と左に一個ずつ(合計二個)しか作れない
  • ツールバーにまとめて、そのツールバーをもとにしたUIBarButtonItemを作るかんじ
  • 参考:Osmorphis: Multiple Buttons on a Navigation Bar
ボタンの見た目を画像に
Safariで開く
  • openURLしたらSafariで開く。超簡単。
標準のマップアプリで開く
  • Google MapのURLを指定してopenURLした時にマップアプリがインストールされていればマップアプリが開く
  • シミュレータにはマップアプリが入ってないのでSafariでGoogle Mapが開く
  • 開いた後にマーカーをたてるにはq=で場所の名前も指定する必要あり ちゃんとURLエンコードする
  • 参考:Launching Other Apps within an iPhone Application
  • 参考:「Custom URL Schemes」でぐぐれ
テーブルのセルの追加と削除時にアニメーション
iPadでボタンからActionSheetが出ているように表示する方法
  • showFromBarButtonItemとかいうメソッドがあるのでそれを使う
アクティビティインジケータの表示

開発の近況としてはだいぶ慣れてきて分からないことにも推測が働くので結構楽になってきた。
あと基本的なことは本家のリファレンスを見ることでだいたい解決できるようになってきたけど、手の込んだことはやはり先人たちの知恵を借りると目から鱗が落ちることがしばしば。

それから残念なこととしては少し前にTDDのエントリ出したけどOCUnit使いにくすぎるので結局あんまりやってない始末。
なんかいいテスティングフレームワークないんですかね。

copyright brass.to | powered by WordPress ME