投稿

2012の投稿を表示しています

Redmine XLS Export pluginへの機能追加

以前、Redmine XLS Export plugin をgithubに入れて機能追加をしたりしてました。
ただ、0.2.0から大きくソースが変更されて以来、放置していました orz

過去のブログ
Redmine XLS Export pluginRedmiine XLS Plugin 0.2.0を試す フォーラムに新しい翻訳が上がったのを機に、リポジトリを整理して対応をしました。
https://github.com/two-pack/redmine_xls_export

リポジトリの整理 上記の通り、大幅なソース変更が入ったこともあり、以下の2つのブランチを作って整理しました。

officialRedmineのプラグインサイトで公開されているオフィシャルのソースを入れているブランチ。
XLS Exportプラグインは、作者がリポジトリでの公開をしていない(RedmineのプラグインサイトでZIP形式で展開されている)ので、追いやすいようにという意味もあります。featuresRedmineのフォーラムでは、有志の方たちが翻訳などをアップしています。これらの取り込みや、後述するような個人的な機能追加などを行うブランチとして作りました。
次のリリースがあったら、 official へ追加してから features にマージ、と言う形で管理していけるといいかなと考えています。

日付の形式を指定する機能追加 以前のバージョンで追加していた機能に関して、0.2.x用に変えて機能追加しました。コミットは以下です。
https://github.com/two-pack/redmine_xls_export/commit/0a5b1e68ca68c38dc46e075aaf506b7b8c7156bb

以前のバージョンで追加機能に対しても翻訳を頂いていたので、その辺も取り込みつつ対応しました。


今回、この辺なんとかしないとなあ、、、と思ったのは、ALminiumのプラグインリストに、上記githubのアドレスから取得しているのがコメントアウトされていたこと。
せっかく使ってもらっていたのに、放置して使ってもらえなくなったのは残念だったなあ、、、と思い、整理をはじめました。
今後も、フォーラムをウォッチして翻訳など最新の状態を取り込んでいけたらなと思っています。

