[iOS][Objective-C][画像処理]シャッター音の鳴らないカメラアプリの実装方法
「カメラ機能をアプリにつけたいけどシャッター音を鳴らしたくない」とか、「カメラ起動時のアニメーションが嫌だ」とか、カメラ機能をもっと自由にカスタマイズしたい場合は、UIImagePickerController を使うのではなく AVFoundation フレームワークを使う必要があります。 先日、UIImagePickerController...
View Article[ライブラリ][Objective-C][iOS]Method Swizzling をうまく使っている実用例
Method Swizzlingは、既存のメソッドの実装を、自前の実装に差し替えるための手法です。 ・・・ということを知ってはいても、どういうときに使うと便利なのかイマイチわかってなかったので、Method Swizzlingをうまく使った実用例を2つほど探してきました。 実用例その1:既存ソースコードに手を入れずに機能追加 xib ファイルのローカライズを IB 上でできるようにする...
View Article[Android]Kindle Fire HD 32GB をポチりました
最近家にある本を全部電子化したので、毎日持ち歩けるタブレットが欲しいなーと思ってて、iPad mini を買うつもりでいたんですが、たまたま寄った Amazon で Kindle Fire HD を見て、思わず衝動買いしてしまいました。 Kindle Fire HD 16GBAmazon.co.jp (2012-12-18)売り上げランキング: 1Amazon.co.jp で詳細を見る...
View Article[ライブラリ][iPhone][Objective-C][iOS6]Core Image の全エフェクトを試せるサンプルコードを公開しました
Core Image のフィルタ(画像にエフェクトをかけたり、色を調整したりするもの)を一通り試せるサンプルプロジェクトをgithubに上げました。 というか、これ、1年以上前にアップしてこちらの記事に書いたのですが、ほとんど認知されることがなかったので、改めて紹介させていただきます。 こんな感じでフィルターを試せます。...
View Article[Tips][Objective-C][iOS]1行で iOS バージョン判定できる便利マクロ
下記のようにマクロを定義しておけば、 #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] \ compare:v options:NSNumericSearch] == NSOrderedAscending) こんな感じで1行でバージョン判定できて便利です。 if...
View Article[Tips][iOS][Objective-C]AVFoundation 使用時のカメラ起動を高速化する
AVFoundation を用いて静止画とか動画とかを撮影する場合に、カメラの起動時間を速くする方法です。 計測してみると、どうも AVCaptureSession の startRunning に一番時間がかかってるので、 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);...
View Article面白法人カヤックを退職しました。
今日は本年度の締め日であるとともに、僕のカヤックの最終出社日でした。 この件については、カヤックでやってきた仕事を振り返ったりとか、今後のこととかいろいろ書きたいことがあるのですが、今日はビールを多少嗜んでしまったので、とりいそぎ社内に流したメール(を一部編集したもの)をもってお知らせさせていただきます。 みなさま、おはようございます。 堤です。...
View Article若輩者ではありますが、iOSの技術書を書かせていただくことになりました。
ちょうど退職の意志を役員に伝えた1週間後ぐらい(出来すぎたタイミング!)に、とある出版社の方より、「書籍企画のご相談をさせていただきたく」とメールをいただきました。 Qiitaに書いた記事 を見てご連絡いただいたようです。 (後述しますが、)僕にはこれ以上ないほどありがたい話だったので、トントン拍子で話が進み、無事企画承認まで漕ぎ着けました。 内容...
View Article仕事に集中するための仕組みづくり
今日からひとりで仕事なので、いろいろと Mac アプリや chrome 拡張入れたりして「さぼらない環境づくり」をしてみました。(これが既にさぼってるわけですが) 「なんとなく Facebook や Twitter を開く」の防止 プログラミングや執筆に行き詰まると、無意識のうちにメールや SNS...
View Article[画像処理][iOS][Objective-C]『フラグメントシェーダー事始め』で勉強したメモ
OpenCVで実装した画像処理アルゴリズムを、OpenGL ESのフラグメントシェーダに移植しようとしていて、GPUImageに入っているフィルタのシェーダプログラムを参考として読み始めたものの、そもそもこのシェーダというものがよくわかってないので、下記の記事を読みつつ勉強してみました。 EZ-NET: Objective-C フラグメントシェーダー事始め...
View Article執筆、海外就職、その他もろもろについての近況報告
前職をやめて3週間ほど経ち、いろいろ進んだり滞ったりしてきたので、ここらで近況報告をさせていただきます。 iOSアプリ開発本の執筆 100個Tipsを載せるつもりで書いていて、1/18(土)現在の進捗状況は 16/100 です。 まったく進んでないわけではないですが、昨年末に立てた計画ではすでに 38/100 ほど進んでいるはずなので、えらい遅れてます。...
View Article[海外就職]はじめて英語でSkype面接受けたメモ
いまスペインのバルセロナにおります。 (Airbnbで借りたアパートからの風景) 今回は就職活動が目的ではないのですが、LinkedInでバルセロナにオフィスがある会社のiOSアプリ開発者の求人を見つけたので、申し込んでみました。 で、初めて海外の会社のSkype面接を受けたので、そのメモを残しておきます。 ※なぜスペインにいるの?というあたりの経緯はこちらをご参照ください 経緯...
View Article[オーディオ][iOS][Objective-C]ダウンロード可能な Audio Unit 関連のサンプルコード11個
Audio Unit は、iOS の Core Audio においてもっとも低レベル(ハードウェアより)に位置するフレームワークです。そのため低レイテンシを要求されるオーディオ処理機能を提供するアプリに向いています。 というのがよく言われる Audio Unit のメリットなのですが、個人的には Audio Unit...
View Article[オーディオ][iOS][Objective-C]Audio Unitのコールバック関数を登録する方法3種の比較
Audio Unit で、コールバック関数を登録するための方法が何通りかあって、何だかややこしかったので整理してみました。 AudioUnitSetProperty まず一番基本的なものである AudioUnitSetProperty から。 AURenderCallbackStruct callbackStruct; callbackStruct.inputProc =...
View Article[海外就職]34歳無職のiOSプログラマが1ヶ月間スペインに滞在してきたまとめ
約1ヶ月間(23泊26日)、スペインはバルセロナに滞在してきました。刺激的でかっこいい紀行文もしくは滞在記みたいなのを書けるのであれば書きたいところですが、それだと永遠に書かないまま終わりそうなので、箇条書きベースでまとめたいと思います。 目的とか経緯とか ざっくりいうと、「海外就職したいけど、とっかかりもないので、まずはちょっとだけ海外に住んでみたりしてみよう」というのが目的です。 (経緯)...
View Article[iOS][画像処理][Objective-C]Core Image の遷移エフェクトを使う
Core Image のフィルタ (CIFilter) には、CICategoryTransition というカテゴリーがあり、次のような遷移(トランジション)エフェクトが用意されています。 CIBarsSwipeTransition CICopyMachineTransition CIDisintegrateWithMaskTransition CIDissolveTransition...
View Article.ipa ファイル生成を自動化する
通常.ipaファイルを作成するには、Product メニューの Archive 実行後に、 Organizer から アーカイブを選択し Distribute ボタン押下 "Save for Enterprise or Ad-Hoc Deployment" を選択し Next ボタン押下 ドロップダウンリストから該当するプロビジョニングプロファイルを選択 保存先を指定...
View Article[Mac]Mac のスクリーンショットを定期的に自動撮影する
10分ごととかにMacスクリーンショットを自動撮影する方法です。ライフログに、あるいはサボり防止に役立つかもしれません。 以下、手順です。 1. シェルスクリプトの準備 適当なフォルダを作成して、シェルスクリプトのファイルを生成します。(下記サンプルではホーム直下にssというフォルダを作成) $ cd $ mkdir ss $ cd ss $ touch capture.sh...
View Article[アニメーション][iOS][Objective-C]UIKit上でパーティクルエフェクトを表示する
iOS5より、Core Animationでパーティクルシステムがサポートされ、UIKitで実装されたUI上でパーティクル表現を簡単に行えるようになりました。 ここでは CAEmitterLayer と CAEmmiterCell を用いたパーティクルエフェクトの基本的な実装方法を説明し、入れ子にして花火のような段階的なエフェクトを実現する方法や、動的にパラメータを変更する方法を紹介します。...
View Article[自然言語処理][Objective-C][iOS]自然言語のテキストを属性で区分する
NSLinguisticTaggerを用いると、自然言語のテキストを品詞(名詞、動詞、代名詞)や「個人名」「地名」といった属性で区分(トークンに分解)することができます。日本語の形態素解析も可能です。 使い方は非常にシンプルで、基本的な手順は 1. スキームを引数に渡してNSLinguisticTaggerオブジェクトを生成 2. 処理対象テキストをセット 3. トークン分解開始...
View Article