第3回iphone_dev_jp 東京iPhone/Mac勉強会で発表しました。

2012/7/21 に開かれた、第3回iphone_dev_jp 東京iPhone/Mac勉強会で発表させて頂きました。
第3回iphone_dev_jp 東京iPhone/Mac勉強会 : ATND
先回岸川さんと、藤川さんたちにあった時に、リモートでアメリカから話したら面白いじゃないってことでやってみたのですが、どうも音が切れ気味だったみたいですね。資料などをここにおいていおきますね。
“第3回iphone_dev_jp 東京iPhone/Mac勉強会で発表しました。” の続きを読む

Instrumentでリークした様に見えなくてもリークしているのを調べる方法

Instruments は、Leakを調べられて便利ですが、blocksで、viewのivarを変更してリークしたときなどには、リークしてても、リークとでないことが多いです。それで以前はリークしていないと安心することもありました。でも、やはり、blocks+ARCの事例は、リークが多いので、気をつける必要があります。
“Instrumentでリークした様に見えなくてもリークしているのを調べる方法” の続きを読む

StoryboardのTableView-Staticでセルが表示されない問題を解決する方法

iOS5 から導入された、 Storyboard のTableViewでのStaticモード。コードを書かなくても、Storyboard上でテーブルのセルを編集出来るのがいいですね。
それを使ってストリーボードを編集してアプリを作る際にいくらか制限がありました。その制限を守らないと、Storyboard上では編集出来るものの、実行するとセルが表示されないという問題があります。

これを正しく動かす方法です。
“StoryboardのTableView-Staticでセルが表示されない問題を解決する方法” の続きを読む

iOS でヘッドフォンを差した状態でも、内蔵スピーカーから音を出す方法

いま作ってるアプリで必要なので調査しました。

ヘッドフォン使用のカードリーダー
ヘッドフォン使用のカードリーダー

カードリーダーを使うアプリを作っています。
UniMag II, Two-Track Mobile MagStripe Reader この、流行のヘッドフォンジャックに刺して使用するものです。これを使うと、ヘッドフォンの音声からカードリーダの回路に電源を供給して、カードを読む事が出来ます。しかし,ヘッドフォンが刺さっていると、標準出力がヘッドフォンになるので、音が鳴らせなくなります。
“iOS でヘッドフォンを差した状態でも、内蔵スピーカーから音を出す方法” の続きを読む

Less Code, Less Bugs! Storyboardで角丸、枠線、シャドウを設定できるクラスを公開

Storyboardで設定したUIのコンポーネント表示例
Storyboardで設定したUIのコンポーネント表示例

UIViewのコンポーネントは、layerプロパティを使って、角丸、枠線、シャドウなどを比較的自由に設定できます。しかし、Storyboardではその設定が直に出来ないので、コードを書く必要が出てきます。しかし、そのためだけにIBOutletをつないだり、ViewDidLoadにコードを追加したりするのが面倒ですし、どうしてもコードの量が多くなるとバグが増えてしまいます。そのために、Storyboard上で、角丸、枠線、シャドウを設定できるクラスを作成して公開しました。
“Less Code, Less Bugs! Storyboardで角丸、枠線、シャドウを設定できるクラスを公開” の続きを読む

UIWebView がクラッシュするのを防ぐ方法-3

追記2012/5/26 AdBannerViewでクラッシュする例も追加しました。TweetOverview のクラッシュ対策について | Zero4Racer PRO Developer’s Blog
追記2012/5/14 これでほぼクラッシュしない様になって来ているのですが、まだ、クラッシュすることがあります。最小構成を作成してみたところ、その構成では落ちないようです。メモリが少ない場合など、条件が重なって発生するようです。引き続き調査を続けます。
追記 2012/05/21: 落ちなくなったコードを共有します。

UIWebView がクラッシュするのを防ぐ方法−2 | Zero4Racer PRO Developer’s Blog
iOS5 で UIWebView を使用しているときはご注意-予期せぬクラッシュを防ぐ方法 | Zero4Racer PRO Developer’s Blog
の続編です。やはり、アプリが落ちることがありましたので、さらに修正してみました。

