24/7 twenty-four seven

iOS/OS X application programing topics.

iPhone Simulator「画面をコピー」「テキストをペースト」

iPhone Simulator の「編集」メニューは通常はこのようになっていますが、 Control キーと押すと以下のように変化します。 「画面をコピー」はスクリーンショットをクリップボードにコピーします。 プレビュー.app の「クリップボードから新規作成」などと組…

くるりんぱ性格診断 1.0.0 がリリースされました。

くるりんぱ性格診断 くるりんぱ性格診断という書籍を元に iPhone アプリケーションとして制作しました。12個の簡単な質問に答えるだけで性格を表す「じぶんキャラ」を知ることができる、という楽しく性格診断のできるアプリケーションです。このアプリケーシ…

ネットワークの通信速度を制限する Preference Pane "SpeedLimit"

mschrag@github SpeedLimit は Mac のネットワーク通信速度に制限をかけることができる Preference Pane です。上限のプリセット値として 1572k (T1), 768k (DSL), 384k (3G), 64k (Edge), and 48k (Dialup) の5種類が用意されています。上限値を選択して "…

2つ以上の UIScrollView (UITableView, UITextView などを含む) が存在するビューで StatusBar のタップで先頭に戻る機能を有効にするには。

UIScrollView 系のビューが2つ以上存在するとき、ステータスバーをタップして一気に先頭にスクロールする機能を有効にするには、先頭にスクロールする機能を有効にしたいスクロールビューのみ scrollsToTop プロパティを YES にし、それ以外のスクロールビ…

はてな touch 1.2.4 をリリースしました。

はてな touch / Hatena touchはてな touch 1.2.4 がアップルの審査を通過しました。 iPhone OS 3.x の環境で画像をアップロードしようとするとクラッシュする不具合を修正しました。 変更点 iPhone OS 3.x の環境で画像をアップロードできない問題を修正。

はてな touch 1.2.3 をリリースしました。

はてな touch / Hatena touchはてな touch 1.2.3 がアップルの審査を通過しました。 iOS 4 に対応しました。ただ、iPhone OS 3.x の環境で画像をアップロードしようとするとクラッシュしてしまう不具合が見つかりましたので、修正バージョンを 1.2.4 として…

i-Radio 1.0.0 がリリースされました。

i-Radio ネットラジオ "ネットラジオの音楽専門局 i-Radio" の番組を iPhone から聴くことのできるアプリケーションです。 私がプログラムを担当しました。 iOS 4 のバックグラウンド再生に対応していますので、番組を聴きながら別のアプリケーションを操作…

In App Purchase のアイテム数の上限が 3000 個に増えました。

これまでは 1000 個が上限でしたが 3 倍の 3000 個に拡張されました。 他にも今回のバージョンでは下記のように変更点がたくさんあるので、改めて新しいガイドには目を通しておくといいと思います。 Version 5.6 - June 14, 2010 Support for iAd including …

LDR touch 1.2.8をリリースしました。

LDR touchLDR touch 1.2.8が審査を通過しました。 iOS 4.0で使用したときにクラッシュする問題を修正しました。 他の修正は下記のとおりです。 変更点 iOS 4 でクラッシュする問題を修正。 ログインにSSLを使用するように変更。 iAdの広告を追加。 Mobilizer…

アプリケーションを iPhone 4 の Retina Display に対応するための方法いろいろ

iPhone 4 の Retina Display の高解像度表示にアプリケーションを対応させるための方法をいくつか書きます。 これだけですべての場面に対応できるわけではないですが(例えば OpenGL での描画など)何かの役に立てばと思います。 高解像度の画像リソースを用…

Retina Display に対応した iPhone アプリ用のアイコンセット

eddit の iPhone UI Icon Set がアップデートされて、iPhone 4 の Retina Display にも対応しました。 通常のディスプレイ用のリソースと、Retina Display 対応のリソースの両方を準備するのはかなり大変な作業なので嬉しいですね。 以前のものを購入済みで…

iOS 4 のバックグラウンドタスク (Task completion) の制限時間は 10 分

下記のコードで確認。適当コードなのでマネしてはいけません。 - (void)onTimer:(id)timer { NSLog(@"Time remaining: %g", [[UIApplication sharedApplication] backgroundTimeRemaining]); } - (void)applicationDidEnterBackground:(UIApplication *)appl…

iOS 4 のマルチタスキングサービスの種類

適当訳です。 詳しくは WWDC 2010 のセッション 105「Adopting Multitasking on iPhone OS, Part 1」を見ましょう。 Fast app switching 高速な復帰と状態の保存。 Push notifications リモートサーバから通知を送ることができる。(iPhone OS 3.0 から存在) …

LCD Clock 4.0 をリリースしました。

LCD Clock Retina Display 対応 iPhone 4 の Retina Display の高解像度表示に対応しました。 非常に美しいです。 iPhone 4 を手に入れた幸運な方はぜひご覧になってください。 Local Notification のアラーム (iOS 4 のみ) アラームに設定した時刻にアプリ…

iOS 4.0 と iPhone OS 3.x の両方で動作するアプリケーションをビルドする設定

ベース SDK と Deployment Target を設定する ベース SDK を iPhone デバイス 4.0 にします (iPad の場合は 3.2)。 iPhone OS Deployment Target をサポートする OS の最も低いバージョンにします。 (下の場合は iPhone 3.0 以降で動作する。) ベース SDK …

