読者です 読者をやめる 読者になる 読者になる

24/7 twenty-four seven

iOS/OS X application programing topics.

チュートリアルなどでUIPageControlを使うときは標準のアクションに対応するのを忘れずに

UIPageControlはiPhoneのホーム画面でも使われている、今何ページ目かを示すUIControlのサブクラスです。 最初のiOSからあって、特徴的なUIなのでフリックでページをめくる画面ではこれを使って現在のページを示すのが定番になっています。 特に最近では初回…

CoreTextを使って簡単に画像付きリッチテキストを表示できるSECoreTextViewに編集機能がつきました。

kishikawakatsumi/SECoreTextView · GitHub iOS/Macの両方で使えて、文字の選択やリンクのクリックに対応したテキストビューをテスト公開しました。 - 24/7 twenty-four seven 前に書いたSECoreTextViewに編集機能を実装しました (iOSのみ)。 SECoreTextView…

複雑な正規表現を分かりやすくするライブラリ VerbalExpressions の Objective-Cバージョンを書きました

https://github.com/VerbalExpressions/ObjectiveCVerbalExpressions ↑ 本家にマージされました。https://github.com/kishikawakatsumi/ObjectiveCVerbalExpressions 概要 VerbalExpressions はメソッドチェーンとわかりやすい名前を使って、正規表現を読み…

OS X 10.8.4でXcodeでiOS Simulatorを実行したときにSIGABRTでアプリがクラッシュすることがある問題の暫定的な対処(修正済み)

先日のアップデートでOS Xを10.8.4にしてから、XcodeからアプリケーションをiOS Simulatorで実行したときにSIGABRTでアプリが起動せずにクラッシュすることが多くなってしまいました。私の環境だとアプリを終了させてから再度実行、という手順だと数回に1回…

UITextView でタップ可能なリンクをカスタマイズする

UITextView では dataDetectorTypes を設定することでデータタイプに応じて自動的にクリック可能なリンクとして表示してくれます。例えば下記のようにしていすると、URLが含まれていた場合、タップ可能なリンクとして表示されます。 cell. tweetTextView. da…

第4回iphone_dev_jp 東京iPhone/Mac勉強会を開催しました

第4回 iphone_dev_jp 東京iPhone/Mac勉強会 : ATND しばらく休んでいたのですが久しぶりにいつもおなじみのVOYAGE GROUPさんの会場をお借りして開催いたしました。 今回は幸運なことにEvernote本社からMac版EvernoteのUIのリニューアルの指揮をされましたJa…

UIImageView で 'Aspect Fit (UIViewContentModeScaleAspectFit)' を指定したときの画像サイズを取得する

↓ 例えばこんなふうに UIImageView に 'Aspect Fit' を指定して表示させたときの領域を知りたいことってありますよね。 がんばって計算してもいいのですが、AVFoundation.framework の次の関数で簡単に取得できます。 CGRect AVMakeRectWithAspectRatioInsid…

iPhone/iPadで画像をクロッピングするライブラリを公開しました

kishikawakatsumi/PEPhotoCropEditor · GitHubPEPhotoCropEditor は iPhone/iPad アプリに画像をクロッピングする機能を簡単に追加します。 UIは標準のPhotos.appに似ていておもしろい動きをします。 インストール CocoaPodsでインストールできます。 pod 'P…

iOS/Macの両方で使えて、文字の選択やリンクのクリックに対応したテキストビューをテスト公開しました。

kishikawakatsumi/SECoreTextView · GitHub SECoreTextView はリッチテキストの表示と文字の選択(現在はOS Xのみ)やリンクがクリック可能だったりするテキストビューです。 別のアプリでテーブルビューのセルにリンクを含むテキストを表示するのに、既存の…

iPhone の画面操作を録画するライブラリを公開しました。

kishikawakatsumi/ScreenRecorder · GitHubScreenRecorder は iOS デバイスの画面を連続的にキャプチャして、動画に変換することで画面の操作を録画することができる機能をアプリケーションに追加します。 開発中のソフトウェアのユーザーテストなどに利用す…

リンクするだけで iOS 6 で Google Map が使えるようになる YAMapKit を公開しました。

kishikawakatsumi/YAMapKit · GitHubYAMapKit は MapKit.framework と(ほぼ)互換性のある代替ライブラリです。 Google Maps Javascript API と UIWebView を利用して iOS 6 で Apple の標準地図の代わりに Google Map を使った表示ができます。 MapKit.fra…

Objective-C でサブクラスのインスタンスから任意のスーパークラスのメソッドを呼ぶ