クラッシュの例
クラッシュの例

“UIWebView がクラッシュするのを防ぐ方法-3” の続きを読む

あのblocksは大丈夫?iOSで、blocksを使った記述で、リリースビルドのみにクラッシュする事例

追記:4/19/2012 @tokyopengwyn さんから指摘をいただき、安易に__blocksを追加するのがいつも正しい訳では無いというという事を教えて頂きました。この事例は、ReleaseとDebugビルドで挙動が違うことがあるというを思いに止めていただければと思います。ARC+Blocksには落とし穴も多いのでご注意ください。
追記:4/19/2012 ソースをgithubに公開しました。Blocksで記述出来るiPad用のPopOverMenuと通知のクラスを公開しました | Zero4Racer PRO Developer’s Blog こちらの記事から参照ください。

追記:4/21/2012 @tokyopengwyn さんの検証はこちら、分かりやすくまとめられています。 One Flew Over The {()}’s Nest: Blocks関連のバグがデバッグコンパイルで再現しないケース
ただいま、作成中のアプリ、TweetOverviewが、テストフライトでのテストを行っていて、そろそろサブミット出来るかなと思っています。

開発中はこんな感じです。

詳細画面
詳細画面

Blocksを使用している部分で、リリースビルドだけでクラッシュする場合があったので、これがそのままAppStoreに載ってたら大変なことになったと思うと、ちょっとぞくっとしました。

[iOS]リリースビルドでのみクラッシュする状況への対処について | Zero4Racer PRO Developer’s Blog この記事で書いた事がまた原因かなと思ったのですが、今回はこちらの設定を変えても問題は治りませんでした。

“あのblocksは大丈夫?iOSで、blocksを使った記述で、リリースビルドのみにクラッシュする事例” の続きを読む

最近Javaをアップデートした方は注意!Xcode4.3.2でアプリをサブミット出来ないエラーの対処法

サブミットエラー
サブミットエラー

アプリを登録しようとしたら、

An error occurred uploading to the iTunes Store

というエラーがでて、サブミット出来ませんでした。環境は、OSX10.7.4, Xcode 4.3.2 です。Application Loaderを使ってもエラーが出るので探してみたら、ありました。

“最近Javaをアップデートした方は注意!Xcode4.3.2でアプリをサブミット出来ないエラーの対処法” の続きを読む

Xcode4.3で、Storyboardで、UIStepperを使用するときに発生するビルドエラーと対処方法

iOS5対応アプリから使用出来る様になった、Storyboard、また、UIStepper。設定によってビルドが通らなくなるバグがあるみたいです。
追記:アップルにバグ報告したところ、既知のバグのようでした。修正のために動いているという事なので、修正されるまで気長に待ちましょう。

UIStepperの設定
UIStepperの設定

“Xcode4.3で、Storyboardで、UIStepperを使用するときに発生するビルドエラーと対処方法” の続きを読む

iPad 3 は本当に Retina Display か?iPad2のアイコンと重ねたムービーを作成してみました

来週、Appleイベントがありますね。招待状に写ってるiPad 3のホームボタンは無い?について調べてみた | トブ iPhone の検証を真似して、iPad 2のアイコンを招待状の画像に重ねてビデオにしてみました。

違う点は、

  • 招待状のアイコンには陰が無い
  • 招待状の画像は、なぜかアイコンに陰が無いですね。完全にCGで作ってるだけかもしれません。

  • 招待状のアイコンは、Wednesdayという文字が少し大きい
  • これは、Retinaになって余裕ができたため、少しサイズを小さくしているのかもしれません

  • 招待状のアイコンのほうが、’e’の文字が詳細な気がする

こんな感じですね。やはりRetina確定でしょうか。開発者としては、画像のサイズが超巨大になるので、開発が少し大変かもしれません。