Springで提供されているモッククラス [Spring Framework Advent Calendar 2012 11日目 #jsug ]

Spring Framework Advent Calendar 2012の11日目です。
4巡目!間に合うか!(今23:50w)

Spring Frameworkではテスト用のモッククラスが提供されています。

一例としてMockHttpServletResponseを使ったテストケースが以下のようなものです。
@Test public void testGetName_Tom() throws Exception { MockHttpServletResponse response = new MockHttpServletResponse(); assertThat(sut.getName(response, 1), is("Tom")); assertThat(response.getStatus(), is(HttpServletResponse.SC_OK)); }
テスト対象のメソッドはコントローラーのもので、HttpServletResponseを引数に取っています。
@RequestMapping(value = "/person/name/{id}", method = RequestMethod.GET) public @ResponseBody String getName(HttpServletResponse response, @PathVariable int id) { if(id == 1) { return "Tom"; } response.setStatus(HttpServletResponse.SC_NOT_FOUND); return "Not found."; }
HttpServletResponseのようなインスタンス化できないものについて、モックがあらかじめ用意されているのは非常に便利です。うまく使ってJunitを書きたいですね。

ソース全体はここでアップしています。ざっくりな内容なのはご容赦を。。。
https://bitbucket.org/twopack/jsonrest/commits/f7038c946113f538ffc4d5ee1cd729d5

Spring Frameworkについての情報 [Spring Framework Advent Calendar 2012 9日目 #jsug ]

Spring Framework Advent Calendar 2012の9日目です。
3巡目!繋ぎますw

Spring Frameworkについての情報ってどこにあるんだろう?
ということで、ぐぐったり、今まで見たものを覚えている範囲でまとめてみます。
Spring使いはじめて間もないので、そういう人向けになるといいなあ、と思っています。


ぐぐってみたもの
SpringSource.org
まずは、本家本元。チュートリアル、ニュース、開発者ブログなどがあります。
ニュースはRSSもあります。

日本Springユーザ会
日本Springユーザー会は、日本におけるSpringの情報交換を目的としたコミュニティです。
今回ぐぐって参加したのは、ないしょですw

Spring Framework - Wikipedia
日本語でまとまっているので、概略を掴むにはいいのでは?


今までにみたもの
Spring 3 MVC Hello World Example
Spring MVCのチュートリアルを書いてあるブログ。
なんとなくわかりやすそうだったので、これで写経してみました。

Spring 3.x - Spring MVC - Advanced topics
Spring3でのアノテーションについて、概略の説明がスライドになっています。

Spring 3.x - Spring MVC
こちらはSpring MVCの説明のスライド。

Spring 2.5:Spring MVCの新機能
Spring3の記事ではないですが、Spring MVCの機能を知るという意味では、わかりやすかったものです。
特に 暗黙のModel については、ソースはいろいろなところで見ましたが、どういうことかは、ここでやっとわかりました。


さいごに
もっと、いろいろな情報があると思います。特に日本語でも。
ここは必見というのがあれば、ぜひ教えてもらいたいなあ、と思います。

さて、無理矢理w繋いでみましたが、10日目は!?

MappingJacksonJsonViewを使ってみる [Spring Framework Advent Calendar 2012 7日目 #jsug ]

Spring Framework Advent Calendar 2012の7日目です。
2巡目!

これまた先日ブログで書いた二番煎じですが、Spring MVCでJSONを返すViewの例です。
ソースはここにあります。

サーブレットの設定とりあえず、ソースです。
<beans:bean xmlns="http://www.springframework.org/schema/beans" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="mediaTypes"> <map> <entry key="json" value="application/json" /> </map> </property> <property name="defaultViews"> <list> <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <property name="prefixJson" value="true"/> </bean> </list> </property> </beans:bean>
ContentNegotiatingViewResolver は、リクエストのAccept headerやファイル名をもとにViewを解決します。
map で指定しているのは、 key がファイルの拡張子、 value がコンテンツタイプです。
defaultViews は、ViewResolverのチェーンでViewが解決できない場合に使われるViewを指定します。
今回は、ここで Mapping…

Spring + Thymeleafでデザインの分離を進める(のとっかかり) [Spring Framework Advent Calendar 2012 5日目 #jsug ]

Spring Framework Advent Calendar 2012の5日目です。

とっかかりということで、Hello Worldです。
以前のブログでもこの組み合わせについて書いていますが、導入を含めて少しまとめた形で書いていこうと思います。
以下の環境で確認しています。

Max OS X 10.7.5Eclipse JavaEE Juno SR1JDK 1.6Spring MVC 3.1.1.RELEASEThymeleaf 2.0.13

プロジェクト作成
Spring MVCテンプレートからのプロジェクト作成Spring MVCのテンプレートからプロジェクトを作ります。
Eclipseで、
New -> Other -> Spring Template Project -> Spring MVC Project
から作成します。ウィザードを完了した状態で私の環境ではプロジェクトにエラーがある状態でした。これらは以下を実行して解消しました。
Run -> Run As -> Maven BuildGoalscompile を指定して実行する。プロジェクトで右クリックして Maven -> Update Project を選択する。
Thymeleafのライブラリを依存関係に追加Spring 3.xでThymeleafを使う場合には、 thymeleaf-spring3 を使用します。
使用するには、Mavenのpom.xmlに以下を追加します。
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring3</artifactId> <version>2.0.13</version> </dependency>
テンプレートエンジンの変更Spring MVCのテンプレートで作成されるプロジェクトは、JSPのテンプレートエンジンを使ったHello Worldです。これをThymeleafのテンプレートエンジンに差し替えます。

サーブレットの設定サーブレットの設定ファイルを以下のように書き換えます。
<beans:bean id="…

Spring3 MVCでJSONを返すRESTもどき2

今回は電車の中でやってます。
というわけで、HTTPステータスコードを返す&Junitでのテストです。

ステータスコードの設定ステータスコードの設定は、コントローラーのメソッドに対して@ResponseStatusアノテーションでできる。
ステータスコード自体は、HttpStatus.*を使う。

POSTで201(Created)を返すコードを追加した。
試してみるのにrest-clientを使用した。これは便利。

作成したコードは以下でコミット。
https://bitbucket.org/twopack/jsonrest/changeset/c903d770a37754f04ddd0dccaa83971e

RESTをJUnitでテストするrestfuseを使用。
前回のpom.xmlでJUnitのバージョンを4.6としていたせいで、@Ruleアノテーションが使えずはまった。。
他はrestfuseのトップにあるとおりでできた。
JSONについては、JacksonのObjectMapperを使ってMapにしてから比較するようにした。

作成したコードは以下でコミット。
https://bitbucket.org/twopack/jsonrest/changeset/1e233fb47e482b80fc3bf69156c04e76

Spring3 MVCでJSONを返すRESTもどき

Eclipseでプロジェクトを作るところから開始。
環境は、Mac OS X 10.7.5 + Eclipse Juno + Spring Tool Suite。

プロジェクトの作成File -> New -> Other -> Spring Template Project -> Spring MVC Project
の順で選択していく。Importの確認メッセージがでたらYesで継続する。Project NameとPackage Nameを入力してFinish。junitのdependencyでエラーになったため、pom.xmlでバージョンを4.6に変更。Debug As -> Debug on Server でできたプロジェクトを実行する。
今回はTomcat6で実行した。ここまでで、Hello Worldが表示される。 JSONを返す処理Spring MVC Tip: Returning JSON from a Spring Controller
Spring MVCでJSONデータを返すための手順
を参考にして処理を作成した。
pom.xmlにjackson-mapper-aslの依存関係を追加。servlet-context.xmlでMappingJacksonJsonViewを使うように内容を修正。コントローラーにGETに対する処理を追加。
@RequestBody, @RequestMapping, @PathVariableのアノテーションを利用。
Personクラスを返した結果として、JSONに変換が行われる。
とりあえず、ここまで。
ソースは以下にアップ。
https://bitbucket.org/twopack/jsonrest/changeset/5c0ddd8400ba24e9fbdd976dad288567cc653f94

Spring 3.0 + Thymeleafを試してみる(1)

まずはSpring 3.0のチュートリアルを探してきて写経しました。
Spring 3 Hello World Example

このチュートリアルでViewはJSPです。ここにThymeleafでのViewを追加します。
Thymeleafのチュートリアルを見ながら、テキストを置き換えるだけの簡単なコードを書きました。
TUTORIAL: THYMELEAF + SPRING 3
また、チュートリアルのサンプルソースがGithubで公開されています。

はまったところは以下。

resourcesの配置先をsrcの下に置く必要があった。servletのxmlをJSPのものと分けたが、コントローラーも分けてあげる必要があった。
あとはチュートリアル通りでできました。
今のところはただのテキスト置き換えのみなので、他の構文も試してみたいと思います。

写経からThymeleaf用の追加までのソースは以下です。
https://bitbucket.org/twopack/helloworldspring3

Play! Framework 2.0とApacheの設定でのパス

ちょっと試したことのメモ。以下のサイトを参考にさせてもらいました。

Apache使ってPlayFramework 2.0のポート番号をわけて複数アプリを起動する。Set-up a front-end HTTP server

試したことは、上記のサイトのようにApacheを設定したときにPlay!アプリ上でのリンクがどう動くかです。以下のようなリンクをapp1indexに埋めておきます。 <a href="dynamic">app1 dynamic</a><a href="public/static.html">app1 static</a><a href="/app2/">app2</a><a href="/app2/dynamic">app2 dynamic</a><a href="/app2/public/static.html">app2 static</a>
dynamicはコントローラーへ、staticは静的HTMLへのリンクです。http://127.0.0.1/app1/へアクセスしてapp1のindexが表示され、意図したとおりにリンクが表示できました。
Play! Framework 2.0は、今のところサブコンテキストが使えないので、Apacheを使うようですが、相対でリンクを張ってあげれば、
 play run
としたときも、デプロイしたときも想定の動きになりそうです。
って、当たり前か。

Android BindingのチュートリアルでHello World

Android Bindingのチュートリアルを作者のAndyさんが書いています。
ひな形を生成するAntのスクリプトができたとのことで更新されたため、やってみました。
[Tutorial] Hello Android Binding (new) 準備としては、以下です。
EclipseとAndroid SDKを用意。Android-Binding (v0.5+)をダウンロード。Antのビルドスクリプトをダウンロード。 準備ができたらHello Worldしてみます。
新規でプロジェクトを作ります。libsフォルダにダウンロードしたAndroid-Binding(android-binding-v30.バージョン.jar)をコピーします。ダウンロードしたAntのビルドスクリプト(antbuild.zip)を展開して、プロジェクトのルートにコピーします。コピーしたらF5でリフレッシュしてください。ビルドスクリプトを使ってApplicationクラスを作ります。build.xmlで右クリック->Run As -> Ant Build... を選択します。create_application_classをチェックしてRunします。クラス名を入力するダイアログがでますので入力します。F5でリフレッシュするとApplicationクラスができています。ビルドスクリプトを使ってActivityクラスを作ります。build.xmlで右クリック->Run As -> Ant Build... を選択します。new-activityをチェックしてRunします。クラス名を入力するダイアログがでますので入力します。F5でリフレッシュするとApplicationクラスができています。
これでHello Worldのできあがりです。
実行すると、チュートリアルのページにあるような画面が表示されます。

今の段階ではそれほどひな形を作る機能がそれほど便利というわけではないですが、まだ始まったばかりなので今後に期待です。


dotCloudを使ってみる

dotCloudというサービスを使ってみました。
製品ではなくテストや開発では無料で使えます。

サインアップするしてから表示されるページに従うだけで、設定とクイックスタートはできました。
ページの順番は以下の通り。

Installing the CLIQuick Start GuideIn-Depth Example

コマンドラインで簡単にデプロイできますね。
Javaについての説明はここにありました。
PaaS初めて使ってみましたが、他もこんな感じなのかな?

Androidアプリのリリース版がインストールされた端末での開発

Androidのアプリは署名が行われています。
初期設定でこの署名は、デバッグ、リリースで異なるものが使われています。

Playストアに登録するときは当然リリース版になります。
このため、Playストアに登録したものをダウンロードしてある端末を使用してデバッグしようとすると、apkインストール時に以下のメッセージが出て失敗します。
#Eclipseでの結果です。
[2012-07-05 05:57:23 - ConnectLibraries] Re-installation failed due to different application signatures.
[2012-07-05 05:57:23 - ConnectLibraries] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2012-07-05 05:57:23 - ConnectLibraries] Please execute 'adb uninstall jp.gr.java_conf.twopack.connect_libraries' in a shell.
[2012-07-05 05:57:23 - ConnectLibraries] Launch canceled!
メッセージに従って一度アンインストールすればうまく行きますが、アプリのデータも消えてしまうので不便この上ないです。
このため、リリース用の署名をデバッグ用の署名にする方法があります。
以下のサイトで方法が載っていました。
Blog Progamisty Android: Converting release keys to debug
以下のコマンドを実行します。<>の部分は置き換えてください。
$ keytool -importkeystore -v -srckeystore <リリース署名のファイル> -destkeystore <出力先ファイル> -srcstorepass <リリース署名のStoreパスワード> -deststorepass android -srcalias <リリース署名のエイリアス> -destalias androiddeb…

Redmiine XLS Plugin 0.2.0を試す

Redmiine XLS Plugin 0.2.0がリリースされました。
http://www.redmine.org/plugins/redmine_xls_export

変更点をざっくり訳すと以下との事。
Rails 3 (Redmine 2.x.x) 対応。Controllerを全面書き換え - IssuesControllerのモンキーパッチはいらなくなった。ジャーナルのエクスポートを改善。ジャーナルのエクスポートでファイルへの分割ができるようになった。添付ファイルをZIPでエクスポートできるようになった。エクスポート時の開始オフセットを設定できるようになった。というわけで試してみます。

インストール

インストール手順も上記に載っています。コマンドを併記していきます。
環境はここで作ったUbuntu12.04+Redmine2.0.3です。
Install spreadsheet gem ('gem install spreadsheet')
$ sudo /usr/local/bin/gem install spreadsheet --no-rdoc --no-ri
Install rubyzip gem if you want to use export attachments feature
$ sudo /usr/local/bin/gem install rubyzip --no-rdoc --no-ri
Install plugin Plugin views with revisions if you do not have it installed
Plugin views revisionsとXLS Pluginをpluginsフォルダにコピーする。Follow the Redmine plugin installation steps at: http://www.redmine.org/wiki/redmine/Plugins
$ rake redmine:plugins:migrate RAILS_ENV=productionRun rake task
$ rake redmine:plugins:process_version_change RAILS_ENV=productionLogin and configure the…

Ubuntu 12.04にRedmine 2.0.3をインストールする

Ubuntu 12.04にRedmine 2.0.3をインストールしました。

参考サイト
知らんがな » Redmine 2.0 on Ubuntu 12.04 LTS (64bit)Redmineのインストール
手順
Ubuntu12.04をインストール。VirtualBoxにインストールしました。
ほぼ上記のサイトどおりですが、以下の点を変えています。
必要なパッケージのインストールで、libmagick-devがlibmagickcore-devと競合したため抜いた。データベースはsqlite3を使用。webrickを使用。2.0からは起動は、
 $ script/rails server webrick -e production
になった。
これでhttp://localhost:3000でつながりました。

android-bindingのライセンスが変更されました!

以前にandroid-bindingのライセンスについて書きました。
android-bindingのライセンスについて
上記で書いた通り、Google Code上でIssueを発行しておいたところ、対応が行われてMIT Licenseになりました!
下記のリンクがIssueとMLでの通知です。

Issue 25: Android-binding's license is LGPL.AndroidBinding is now under MIT License
これで、Androidアプリ+LGPLでのソース開示などの懸念は解消されたと言っていいでしょう。
ライセンス変更自体は、パッチなどの権利も含めて変更が難しい場合などもあるので、スムーズに事が進んだようでよかったです。
活用の場が広がる事で、android-binding自体も強化されていけばと思います。

android-bindingのライセンスについて

android-bindingのライセンスは、サイトに書いてある通りLGPLです。
http://code.google.com/p/android-binding/

AndroidアプリにLGPLのライブラリを使うことは、ソース公開の必要になる場合があるようです。

LGPLとAndroid - 近況LGPLとAndroid その2Android アプリに LGPL ライブラリを組み込むとソースコード開示義務が発生するらしい: あるSEのつぶやきLGPLに関する追記 « Code Archives

LGPLは動的リンクであれば影響を受けないという認識です。
Androidの場合は、apk、dexにLGPLのライブラリ自体を含むことになるため、影響を受けるということになるという解釈のようです。
私としては妥当だと考えています。

というわけで、LGPLを商用利用する場合は(当たり前ですけど)ソース公開の必要性などに注意が必要となります。
別にAndroidアプリに限らずですね。
ちなみに、Android自体はApache Software License, 2.0で、なぜこのライセンスなのかについて以下で記載されており、LGPLが引き合いに出されています。
Licenses | Android Open Source


話は戻ってandroid-bindingです。
Androidのライブラリなわけですが、上記のとおりLPGLのライセンスとなっています。
商用利用しにくいということで、昨年の年末にライセンス変更について提起されていました。
https://groups.google.com/group/androidbinding/browse_thread/thread/1711f6f186b6a898

提起にされているスレッドでは、MITライセンスへの変更を行うつもりとの記載がありますが、今現在(2012/5/28)LGPLのままです。
折角のいいライブラリなので広く使えるように、ぜひライセンス変更がされるといいなと思います。
いいなと思うからには、やっぱりチケット切っておかないと・・・w
http://code.google.com/p/android-binding/issues/detail?id=25

とりあえず、今回調べて作ろうと思っていたのはソース公開するからいい…

android-bindingを使ってみる その4

android-bindingを使ってみる、のとりあえず区切りです。
今回はGalleryを使います。
実装はこちら。
https://bitbucket.org/twopack/android-binding-sample/changeset/33c63d3b41e8

android-bindingのドキュメントに直接Galleryについての記載はありませんが、GalleryクラスはAdapterViewを継承していてこれについてはサポートしているのでListViewなどと同じように実装できます。
android-binding - Attributes that is (going) to be supported in Android Binding
Gallery | Android Developers


基本的に前回などにListViewで行ったのと同等の実装が可能です。
はまったところについて書いておきます。

項目のレイアウトが左寄せになる。
Galleryは選択されている項目はセンタリングされているものだと思っていたのに、なぜか左寄せに。。。
項目のレイアウトにLinerLayoutを含んでいたためでした。Galleryともandroid-bindingとも関係ないところでしたorz

selectedPositionが反映されない?
android-bindingでselectedPosition属性をバインドすると、選択されている項目の位置を取得できます。
onItemSelected属性のバインドを行って、選択項目が変わったときにその位置を表示するようなサンプルを作っていますが、selectedPositionをonItemSelected属性のInvoke()で確認すると値が更新されず、前の値のままでした。
このバインド自体はAdapterView.onItemSelected()へのバインドなので、Invoke()の引数で選択された位置を取得すればよかったようです。
bitbucketに登録したサンプルでは、この差が分かるように両方表示するようにしてあります。

android-bindingを使ってみる その3

今回はリストビューをバインドして使ってみました。
android-bindingのサンプルでも提供されていますが、以下を試してみました。
リストビューのアイテムとして複数のウィジェットを使用できること。アイテムを随時読む込んで表示するような実装が可能なこと。
android-bindingのMarkupDemoのDynamic Listsのソースを参考にしています。
http://code.google.com/p/android-binding/source/browse/#svn%2Ftrunk%2FAndroidBindingMarkupDemo

実装した結果は以下にコミットしています。
https://bitbucket.org/twopack/android-binding-sample/changeset/3136f4d0742e

リストビューのアイテムとして複数のウィジェットを使用BindingToCollection - android-bindingに書かれている ArrayListObservableを使用してリストビューに対してバインドします。
Tにはリストビューのアイテムのレイアウトに対してバインドする変数を定義したクラスを作って指定します。
ソースは以下のようなものになります。
public transient ArrayListObservable<ListViewSampleItem> listviewItems = new ArrayListObservable<ListViewSampleItem>(ListViewSampleItem.class); 対応するレイアウトのXMLは以下です。
<ListView android:layout_width="match_parent" android:layout_height="match_parent" binding:itemSource="listviewItems" binding:itemTemplate="@layout/listview_item" />
@layout/listview_itemでリストビューの項目レイアウトを定義して、そ…

android-bindingを使ってみる その2

android-bindingの続きです。
前回のソースにアクティビティの開始を追加しました。
ポイントは以下です。それぞれソースのリンクも併記します。
ViewModelのJUnitでテストできる状態を維持する。
https://bitbucket.org/twopack/android-binding-sample/changeset/6cf2bd843f36アクティビティの開始をテストする。
https://bitbucket.org/twopack/android-binding-sample/changeset/c44ee14f5722
1. ViewModelのJUnitでテストできる状態を維持する。 android-bindingのサンプルであるMarkupDemoでは、リストビューの項目をクリックした際にインテントを発行してアクティビティを開始するコードがあります。
リストビューの項目をクリックした際の処理は、Commandクラスを使用したバインドによって行われます。

layoutの中でバインドできる属性については、以下のページで記載されています。
http://code.google.com/p/android-binding/wiki/BindingSyntax


// ”onClickItem”は、layoutのbinding:onItemClickedで定義したもの。 public final Command onClickItem = new Command() { @Override public void Invoke(final View view, final Object... args) { // ここにクリック時の処理 }; };
ここで単純にインテントを発行すると、Androidの中のものを動かさないといけなくなるため、JUnitでの(エミュレータを使用しない)テストができません。
そこで、実際のインテント発行はアクティビティ側で実装し、アクティビティで実装したメソッドをViewModelに登録して呼び出すようにしました。
ViewModelとしては、登録されたメソッドの呼び出しまでは責務となるため、JUnitでテストが可能です。

2. アクティビ…

android-bindingを使ってみる その1

Androidアプリ開発での自動テストをやってみようと言う流れで、android-bindingを使ってみました。
参考のサイトを参考にしました。
より効率的に開発するために ~スマートフォン時代のソフトウェアテスト・アプローチ[Android]Android Bindingを使ってみた(1)〜(3)[Tutorial] List Views in Android Binding (1/4) 〜 (4/4)双方向Bindingが可能なAndroid Binding v0.45を使ってみたAndroid Binding Markup Demoを読み解く ~リストクリックからイベント駆動まで~
とりあえず使ってみた&テスト書いてみたというソースは以下です。Activityに記述するコード量が非常に少なくなっていると思います。
https://bitbucket.org/twopack/android-binding-sample/changeset/bb43ab2cba02

また、PojoViewModelを使うとMVVMのViewModelをPOJOにできるため、テストコードの実行時にAndroid環境へのインストールが不要になります。これはTDDを行う上でテストの実行にかかる時間が大分短くなるのでとてもいいです。

テストコードをエミュレータで動かさないと、NoClassDefFoundErrorが起きてしまいました。ここではまりましたが、エミュレータ外で動かす場合には、Eclipseで以下の設定を行いました。
Debug ConfigurationsClasspathBootstrap EntryJREを追加。 User Entriesandroid.jarを追加。Debug ConfigurationsJREEnvironment executionJavaSE-1.6を選択。Debug ConfigurationsEnvironmentSelect othr...Eclipse JUnit Launcherを選択。
やってみたのはごく簡単なものなので、メリットを享受したままで実際にどこまで有効に使えるのか、引き続き試してみたいと思います。

Androidのコーディングルール

Androidのコーディングルールについて調べたので備忘録。
Code Style Guidelines for ContributorsコントリビュータのためのAndroidコードスタイルガイドライン 日本語訳
これにまつわるツール類。 CheckStyle
Googleが定義を公開してはいないようです。
以下のページに参考にしました。
memorandum / Android CheckStyle設定

また、UnofficialながらMozillaのものもありました。
https://github.com/mozilla-services/mozilla-style

EclipseでのCheckStyleの設定方法はここを参考にしました(そこからかorz)
http://www.atmarkit.co.jp/fjava/rensai3/eclipsetst02/eclipsetst02_2.html

Formatter
以下のページを参考にしました。
ReDo / EclipseのJavaフォーマッター インポート用XML
また、以下にGoogleが各種ガイドラインを出してる。 google-styleguide