サブクラスのインスタンスからポリモーフィズムを無視して任意のスーパークラスのメソッドを呼びます。 ↓ 下のように Shape クラスと Shape クラスを継承した Path クラス、および Path クラス を継承した Circle があります。 それぞれのクラスで draw メソ…

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

iOS 4.0 と iPhone OS 3.x の両方で動作するアプリケーションをビルドする設定 - 24/7 twenty-four seven↑ こちらも参考に iOS 4.0 が登場したくらいのときに上の記事を書いて、仕組みは変わってないのですけど Xcode 4.x 系だと UI が変わってるので現在の…

iOS 6 では Supported interface orientations の順番に注意!

最近の Xcode ではアプリケーションが対応しているデバイスの向きをターゲットの Summary 画面から GUI を用いて設定できるようになりましたが、ここから設定する場合はボタンを押す順番に注意する必要があります。というのも、この画面で設定した内容は、In…

iOS 6 ではグループスタイルのテーブルビューの背景色がこっそり非推奨になっている。

iOS 6 では上記のカラーを生成するメソッドがヘッダのコメントでひそかに deprecated になっています。UIInterface.h // Group style table view backgrounds can no longer be represented by a simple color. // If you want to have a background in your…

はやりのシンボルフォントを iOS で画像として扱える SymbolFontKit を公開しました。

kishikawakatsumi/SymbolFontKit · GitHub↑ シミュレータに表示されている画像やツールバーのボタン、タブバーのアイコンは全てフォントです。シンボルフォントとは要するにアイコン画像などをフォント形式にしたものです。 Webだと最近のブラウザだとWebフ…

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

はてな touch / Hatena touchはてな touch 1.2.7 がアップルの審査を通過しました。 iOS 6, iPhone 5をサポートしました。 変更点 iOS 6, iPhone 5をサポートしました。

はてなブックマークの ShareKit 拡張を書きました

ShareKit/Classes/ShareKit/Sharers/Services/Hatena at hatena · kishikawakatsumi/ShareKit · GitHub ShareKit といういろいろな外部サービスとの連携機能を提供するライブラリがあるのですが、それのプラグイン (ShareKit では Sharer と呼びます) として…

第1回iphone_dev_jp東京 iPhone/Mac Hackathon 〜みんなが幸せになるハッカソン〜 を開催しました

iphone_dev_jp東京 iPhone/Mac Hackathon : ATND iPhone_dev_jpで、みんなが幸せになるハッカソンを開催します | fladdict 前回の勉強会で深津さんが「一発もののアプリじゃなくてきちんと使われるライブラリをドキュメント込みで作るハッカソンやったらいい…

第3回iphone_dev_jp 東京iPhone/Mac勉強会を開催しました

第3回iphone_dev_jp 東京iPhone/Mac勉強会 : ATND 発表内容と資料のまとめ http://mtl.recruit.co.jp/blog/2012/07/721_iphone_dev_jp_iphonemacmtl.html 会場を提供してくださったMTLフナミさんのすばらしいまとめです。 すべての資料と発表ごとに分けてい…

CoreData の 属性に現在時刻など固定値以外のデフォルト値を設定する

CoreData のオブジェクトに作成日や更新時刻が自動的に入ったらいいなと思うことってありますよね。固定の値ならばモデルエディタの Defaut の欄に設定しておけば初期値として自動的に設定されますが実行時の現在時刻のように変わる値はモデルエディタでは設…

今年のチケット争奪戦が終わったので WWDC チェッカーのソースコードを公開します

kishikawakatsumi/WWDCChecker-Mac · GitHub kishikawakatsumi/WWDCChecker-iPhone · GitHub WWDC 2012 がようやく発表されました。 チケットは2時間ほどで売り切れてしまいましたが、なんとか買うことができました。これまでの傾向から激しい争奪戦になる…

CoreData の NSManagedObject のサブクラスを変更する場合はカテゴリを使うと便利

CoreDataのモデルクラスはXcodeのモデルエディタから自動生成しますが、生成されたクラスにメソッドを追加したりしたいことがあると思います。 そのとき、自動生成されたファイルを直接変更してしまうと、モデルに変更がありモデルクラスを再生成したときに…

iphone_dev_jp 東京iPhone/Mac勉強会のあきすてさんの資料を共有しました

@k_katsumi あ、それとは別にお渡ししたPDFの資料をどっかで後悔していただけたら当日できなかったUnityの話も見られていいかなと2012-04-15 02:15:44 via Twitter for Mac to @k_katsumi @akisutesama 勉強会のときのPDF、SlideShareで共有するね?2012-04-…

