Xcodeプラグイン
- Xcodeのプラグインや色テーマなどを管理をするプラグインAlcatrazを試す
- Xcodeでの補完をより便利にするFuzzy Autocomplete for Xcodeを試す
- XcodeでメソッドのJavadocコメント追加を瞬時に行えるようにするプラグインVVDocumenter-Xcodeを試す
- ソースコードを整形するXcodeプラグインClangFormat-Xcodeを試す
- コード補完プラグインFuzzy Autocomplete for Xcodeが2.0になってより便利になりました
- Clang-KeyPathValidatorでKVCのパスをXcodeでチェックできるようにする
チュートリアル
Xcode
パッケージ管理
swift言語
- SwiftでassertとpreconditionとfatalErrorをうまく使い分ける
- 絵文字で始めるSwift
- Swiftのextensionとsubscriptで文字列のスライス化っぽいのを実現してみる
- Swiftでリフレクションを使ってみる
- SwiftのStringInterpolationConvertibleプロトコルで文字列出力をカスタマイズする
iOSの基礎知識
- iOS 6における低メモリ警告とその処理について
- iOS 4のマルチタスク処理における状態遷移について
- ViewControllerにおけるビュー管理サイクルとメモリ警告シミュレーションによるアンロード処理について
カスタムURLスキーム (他アプリケーションとの連携)
- 独自カスタムURLスキームを設定する方法について
- カスタムURLスキームでのアプリケーション切替時の画像の設定
- カスタムURLスキームを利用してアプリケーションを起動する方法について
- カスタムURLスキームと名前付きペーストボードを利用したATOK Pad for iPhoneとの連携
テスト、ドキュメント生成
- xcodebuildからiOS Simulatorでのテストを実行する
- appledocを使ってObjective-CソースをXcode Organizerで表示できるようにする
- appledocのドキュメント作成を自動で行うようにする
- OCMockでテストを簡単に書く方法について
- OCMockのobserverMockの利用法と3つの注意点
ネットワーク、ストリーミング
- CFNetworkフレームワークを用いた入力HTTPストリームの作成
- NSURLConnectionを用いたURLローディングシステムによる通信
- NSURLとURLのエスケープについて
- Audio Queue Serviceを用いたネットワークストリーミングによるオーディオ再生
Objective-C
- Objective-C++でBlocksの代わりにC++11のlambdaを利用する
- Blocksオブジェクトによる高階関数を用いてソートする方法について
- メソッドforwardInvocation:を利用したメッセージ転送について
- 子クラスのメソッド内から親クラスのメソッドを呼ばせる必要があるときはNS_REQUIRES_SUPERを使いましょう
Metal
標準iOSライブラリ
- App GroupsとNSUserDefaultsでiOSアプリ間のデータを共有する
- ファイルサイズなどを見やすく表示できるNSByteCountFormatter
- NSObjectを継承しないクラスをランタイムAPIで作成する方法について
- NSCacheとNSDiscardableContentについて
- Key-value observingを使う際のtips
- JSONディクショナリに対してはKVCのCollection Operatorが意外と便利
- Social.FrameworkとAccount.Frameworkを利用して、Twitterからタイムラインを取得する
ドキュメントインタラクション/クイックルック (他アプリケーションとの連携)
- UIDocumentInteractionControllerを用いて別アプリケーションを開くメニューを表示する方法について
- UIDocumentInteractionControllerDelegateの処理の流れについて
- iOSアプリケーションを特定のファイル形式に対応させる方法について
- Quick Look Frameworkを用いたプレビュー表示について
ReactiveCocoa
- ReactiveCocoa関連リンクのまとめ
- ReactiveCocoaとFunctional Reactive Programmingについて
- CocoaPodsでReactiveCocoaをインストールする
- ReactiveCocoaはじめの一歩: 3分でできるReactiveCocoa
- ReactiveCocoaでmap, filterなどを使ってみる
- ReactiveCocoaのシグナルとサブスクライブについて
- ReactiveCocoa 3.0のconcat:とcatch:について
- ReactiveCocoa 3.0に採用予定のSignalGeneratorについて
- IIJmioのiOSサンプルアプリのネットワーク周りのシグナル処理について
- IIJmioのiOSサンプルアプリのOAuth周りのシグナル処理について
- IIJmioのクーポンスイッチAPIを利用したiOSサンプルアプリケーションを公開しました
UIKit Dynamics
SpriteKitとliquidfun
- 2D物理エンジンliquidfunをiOSでコンパイルできるようにする
- liquidfunをSpriteKit上で動かしてみる
- liquidFunとSpriteKitでボールを使う
- liquidFunとSpriteKitで流体を使う
- SpriteKitのSKEmitterNodeを使ってliquidFunのパーティクルを水っぽく表現してみる
Canvas (アニメーションライブラリ)
- Xcodeでストーリーボードを編集するだけでアニメーションを可能にするライブラリCanvasを試す
- CanvasのCSBlurViewを使ってみる
- アニメーションライブラリCanvasの仕組みを調べてみた
- iOSのアニメーションライブラリCanvasで自作アニメーション型を追加してみる
UI関連ライブラリ
- Auto LayoutのVisual Format Languageを楽に書くためのSwiftライブラリを書いた
- 利用しているライブラリのライセンス一覧ビューを自動作成してくれるVTAcknowledgementsViewControllerを試す
- 配列やディクショナリ向けに関数型言語風の関数を追加するライブラリUnderscore.mを使う
- 400個以上のフリーなアイコンをiOSで楽に使えるようにするライブラリIonIcons-iOSを試す
- QuickDialogを用いて簡単にダイアログを作成・表示する
- 色関連の便利メソッドを集めたiOSライブラリColours
Dropbox SDK for iPhone
- Xcode4.2でのDropbox SDK v1のサンプルアプリケーションのコンパイルについて
- ディベロッパキーの取得方法とサンプルアプリケーションのコンパイルについて
- Dropbox SDKを利用したiPhoneアプリケーションの作成
- DropboxSDKでの処理とハッシュの利用について
- Dropbox SDKによるファイルやフォルダ更新の確認方法などについて
- Dropbox用の各種アイコンとファイル名変更によるリビジョン番号とハッシュ値の変化について
TypetalkKit
- Swift+AlamofireでTypetalkのAPIを書いたので公開します
- TypetalkKitをパッケージマネージャCarthageに対応させてみました
- TypetalkKitとStarscreamでTypetalkのWebSocket APIを試してみる
- Streaming APIに対応したTypetalkKit 0.2.6をリリースしました
IIJMio
その他ライブラリ
- モデルクラスとNSDictionaryとの相互変換を楽に行えるようにするライブラリMantleを試す
- MantleでObjective-CプロパティとJSON文字列との相互変換を自分で制御する
- NSLoggerで手軽にログを取る方法について
- zipzapでZip書庫を操作する
- Objective-Zipを用いたZip書庫の操作について
- libextobjcの@strongifyと@weakifyについて
- CinderによるiPhoneアプリケーションの作成について
- iOSシミュレータの再起動なしでコード修正が即時反映できるようになるライブラリRestartLessOftenを使ってみる
- Objective-Cでの正規表現処理が非常に簡潔になるライブラリObjective-C RegEx Categoriesを試す
- SimpleAuthを使って、Instagramの写真を取得できるようにする
- SimpleAuthにIIJMioクーポンAPIを追加してみる