グラフィックスコンテキストに影を設定する CGContextSetShadow 関数の挙動が変わっている

以前に「UILabelに影をつける - 24/7 twenty-four seven」という記事で紹介した CGContextSetShadow 関数の挙動が iPhone OS 3.2 (iPad と iOS 4.0) から変わっています。 具体的には影の付く方向が逆になりました。なので、以前の記事をコードをそのまま実…

LCD Clock HD 1.1.0 がリリースされました。

LCD Clock HDバージョン 1.1.0 がアップルの審査を通過しました。 変更点 アラーム機能を追加 バグフィックス 待望のアラーム機能を搭載しました。 アラームには付属のアラーム音と iPod の音楽ライブラリが使用できます。 付属のアラーム音は、この LCD Clo…

座標の指定が整数値でない場合 UIKit の描画(ビュー、画像、ボタン、その他いろいろ)がぼやける

iPhone および iPad で開発をしているとき、たまに画像や文字がぼやけてしまう現象にあったことはないでしょうか。 同じ画像を表示していても特定の場合だけぼやけるとかそういう場合は、だいたい座標の指定が小数になってしまっていることが原因です。 この…

「そのまま使える iPhone アプリプログラム」発売開始

「そのまま使える iPhone アプリプログラム」が発売されました。 サンプルコードも昨日からダウンロード可能になっています。 こちらのサンプルコードはすべて Xcode プロジェクトの形式になっており、タイトルどおり「そのまま使える」形で付属します。 そ…

ビュー (UIView) の階層構造をダンプする非公開の便利メソッド

標準 SDK で提供されているクラスがどういう構造になってるか参考にしたいとか、ちょっとしたカスタマイズをしたいとか、そういうときにビュー構造をダンプしたりすることはよくあると思います。下記のようなメソッドを書いてもいいのですが、実は UIView に…

UISegmentedControl の隠し API

UISegmentedControl は segmentedControlStyle プロパティに 値を直接指定すると、非公開のスタイルを使用することができます。試しに 3 を指定してみると次のようなスタイルになりました。 UISegmentedControl *segmentedControl = [[UISegmentedControl al…

モレスキン風 iPad ケース「DODOcase」が届いたのでレビューします

モレスキン (Moleskine) 風 iPad ケース DODOcase が届きました。 送料を含めて 7,045 円ですので、そこそこの価格ですね。 2010/4/13 に注文して、出荷が 5/14 でちょうど一か月、5/17 に到着です。 サイトで見て一目惚れで即購入したので、届くのが楽しみ…

iPhone 開発本「そのまま使える iPhone アプリプログラム」を書きました

「そのまま使える iPhone アプリプログラム」というプログラミング本を執筆しました。「国破れて山河あり」「ソングサマナー」などで有名な Seasons さんとの共著です。 この本ではOpenGL と UIKit について、ちょっと進んだ応用レベルの使い方を解説してい…

delegate オブジェクトは retain すべきではない

Delegating objects do not (and should not) retain their delegates. However, clients of delegating objects (applications, usually) are responsible for ensuring that their delegates are around to receive delegation messages. To do this, they…

UITableView で メール.app のような複数選択を実現する Undocumented API

UITableView の複数セルの選択は、実は Undocumented API として存在しています。 実装してもそれほど手間ではありませんし、審査に通るかどうかも不明なので、今のところ使いどころはないかもしれませんが、紹介します。 UITableViewDelegate に設定したク…

UIButton の隠し API

UIButton も buttonWithType: メソッドの引数に 100 以上の値を直接指定すると、非公開のボタンタイプを使用することができます。 100 〜 102: ナビゲーションバーのボタン (UINavigationButton) 100, 101, 102 を指定すると、ナビゲーションバーで使われて…

ツールバーのボタン (UIBarButtonItem) の隠し API

@iphone_dev_jp ツールバーとかタブバーによくある「現在地を表示」のボタン画像(あのライフルのスコープみたいなアイコンの)はシステム標準でないですよね。自分で作らないとダメなんですかね。 takoyaki0330 on Twitter: "@iphone_dev_jp ツールバーとか…

英辞郎 on the WEB for iPhone(アルク) 1.0.0 がリリースされました。

英辞郎 on the WEB for iPhone(アルク) 英辞郎 on the WEB for iPhone(アルク) が Apple の審査を通過しました。このアプリケーションは私が開発を担当しました。 検索結果のテキストを選択して、さらに検索したりメールのできる機能や、 入力補助のセル…

LCD Clock HD 1.0.0 がリリースされました。

LCD Clock HDはじめての iPad アプリケーション LCD Clock HD が Apple の審査を通過しました。iPhone アプリケーションとして販売中の LCD Clock の iPad アプリケーション版です。 アメリカでの iPad の発売に間に合わせるため、アラーム機能など未搭載の…

Xcode のプロジェクト名を変更するには

プロジェクト>名称変更... でいいらしい。 プロジェクトファイル名、ターゲット名、プリコンパイル済みヘッダ、Info.plist を一括で変更してくれます。 プロダクト名や、リンクマップファイルへのパス、ビルドディレクトリなど各種パスも、一度閉じて開き直…