2013-01-01から1年間の記事一覧

テストに関する疑心暗鬼

疑い始めたらキリがないという話です。ぐだぐだです。 固定した値でのテスト 例えば、FizzBuzzのテストをするとしよう。fizzBuzzを返すことをテストするときは、Objective-Cだと下記のように書く - (void)testFizzBuzz15 { NSString *result = FizzBuzz.mapp…

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

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

進捗アドベントカレンダー

進捗Advent Calendar 2013 の22日目です。いいとか悪いとか置いておいてだらだらと、今年あったこと書いていこうと思います。 生活とかそんなん 大学院を卒業しました。何とかした感じです。内容は聞かないでください。ただ、何故か修論を学外で3回発表して…

いろふさんの描かれていない領域には何があるのか

いろふ Advent Calendar 2013 の12日目です。 Advent Calendarは締め切りに追われる何かではないはずだが、追われながら書いています。お絵かき系のネタ。魚的な何かだパッ◯ン的な何かだ(見えない)クシバシ的な何かだ。(何このいきものキモい)むしろ、左側が…

とりあえずこれで何とかした、SroryboardだけでiOS7のレイアウト問題への対応する方法

iOS

Xcode5でビルドするとiOS7のレイアウトが総崩れになるので、それに対してStoryboardだけで対応してみました。これだけでは足りない部分はいくつかありますが、とりあえずです。 問題:ステータスバーが透過されてレイアウトが崩れる。 NavigationBarがある場…

初めてiOS開発入門

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

Categoryの比較

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

TableViewAgentを作りました。

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

配布ステッカーまとめ

これは、2014/2/12時点での情報です。不定期に更新されます。 Twitterでmentionを飛ばせば、取って置くこともできます。

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

SQLアンチパターン読書会に行ってオススメの本を聞いてみた

SQL

SQLアンチパターン読書会に行って,最後に「SQL初心者なのですが,オススメの本はありますか?」と聞いて見ました.いろいろ出てきたので紹介したいと思います. 主に答えてくれていたのが,@t_wada と @inda_re なので信頼性はあると思います SQL書き方ドリ…

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の状態をユーザーに表…