その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Objective-C

dispatch_get_global_queue と dispatch_queue_create の違い

他サイト様の引用ばっかりで恐縮ですが、説明がわかりやすかったのでこちらにメモっておきます。 dispatch_get_global_queue と dispatch_queue_create の違い (Nacho4d - programming notes: December 2010 より) メインキュー : メインスレッドで実行 di…

【その2】UIImagePickerController を使わないカメラアプリの実装方法

前回記事の続きです。 前回は、プレビュー表示するところまで書きました。今回は、シャッター撮影して画像をカメラロールに保存するところまで。 出力の準備 プロパティ宣言 @property (nonatomic, strong) AVCaptureStillImageOutput *imageOutput; 出力の…

【その1】UIImagePickerController を使わないカメラアプリの実装方法

「カメラ機能をアプリにつけたいけどシャッター音を鳴らしたくない」とか、「カメラ起動時のアニメーションが嫌だ」とかの場合は、UIImagePickerController を使うのではなく AVFoundation フレームワークを使ってカメラ機能を自作する必要があります。 とい…

vImageで領域分割/セグメント化/輪郭抽出/ラベリング

人間から見て"納得感"のある画像処理をしようと思うと、領域分割(セグメント化)をしたくなる場合が多々あります。 たとえば、人物と背景とを別々に処理したい、とか、人の肌の部分だけに処理をしたい、とか。 OpenCVではそういった「領域分割」を行ってく…

インストールされているアプリの一覧をログ出力する "iOSInstalledApps"

以前、『デバイスにインストールされているアプリ一覧を取得する』という記事を書いたのですが、ここに書いた アプリのプロセス名一覧を持っておいて、そのプロセスが存在すればインストールされていると判断する アプリのカスタムURLスキーム一覧を持ってお…

シンプルで使いまわしやすいトゥイーンライブラリ "AHEasing"

以前 gihyo.jp に『様々なアニメーションを実現するiOSアプリ用トゥイーンライブラリ3種を比較!』という記事を書かせていただいたのですが、そこで紹介した3つよりも良さげなトゥイーンライブラリがあったので、紹介します。 warrenm / AHEasing まだデモ…

iPhoneアプリ開発(iPhone SDK)の解説本、一挙14冊レビュー

昔書いてたブログからの転載です。 書いた日時が「2010年1月23日」ととても古く(iOS 3 時代!)、さらにiOSアプリ開発者としてもプログラマとしても初心者の頃に書いたものなので、あまり参考にならないかもしれませんが、一番の人気記事でもあったので、iO…

iOS 6 新機能のサンプルコード/ライブラリのまとめ33個

「英語のリファレンスだけじゃよくわからん、動くサンプルが欲しい!」という僕のために、NDA解禁されたてほやほやの iOS 6 関連のサンプルコード/オープンソースライブラリ等を集めてみました。 UICollectionView 1. iOS6-Playground iTunesから取得したム…

iAd + nend の切り替え表示ラッパークラスを公開しました

最近は個人で出す無料アプリはもっぱら メインは iAd iAdの広告在庫がないときに nend という iAd + nend の併用パターンが多くなりました。 で、iAd / nend の実装方法を調べたりとか、切り替え処理を実装したりとか面倒なので、1行で済むラッパークラスを…

Cocoa Controls の掲載審査に関する諸々

8/27に届いた Cocoa Controls のメルマガで気付いたのですが、"UIKitForGames" が Cocoa Controls に掲載されたようです。 http://www.cocoacontrols.com/platforms/ios/controls/uikitforgame で、今回やってみてわかったこと諸々を書いておきます。 ページ…

ゲームアプリ向け UI コンポーネントセット "UIKitForGame" を公開しました

最近はゲームアプリをつくることが多いのですが、その中で自分でもよく使う UIKit のカテゴリ/サブクラスの詰め合わせを Github にアップしました。 https://github.com/shu223/UIKitForGame 以下に概要と使い方を紹介させていただきます。 DamageValueLabe…

Cocoa Controls で見つけたティッカー4種を比較してみました

ティッカーというのは、(本当の定義はわかりませんが)文字が流れるアレです。 文字を横方向に流すアニメーションをするだけのことですが、たとえばパズドラのティッカーを見てると、表示開始時は右から一気に左端まで移動させ、そのあとゆっくり左方向に流…

$(SRCROOT) や $(BUILD_DIR) 等の Xcode で使用しているマクロの置換内容の一覧を調べる方法

Info.plistや、ビルド設定をいじっていると、こんな文字列に出くわすかと思います。 $(PRODUCT_NAME) $(TARGET_TEMP_DIR) $(SRCROOT) これらはそれぞれ特別な意味を持ち、Xcode がビルド時だか何だかのタイミングでプロダクト名とか環境に応じたパスとかに置…

In-App Purchase の脆弱性への対応方法

巷を騒がせている In-App Purchase の脆弱性問題ですが、iOS Developer Library に対策方法についての記事が掲載されていました。 「自分とこのサーバーから App Store サーバーにレシート送ってチェックしているタイプのアプリはいいけど、そうじゃない場合…

UIWebView からアプリ内に入れたカスタムフォントを使う

