iPhone用のカレンダーコンポーネント

iPhoneの標準のカレンダーのような見た目を作るのはちょっとめんどくさい。

探してみたら Kalというオープンソースのコンポーネントがあった。ライセンスはMITっぽい。

Kal-github

本来は「Integrating Kal into Your Project」のように、参照して使うもんだと思うけど、今回は結構カスタマイズしたいのでソースをコピーしてちまちまいじりながら使おうかと思ってる。

基本的にはインスタンスをつくって、DelegateとDataSourceを設定してあげればよし。

UITableViewDataSourceはした半分のテーブルビューを表示するために必要。

・presentingDatesFrom

ここでデータをフェッチする。DBとかにアクセスしたり、Webからデータを持ってくるときは非同期でデータを取って来るべし。データがメモリ上にロードされたら[delegate loadedDataSource:self];とかを呼び出せば良い。これを呼び出すとmarkedDatesFromがコールバックされる。

・markedDatesFrom

データがあるNSDateのアレイを返すべし。

・loadItemsFromDate

日付ごとにあるデータを作っておくべし。した半分のテーブルビュー用のデータ。

・removeAllItems

データを削除するべし。日付が変わった時とかにデータをクリアする目的で呼び出される。

という感じで、適当に実装するといいとおもう。

GCDで非同期!

iPhoneでもGCDのコードが動くのはしってたけど、オープンソースのコードをちまちま読んでたらとても便利そうなのに気づいたので、使ってみようかと思ってきた。

とりあえずスタート地点のメモ。

  • 必要ならDispatchQueを作る。僕の中でスレッドを一個つくっとくみたいなイメージでいる。dispatch_queue_t que = dispatch_queue_create(“てけとうな名前”, NULL);
  • dispatch_async(que, ^{おらおら;}
  • メインスレッドで実行したいなら dispatch_async(dispatch_get_main_queue(), ^{おらおら;}
  • キューを破棄するなら dispatch_release(eventStoreQueue);

リソースの排他は自分でやらなきゃだけど、lock unlockを何でするのがいいのかはまだ知らない。

もうちょっと勉強するわ。

dockStubz

以前、Kensingtonの神なケーブル というエントリでエクスターナルアクセサリを付けた状態でデバッグできるケーブルを紹介した。だけど、そのケーブルはすでにディスコンで日本では簡単に買えない状態だったよね。

今回 Fisica Fitnessをつくってる会社のひとから、こんなんあるよって教えてもらったやつがこれ。

dockStubz というらしい。どうやら旧iPhoneで充電ができない機器をつないだりするのに使うのが目的らしい。

僕は買ってないんだけど、Amazonで買えるみたい。

dockStubz

Garmin ConnectのAPI

まだなにもしらべてないけど、Garmin Edgeとかのデータはtcxとかいう形式のXMLデータとしてエクスポート出来るらしい。

Training Center Database XML by Garmin

Garmin Connect Web Services API

GarminConnectにはWebサービスがあるみたいだから、iPhoneから直接GarminConnectにデータをアップロードとか出来るのかも。

なんかシンビアンとかWindows Mobile用のSDKとかもある。iOS用がないのが残念。

GarminConnectがいいかどうかわからないけど、とりあえずiPhoneだけで閉じずに、なにかサービスと連結させたいと思う。

iPhone4の液晶が霞んで見える件

なんか霞んで見えるよ!

というわけでアスファルトに落としたら割れました。

—-追伸

AppleStore栄で修理しました。修理というか交換ですね。液晶の破損は軽微な破損のようで22,800円らしいです。バックパネルだけだと2800円程度で治せるらしい。ただし、その場合は本体の交換ではなくバックパネルの交換になるので時間がかかることがあるそうです。以上!

MKOverlayのRemoveがうまくいかない件

最近MKMapView で経路情報を表示するようなのをつくってるんだけど、そので色々やったけど回避できない問題があった。

MKMapView に Overlayを追加して、それを削除しても表示が消えない件。常に再現するわけではなくて、何か条件があると消えないみたい。

一番最初に追加したOverlayだけが消えないのかと思ったらそうでもないらしい。

どうもMKMapViewの地図のキャッシュになにか問題があるとおもうんだよねぇ・・

こんな感じにぼやけた画像が残る。なんぞー!

Admobさんの成果

先日のAdmobさんの結果。

確かに一定の効果があることがわかった。

AppAnnieでみると、USのオーバーオールで880くらいから442位くらいに、Music カテゴリで33位から19位にランクアップした。だけど突っ込んだ金額を pay するには相当掛かりそう。このままの販売数を15-20日位維持できなかったらダメな感じなので実質的にはマイナスの可能性もあるかな。

ちなみにこのAppAnnieというサイトはランキングをずっとログしているらしく、かなり昔のデータから見ることができる。人のアプリを見るのも楽しい。価格を変更したことや、アップデートした日付も記録されているので、それらが販売数に及ぼす影響も観測できる。

Admobに広告を打ってみる

僕は二つのアプリに広告を挿入しているんだけど、いままで広告を打つ方はやってみなかった。あまり効果的ではないと思っていたから。

でも広告で頂いたお金を広告に回すのも悪く無いと思ったので、一回打ってみることにした。

ただ、目的はAppStoreのランキングを上げること。それもUSだけをターゲットに考えている。

コンバージョン率を考えたら広告を打った以上にアプリが売れるということは考えにくい。1ドル稼ぐのに5ドル以上いるんじゃない?もっとかもしれない。

だから目的は一時的にでもダウンロード数を増やして、ランキングを押し上げること。そうなると広告を打つ期間は短いほうがいい。短期間でガッと打ってランクが上がればよし。上がらないなら突っ込み方が足りなかったってこと。ランキングは3日の移動平均ではないかと言われているので最長で3日頑張れば良いと思う。

僕の考えはそれくらい。さてさて効きますかねぇ・・ツッコむ金額は秘密!

Kensingtonの神なケーブル

さっきの Fisica とか Line6 の MIDI mobilizer とかエクスターナルアクセサリーを使ったアプリのデバッグは大変。Dockコネクタがアクセサリーで埋まっているから直接のデバッグができなくて、Printfデバッグ的なことになりがち。

ところがそんな不便なEAのデバッグをすごく便利にしてくれるケーブルがありました。

Kensington 4-in 1 car charger for ipod

カーチャージャなんだけど、Dockコネクタの反対側にメスのDockコネクタが付いてる。しかも全結線されてるらしい。

こいつのメスにFisicaとかを突き刺して、USBをMacにつなげばEAを使いながらデバグもできちゃう!すごい!

でも残念なことにすでに生産を中止しているらしいです・・・・