iphone_dev_jp 東京iPhone/Mac勉強会を開催しました

iphone_dev_jp 東京iPhone/Mac勉強会 : ATND 発表内容と資料のまとめ 「iphone_dev_jp 東京iPhone/Mac勉強会」で発表をして来ました - 強火で進め Tweetのまとめ iphone_dev_jp 東京iPhone/Mac勉強会 #idevjp - Togetterまとめ ネット配信の録画(ニコニコ動…

画像キャッシュとダウンローダで参考になる(と思う)オープンソースの実装

ダウンロードした画像をキャッシュするクラスの設計と実装について - 24/7 twenty-four seven実は上の記事で紹介したクラスを書いた当時、それが必要だったアプリをリリースしたすぐ後くらいにほとんど同じ実装のライブラリを見つけまして。 自分の実装はそ…

ダウンロードした画像をキャッシュするクラスの設計と実装について

iOS組み込みのキャッシュモジュールNSCacheについて発表しました - ninjinkun's diary @k_katsumi キャッシュを分ける方のはわかりやすくて良いですね。後から読む人の参考になりそうなので、URL と URL の発言、ブログに引用させていただいても良いでしょう…

iOS 5.1 ではスクロールビューをスクロールするたびに少しずつメモリリークが起こる。

iOS 5.1 では UIScrollViewにバグがあるようで慣性スクロールが終わるタイミングで少しずつメモリがリークしてしまうようです。 UIScrollView を継承している UITableView や UITextView も同じ不具合が発生します。 内部に UIScrollView を保持している UIW…

音声を使ってハンズフリーでアプリケーションを操作するサンプル

iOS 5.1 からプログラムからも利用できるようになった音声入力を使ってアプリケーションを操作するサンプルを公開しました。kishikawakatsumi/VoiceNavigation · GitHub このサンプルでは「〜を検索」と話すとその言葉で Google 検索を実行します。 「戻る」…

iOS 5.1 の音声入力を使ってアプリケーションを操作してみる

iOS 5.1 から日本語の音声入力がサポートされました。さらに API にも UIDictationPhrase など音声認識ができそうなクラスが追加されています。 これはプログラムから音声認識を使うことができるのか?そうすると音声を使ってハンズフリーでアプリケーション…

Xcode 4.3ではファイルをドラッグ&ドロップで追加するとき、ターゲットに追加するかどうかのチェックが外れることが多いので注意!

バージョン 4.2.x までの Xcode では、プロジェクトにファイルをドラッグ&ドロップして追加するとき、コピーするかどうかや、ターゲットに追加するかどうかのチェックボックスは前回の選択状態を引き継ぐという挙動でした。 しかし、バージョン 4.3 になっ…

Titanium mobile の KeyChain モジュール TiKeyChainStore を書きました。【添削希望】