Info.plist に "Fonts provided by application" で追加したカスタムフォントを、UIWebView で表示する web コンテンツから参照する方法です。 CSS の font-face で、次のように指定します。 @font-face { font-family: "{CSS内で使用する名前}"; src: local…

『第3回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表してきました

先日の記事で第2回勉強会向けに用意していた発表内容について書きましたが、本日(7/21)開催された第3回で発表の機会をいただいたので、資料とサンプルコードをアップデートして発表してきました。 iOS 5 から Accelerate.framework に追加された高速画像…

Facebook SDK 3.0 for iOS のサンプルを一通り試してみました

今回は従来のように github からソース一式をとってくる方式ではなく、インストールパッケージをダウンロードしてインストールする方式になったようです。 https://developers.facebook.com/ios/ で、インストールはさくっと終わったのですが、どこに何がイ…

UIWebViewで表示中のHTMLコンテンツを取得する

UIWebView や UIWebViewDelegate には、ロードしてきたHTMLの内容を取得するためのプロパティやメソッドが見当たりません。 で、どうすればいいかというと、stringByEvaluatingJavaScriptFromString: メソッドで JavaScript を実行して、現在 UIWebView で表…

Path や Facebook ライクなスライドメニューを実現するライブラリ "IIViewDeckController"

前回の記事で、Path や Facebook ライクなスライドメニューを実現するライブラリ7種類を比較し、ウォッチ数が多く最終更新日も比較的新しいことから、IIViewDeckController をチョイスしました。 こんな感じのUIが作れます。 ARC対応もしてあり、スライドメ…

Path や Facebook ライクなスライドメニューを実現するライブラリ7種を比較!

リッチな GUI を簡単に実現するためのオープンソースシリーズ第3弾は、Facebook や Path でおなじみのアレです。 cocoa controls で facebook と入れて検索するだけでも、山ほど出てきます。 どれかに絞って使い方を紹介しようと思ったのですが、予想以上に…

スクロール付きタブバー "InfiniTabBar"

先日の OGActionChooser に引き続き、オープンソースのUIコンポーネントの紹介です。 ソーシャルゲーム系のアプリでちょくちょく見かけるのが、スクロールするタブバー。 あまりわかりやすいUIとはいえないので、ネイティブ実装する場合にこのUIを採用するケ…

画像素材なしでいい感じのボタンを作れるライブラリ その1 "Imageless Gradient Buttons"

先日の記事の冒頭でも書きましたが、UIKit でサクッと動いて触れるものを使る場合に、UIButton の見た目の選択肢が RoundRect ぐらいしかないのはなかなか辛いものがあります。 そんな場合に役立つ、「画像素材なしでいい感じのボタンをつくれるライブラリ」…

リッチなポップアップメニューをさくっと実現できる OGActionChooser

たかがモック、されどモック。 モックといえど、RoundRect タイプのボタンを使用してたりするとどうにもテンションが上がらない、ということはよくあります。(僕はよくあります) そんなわけで、リッチな GUI を簡単に作れる系のUIコンポーネントをいろいろ…

『第2回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表・・するつもりで参加してきました

めんどくさいタイトルですいません。。 僕がこの勉強会のATNDに気づいたころには120人の参加者枠もとっくにうまり、発表者枠も既に10人に達していたのですが、「時間がもし余ったら」と @k_katsumi さんの粋な計らいでLT補欠として参加させていただいた、と…

Assets Library を利用した高速フォトビューア

1年以上前にこちらの記事で Assets Library の読み込みを高速化する試行錯誤について書かせていただきましたが、そのときに作った『i走馬灯』という高速フォトビューアアプリを作り直して再リリースしました。 『i走馬灯 〜超高速フォトビューア』 ※無料です…

逆ジオコーディングで取得した CLPlacemark の住所情報の内容

先日CLGeocoder を用いた逆ジオコーディングの記事を書きましたが、その結果得られる CLPlacemark 型の addressDictionary プロパティに入っている住所情報について、どのキーがどういう情報なのか、国ごとにどういう違いがあるのか、毎回調べるのが面倒なの…

iOS 5.0 より追加された CLGeocoder を使用して逆ジオコーディング

Appleのドキュメントによると iOS 5.0では、MKReverseGeocoderとMKReverseGeocoderDelegateは非推奨になっているの で、新たにアプリケーションを開発する場合はCLGeocoderを使ってください。 とのことなので、逆ジオコーディングを CLGeocoder を使用してや…

クロスディゾルブで画面遷移

UIView に用意されている画面遷移用エフェクトとして、カールアップ/ダウンやフリップ(クルッとまわる)以外にも、iOS4.0以降ではクロスディゾルブ(アルファで入れ替わる)も利用できます。 2つの UIView (下記サンプルでは fromView, toView)を用意し…

NSUserDefaults に保存する際に自動的に iCloud にも保存してくれるライブラリ "MKiCloudSync"

MKiCloudSync を使用すると、たった1行コードを追加しておくだけで、あとは自動的に NSUserDefaults の内容を iCloud に同期してくれます。 もともとシンプルな iCloud 同期ですが、もっとシンプルになるのでとりあえず iCloud 対応したい、ちょっと試してみ…

ログ出力用マクロ

下記のような有名なログ出力マクロがありますが、 #ifdef DEBUG # define LOG_CURRENT_METHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG_CURRENT_METHOD ; #endif これプラスアルファでちょっと便…