2012-01-01から1年間の記事一覧
ちょうど退職の意志を役員に伝えた1週間後ぐらい(出来すぎたタイミング!)に、とある出版社の方より、「書籍企画のご相談をさせていただきたく」とメールをいただきました。 Qiitaに書いた記事 を見てご連絡いただいたようです。 (後述しますが、)僕には…
今日は本年度の締め日であるとともに、僕のカヤックの最終出社日でした。 この件については、カヤックでやってきた仕事を振り返ったりとか、今後のこととかいろいろ書きたいことがあるのですが、今日はビールを多少嗜んでしまったので、とりいそぎ社内に流し…
下記のようにマクロを定義しておけば、 #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] \ compare:v options:NSNumericSearch] == NSOrderedAscending) こんな感じで1行でバージョン判定できて便利です。 if (SYSTEM_VERS…
Core Image のフィルタ(画像にエフェクトをかけたり、色を調整したりするもの)を一通り試せるサンプルプロジェクトをgithubに上げました。 というか、これ、1年以上前にアップしてこちらの記事に書いたのですが、ほとんど認知されることがなかったので、改…
Method Swizzlingは、既存のメソッドの実装を、自前の実装に差し替えるための手法です。 ・・・ということを知ってはいても、どういうときに使うと便利なのかイマイチわかってなかったので、Method Swizzlingをうまく使った実用例を2つほど探してきました。 …
AVFoundation を用いて静止画とか動画とかを撮影する場合に、カメラの起動時間を速くする方法です。 計測してみると、どうも AVCaptureSession の startRunning に一番時間がかかってるので、 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_…
「カメラ機能をアプリにつけたいけどシャッター音を鳴らしたくない」とか、「カメラ起動時のアニメーションが嫌だ」とか、カメラ機能をもっと自由にカスタマイズしたい場合は、UIImagePickerController を使うのではなく AVFoundation フレームワークを使う…
超大ヒットした『漫画カメラ』、ほんとに漫画っぽくなって、動作も軽快、シェアも簡単で楽しいですよね。 ただ、ちらほらと「同じこと考えてた」「そういうの作ってた」という声を聞くことがあります。実際に同様のコンセプトのアプリもたくさん出ています。…
UIActivityとは? 地味だからかあまり話題になってない気がするのですが、iOS 6 の便利な新機能の1つに UIActivity というのがあります。これは、 こんな感じでメールとか写真アプリとかFacebook/Twitterとかに写真やテキストを渡すためのUIです。(超ざっく…
Core Image や vImage や OpenCV、それらをラップする各種ライブラリの充実のおかげで、画像処理まわりは高度な処理をずいぶん簡単に高速に実装できるようになってきましたが、オーディオ処理(音声処理)まわりはいまだに再生や録音などの基本的なところか…
CALayerを用いてUIViewを継承したクラスに影をつける方法は、下記のような感じで(CoreGraphicsで描画する方法などと比べて)わかりやすくお手軽で、質感もグッと増すので、ついつい多用したくなります。 self.layer.shadowOpacity = 0.5; self.layer.shadow…
DropBox用カスタムUIActivity、"GSDropboxActivity" の導入方法(のメモ)です。 GSDropboxActivity UIActivityとは何ぞや?という方はこちらの記事 からどうぞ。 準備 GSDropboxActivity フォルダをプロジェクトに追加 DropboxSDK.framework をプロジェクト…
iOS アプリを英語ローカライズする際,単数形/複数形の取り扱いはなかなかやっかいです。-s, -es の違いを始めとして,不可算名詞,person/peopleのようにイレギュラーなものもあります。 それら諸々のルールをプロパティリストファイルに記述し, - (NSStr…
AVFoundation を用いたカメラアプリを実装していて、参考にしていたサンプルコードに次のような NSZoneMalloc を用いてメモリ確保している箇所がありました。 bitmap = NSZoneMalloc(self.zone, width * height * 4); これを ARC オンにしているソースに書い…
他サイト様の引用ばっかりで恐縮ですが、説明がわかりやすかったのでこちらにメモっておきます。 dispatch_get_global_queue と dispatch_queue_create の違い (Nacho4d - programming notes: December 2010 より) メインキュー : メインスレッドで実行 di…
前回記事の続きです。 前回は、プレビュー表示するところまで書きました。今回は、シャッター撮影して画像をカメラロールに保存するところまで。 出力の準備 プロパティ宣言 @property (nonatomic, strong) AVCaptureStillImageOutput *imageOutput; 出力の…
「カメラ機能をアプリにつけたいけどシャッター音を鳴らしたくない」とか、「カメラ起動時のアニメーションが嫌だ」とかの場合は、UIImagePickerController を使うのではなく AVFoundation フレームワークを使ってカメラ機能を自作する必要があります。 とい…
人間から見て"納得感"のある画像処理をしようと思うと、領域分割(セグメント化)をしたくなる場合が多々あります。 たとえば、人物と背景とを別々に処理したい、とか、人の肌の部分だけに処理をしたい、とか。 OpenCVではそういった「領域分割」を行ってく…
以前、『デバイスにインストールされているアプリ一覧を取得する』という記事を書いたのですが、ここに書いた アプリのプロセス名一覧を持っておいて、そのプロセスが存在すればインストールされていると判断する アプリのカスタムURLスキーム一覧を持ってお…
以前 gihyo.jp に『様々なアニメーションを実現するiOSアプリ用トゥイーンライブラリ3種を比較!』という記事を書かせていただいたのですが、そこで紹介した3つよりも良さげなトゥイーンライブラリがあったので、紹介します。 warrenm / AHEasing まだデモ…
昔書いてたブログからの転載です。 書いた日時が「2010年1月23日」ととても古く(iOS 3 時代!)、さらにiOSアプリ開発者としてもプログラマとしても初心者の頃に書いたものなので、あまり参考にならないかもしれませんが、一番の人気記事でもあったので、iO…
「英語のリファレンスだけじゃよくわからん、動くサンプルが欲しい!」という僕のために、NDA解禁されたてほやほやの iOS 6 関連のサンプルコード/オープンソースライブラリ等を集めてみました。 UICollectionView 1. iOS6-Playground iTunesから取得したム…
最近は個人で出す無料アプリはもっぱら メインは iAd iAdの広告在庫がないときに nend という iAd + nend の併用パターンが多くなりました。 で、iAd / nend の実装方法を調べたりとか、切り替え処理を実装したりとか面倒なので、1行で済むラッパークラスを…
8/27に届いた Cocoa Controls のメルマガで気付いたのですが、"UIKitForGames" が Cocoa Controls に掲載されたようです。 http://www.cocoacontrols.com/platforms/ios/controls/uikitforgame で、今回やってみてわかったこと諸々を書いておきます。 ページ…
最近はゲームアプリをつくることが多いのですが、その中で自分でもよく使う UIKit のカテゴリ/サブクラスの詰め合わせを Github にアップしました。 https://github.com/shu223/UIKitForGame 以下に概要と使い方を紹介させていただきます。 DamageValueLabe…
ティッカーというのは、(本当の定義はわかりませんが)文字が流れるアレです。 文字を横方向に流すアニメーションをするだけのことですが、たとえばパズドラのティッカーを見てると、表示開始時は右から一気に左端まで移動させ、そのあとゆっくり左方向に流…
Info.plistや、ビルド設定をいじっていると、こんな文字列に出くわすかと思います。 $(PRODUCT_NAME) $(TARGET_TEMP_DIR) $(SRCROOT) これらはそれぞれ特別な意味を持ち、Xcode がビルド時だか何だかのタイミングでプロダクト名とか環境に応じたパスとかに置…
NDA があるので Xcode のバージョンがいくつとか、環境の細かいことは省きますが(そしてこの問題が他の環境でも起きているのか、起きているとしてこの対処法が通用するのかは不明ですが)とりあえず僕のところでは以下で直りました。 Xcode を閉じる(Beta…
インハウスビルド用のエンタープライズアカウントとリリース用アカウントがある場合、 com.shu223.hoge(リリース用の Bundle ID) com.shu223.hogeep(エンタープライズ用の Bundle ID) といった感じで、同じアプリでありながら、2つの Bundle identifier …
巷を騒がせている In-App Purchase の脆弱性問題ですが、iOS Developer Library に対策方法についての記事が掲載されていました。 「自分とこのサーバーから App Store サーバーにレシート送ってチェックしているタイプのアプリはいいけど、そうじゃない場合…