Twitter Bootstrap 3.0のグリッドシステムの変更点を調べてみた。

Twitter Bootstrap 3.0がリリースされていた。

グリッドシステムが2.3から変更になったみたい。

2.3では

<div class="row">
   <div class="span2">・・・</div>
   ・・・
</div>

だったけれど、3.0からは

<div class="row">
   <div class="col-md-2">・・・</div>
   ・・・
</div>

のようになった。

mdの部分はほかにxs、sm、lgを指定できて、デバイスの画面幅によって振る舞いを変更できる。

.visible-xxと.hidden-xxと組み合わせると、指定した範囲の可視・不可視を制御できるので便利そう。

ここらへんは公式サイトに説明があるけれど、DotInstallの解説がわかりやすかった。

他にも変更点がいくつかあるようなので、ひと通りドキュメントを読んで試してみたいと思う。

「実践テスト駆動開発」を読み始めた。

継続的デリバリー」と同じタイミングで購入して積読になっていたものを読み始めました。 (継続的デリバリーのほうもまだ積読だったりする)

第Ⅱ部「テスト駆動開発のプロセス」まで読み終えたところ。

内容的にはテスト駆動開発をする上で抑えておくべきポイントであったり、オブジェクト指向設計テスト駆動開発の関係が丁寧に説明されています。

「なぜテスト駆動開発がよい設計につながるのか」ということの理由が著者の経験に基づいて解説されているのでおすすめです。

以前にスタブとモックの違いがいまいち理解しきれず悩んだことがあったのですが、この本があればモックの用途と意図を理解しやすいと思います。

ちなみにスタブとモックの違いはこのブログ記事がわかりやすいです。

特におもしろかったのは第4章「テスト駆動のサイクルに火を入れる」のビルド・デプロイ・エンドツーエンドテストの自動化の話。

ユニットテストと受け入れテスト自動化の話は他の書籍でもよく出てきますが、この本では「テスト駆動開発のプロセス」そのものを確立するためにプロジェクト開始時からビルド・デプロイ・エンドツーエンドテストを自動化すべきと主張しています。

開発プロセス全体の視点から自動化のメリットが解説されているのがわかりやすくてよかったです。

ここらへんの話は「継続的デリバリー」により詳しく書いてあると思うので、そちらを読むのも楽しみにしていたいと思います。

実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる (Object Oriented SELECTION)

実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる (Object Oriented SELECTION)

RubyMotionがおもしろそう。

ここ2・3日、RubyMotionに手を出そうかどうかでちょっと迷っています。

おもしろそうなので触ってみたいという好奇心が大きいのですが、自分にとって開発しやすい環境を手に入れられるのではないかという期待もあります。

  • Rubyでコーディングできる
  • エディタにVimを使える
  • Rspecライクなテストツールを使える

などといったところが良さそうで、Xcode+Objective-Cに比べてストレスを減らせそう。

1点目に関してはRubyのシンタックスで書けるといってもCocoaTouchの知識は必要なので気分の問題かも。

2点目に関しては自分の使いやすいエディタを使えるのが一番だと思います。選択の自由度はすごく大事。

3点目に関してはテストをRspecライクに書けることに加えてタップやピンチ操作までエミュレートしてくれるので大分テストが書きやすくなりそう。

という感じで良さそうな点を書いてみましたが、結局のところは開発者の好みで選ぶのが良さげ。

普段CUIを使ってWebサービスの開発をしている人にとっては開発環境とスキルセットを活かせる気がします。

Pixateもそうだと思いますけど、Webサービス開発のスキルセットで何かを開発できるツールはまだまだ需要がありそう。

vimのプラグイン管理ツールをvundleからneobundleに移行した。

vimのプラグイン管理ツールをvundleからneobundleに移行した。

最初にvundleで管理していたプラグインとvundle自身を削除する。

% rm -rf .vim/bundle/*
% rm -rf .vim/vundle.git

次にneobundleをインストールする。

dotfilesとしてGitHubで管理しているため、git add submoduleで追加した。

% git submodule add https://github.com/Shougo/neobundle.vim .vim/bundle/neobundle.vim

あとは.vimrcに設定を加えて、:NeoBundleInstallすればOK。

% vi .vimrc

set nocompatible

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim/
endif

call neobundle#rc(expand('~/.vim/bundle/'))

NeoBundleFetch 'Shougo/neobundle.vim'

NeoBundle 'Shougo/vimproc', {
      \ 'build' : {
      \     'windows' : 'make -f make_mingw32.mak',
      \     'cygwin' : 'make -f make_cygwin.mak',
      \     'mac' : 'make -f make_mac.mak',
      \     'unix' : 'make -f make_unix.mak',
      \    },
      \ }

NeoBundleCheck


:NeoBundleInstall

.vimrcの設定はneobundleのGitHubリポジトリを参考にした。

NeoBundleFetchはNeoBundle自身をNeoBundleで管理するための設定で、NeoBundleCheckはvim起動時にプラグインのインストール状態をチェックするための設定。

NeoBundle 'Shougo/vimproc'を設定しておくと、vimprocのコンパイルを自動でやってくれる。

プラグインの追加は.vimrcに

NeoBundle 'hoge'
NeoBUndle 'fuga'

のように設定して、:NeoBundleInstallを実行すればOK。

CocoaPodsを使ってObjective-Cのライブラリ管理を自動化する。

CocoaPods
http://cocoapods.org/

Objective-Cのライブラリ管理ツールであるCocoaPodsを試してみた。

MacやiOSアプリ開発に使うライブラリのダウンロードや依存関係チェックなんかを自動化できる。

RubyのBundlerと同じように使えるので慣れている人であれば簡単に使えると思う。

Podfileに必要なライブラリを記述してpod installコマンドを実行するとライブラリがダウンロードされる。

ライブラリは公式で検索できるので使う前に調べておくとよいかもしれない。

インストール

Bundlerを使っていつも通りインストールする。

CocoaPodsのバージョンが確認できれば完了。

% bundle init
% vi Gemfile
gem 'cocoapods'

% bundle install
% bundle exec pod setup
% bundle exec pod --version
0.23.0

Xcodeプロジェクトの作成

Xcodeからプロジェクトを作成する。

Podfileの作成とライブラリのダウンロード

xcodeprojファイルと同一のディレクトリにPodfileを作成する。

% vi Podfile
platform :ios, '6.0'
pod 'ASIHTTPRequest', '~> 1.8.1'

これで

% bundle exec pod install

するとライブラリがダウンロードされてxcworkspaceファイルが作成される。

以後はxcprojectファイルではなくxcworkspaceファイルを開いて開発を行う。

ダウンロードしたライブラリは

#import <ASIHTTPRequest.h>

で使えるようになっている。

設定作業が自動化されてすごく快適!!

アプリケーション毎にPodfileを準備してgitで管理しておくと幸せになれる。