Objective-C

Storyboardに移行するためのシナリオサンプルを書いた

Storyboardに移行するサンプル - まとめ なんで書いたの? Storyboard使わないアプリを滅ぼすため。レイアウトに関してiOSのバージョンの違いや、端末の画面サイズの違いを吸収するために、コードだけで対応するのは非常に厳しい状況があります。現在主流は…

初めてiOS開発入門

対象: ある程度、プログラミング言語をできる人。 開発環境を選びましょう ネイティブ(Objective-C)、RubyMotion(Ruby)、Titanium(javascript)などがあります。得意なものがあればそれを使うのがいいかもしれません。ここではネイティブの開発の話をします…

Categoryの比較

この記事、どれだけの人に需要があるのですかね? 概要 カテゴリとは、既存のクラスに対してメソッドを追加する機能。既存のクラスを再コンパイルする必要がなく、クラスの挙動を変更することができる。 Groovyのカテゴリは、Objective-C由来です。Objective…

TableViewAgentを作りました。

何これ? 本来UITableViewControllerでUITableViewDataSourceとUITableViewDelegateを実装する必要はない。その辺りの処理を別のクラス分けたほうが、本来行いたい処理に集中できる。そこで作ったのがこのTableViewAgentである。cocoapodsでinstallできます…

Storyboardからidentifyを取り出すツールを作った

https://github.com/akuraru/ExtractingIdFromStoryboardStoryboardでSegue等に値を指定したい場合、identifyを指定する必要がある。Objective-C側では文字列指定しないといけない。これは、補完が効かないので非常に間違いやすい。そこで、Storyboardからid…

NSUserDefaultsの管理クラス自動生成してみた

NSUserDeaultsは、アプリのデータを保存しておくためのクラスです。KeyとDataをペアにして扱います。しかし、NSUserDefaultsを直接扱うとKeyの文字列を間違えたり、Dataの型を間違えたりするので、管理クラスを書いています。しかし、アプリごとに毎回管理ク…

iOSアンチパターン

メモリの手動管理 1. 目的:メモリの最適化 Objective-Cでは、C言語と同様に生成したオブジェクトは手動で管理しなくてはいけません。メモリーリークを回避するために、必ずautoreleaseかreleaseを行わなければいけません。メモリを適切に管理することによっ…

より短く書くために

@による省略 interfaceとかの@マークの話ではなく,@"文字列"などのアットマークの話です. この@は普段無意識に使っているかもしれませんが,これは@の直後にある型を自動で判断してプリミティブ型からオブジェクトを生成する省略記号である.つまり以下の…

0について

Objective-Cにおいて0は特別な扱いをされているので,まとめておこうと思う. この記事において,変数に格納されているものを値と呼ぶ. さらに以下のコードでf()が実行される値をSuccessといい,g()が実行される値をFailureということにする if (boolean) {…

Storyboardの国際化を自動化する

iOS6以降であれば,国際化したStoryboardを一つにまとめる ことができるそうですが,残念ながらそれ以前では,複数のStoryboardを手動で変更しなければなりません.言語数がn,機能数がmとして,一つの言語を追加するたびm個の機能を翻訳し,一つの機能が変…

Gradle+guardでGHUnitの自動テスト環境を構築してみた

GHUnitは,Mac OSX/iOSのかなり高機能なテストフレームワークである.これには,以下の様な特徴がある ・非同期通信のテストが容易にできる ・ iPhone実機・シミュレータで動作確認ができるただ,デメリットの一つとして,GHUnitは通常シミュレータ(又は実機…

MVCとObserverパターン

MVCとは Model ビジネスロジックを表現する要素.状態を持っている.Controllerから要求を処理し,状態の変更をViewに通知する.ViewやControllerに依存しない. SQLや一時保存したデータを書き換えたりする. View UIを担当する.Modelの状態をユーザーに表…