24/7 twenty-four seven

iOS/OS X application programing topics.

iPhone

チュートリアルなどで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 など音声認識ができそうなクラスが追加されています。 これはプログラムから音声認識を使うことができるのか?そうすると音声を使ってハンズフリーでアプリケーション…