UICKeyChainStore を応用して Titanium mobile の KeyChain モジュール TiKeyChainStore を書きました。kishikawakatsumi/TiKeyChainStore · GitHub 下記のように使います。 var store = tikeychainstore.createKeychainStore({ service: 'com.kishikawakats…

KeyChain のデータを操作するラッパークラス UICKeyChainStore を書きました。

アップルのサンプルコード GenericKeychain に含まれる KeyChain のラッパー KeychainItemWrapper.m の実装が微妙だったので書きました。kishikawakatsumi/UICKeyChainStore · GitHub KeychainItemWrapper クラスには下記で報告されている問題や、 A-Liaison…

miil 1.0.1 がリリースされました。

miilmiil.me miil 1.0.1 がリリースされました。 バージョン 1.0.1 の変更点 利用規約を変更しました。 機能改善 ユーザー一覧画面のフォローボタンのタップ領域を拡大し、押しやすくしました。 Twitterから友だちを検索する際のUIを改善しました。 現在地以…

miil 1.0.0 がリリースされました。

miilmiil.me 私がプログラムを担当しました、miil 1.0.0 がリリースされました。 食べものの写真を通して「おいしい!」を共有するアプリケーションです。 写真を撮って投稿したり、ほかの人の写真をみたり、 ほかの人の写真をみたり、感想を書き込んだり、 …

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

i-Radio ネットラジオのアプリケーション i-Radio のバージョン 1.2.0 が審査を通過しました。 自動更新購読 (Auto-Renewable subscriptions) による月額プレミアム会員がスタートしました。 プレミアム会員になると、季節ごとのバックナンバーが聴取できる…

ColorChooser が便利

カラーピッカーで選択した色を自動的に UIColor や NSColor のコードに変換してくれるユーティリティです。 同様のものに Developer Color Picker がありますが、 それのメニュー常駐版のような感じです。 コードを書いているときにどこからでも呼び出せるの…

UINavigationBar に複数の UIBarButtonItem を配置するには

UINavigationBar は基本的に左右 (leftBarButtnItem, rightarButtonItem) に一つずつしかボタンを配置することができません。 しかし、ちょっと工夫をするとその制限を突破することができます。 (まあ物理的なスペースの関係でせいぜい2つか3つがやっとな…

NSNull のインスタンスは nil として振舞ってくれると嬉しいなって

NSNullはnilとして振舞うべきじゃないかなー。unrecognized selectorで例外なげるんじゃなくて。2011-04-11 21:07:10 via Echofon @k_katsumi 私もそう思います。サブクラス化するなりカテゴリで上書きするなりして nil として振る舞えるようにできないです…

MKMapView に CATransform3D を適用するときの注意

MKMapView 3DTransformするとおかしくなるな。残念。鳥瞰図みたいなの表示したかったんだけど。2011-04-04 17:36:16 via Twitter for Mac @junpeiwada ちょいと調べてみました。transformはsuperviewに当てて、その後mapViewにCATransform3DInvertで打ち消す…

kotobank for iPhone 1.0.0 がリリースされました。

kotobank - コトバンク株式会社ジェネシックス | genesix 私がプログラムを担当しました、kotobank for iPhone 1.0.0 がリリースされました。 データを内部に持ち、オフラインで使用できる辞書アプリケーションです。 このアプリケーションの特長は、複数の…

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

LCD Clock HDバージョン 1.1.2 がアップルの審査を通過しました。 iOS 4.3の動作と、日本以外の国において2011年後半の移動休日のデータを更新しました。 変更点 iOS 4.3の動作を確認しました。 日本以外の国において2011年後半の移動休日のデータを更新しま…

iPhone アプリにおいて Interface Builder を使って Grouped Style の UITableView を作るときは separatorStyle の値に注意

Grouped スタイルのテーブルビューを使用した iPhone アプリケーションの中に、下の画像のように先頭セクションの区切り線が2重に表示されているものをチラホラ見かけます。 実用上の問題は無いのですが、ちょっと不恰好なので気になりますよね。 この現象…

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

LCD ClockiOS 4.3の動作と、日本以外の国において2011年後半の移動休日のデータを更新しました。 変更点 iOS 4.3の動作を確認しました。 日本以外の国において2011年後半の移動休日のデータを更新しました。

英辞郎検索ランキング(アルク) 1.0.0 がリリースされました。

英辞郎検索ランキング(アルク) 私が開発を担当しました、「英辞郎検索ランキング(アルク)」 が Apple の審査を通過しました。 このアプリケーションはアルクの「英辞郎 検索ランキング 英和編」「英辞郎 検索ランキング 和英編」という2冊の書籍を ひと…

UIDocumentInteractionController で特定のファイルを開くことのできるアプリケーションを調べたり、直接開いたりする。

南東京iPhone開発者勉強会 #5 - Togetterまとめ UIDocumentInteractionController UIDocumentInteractionController で、特定の拡張子のファイルを開けるアプリがあるかどうかを調べる方法 - iOS プログラミングメモ - iPhoneアプリ開発グループ 昨日、南東…

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

はてな touch / Hatena touchはてな touch 1.2.6 がアップルの審査を通過しました。 はてなの AtomPub API の WSSE 認証が厳格化したことにより投稿できない問題を修正しました。 AtomAPIの脆弱性対策として、WSSE認証をより厳密にしました - はてなブックマ…

iTunes Connect Developer Guide の Appendix が便利

iTunes Connect Developer Guide は本文はもちろん必読なのですが、最近追加された Appendix に載っている情報がけっこう便利です。 Appendix A: App Information Table アプリケーションの申請に入力する情報について項目ごとに「1度申請すると編集不可」「…

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

英辞郎 on the WEB for iPhone(アルク) 英辞郎 on the WEB for iPhone(アルク) 1.1.1 が Apple の審査を通過しました。バグフィックスのみの修正です。 一部の単語(in, on, a など)が検索できない不具合を修正しました。 修正点 一部の単語(in, on, a…

「超」整理手帳 for the iPad 1.0.0 がリリースされました。

「超」整理手帳 for the iPad 講談社 - Kodansha Ltd. 私が開発を担当しました、「超」整理手帳 for the iPad が Apple の審査を通過しました。 関連リンク http://moura.jp/lifeculture/datebook/lineup/application.html