タグ

ブックマーク / esmasui.hatenadiary.org (6)

  • Eclipseでdagger-androidmanifest-pluginを使うためのビルダーつくった - _development,

    dagger-androidmanifest-pluginをEclipseで使うためのビルダーをつくりました。 dagger-androidmanifest-pluginはdaggerをAndroidで使う際に便利なライブラリで、AndroidManifestに登録されたActivityなどをentry pointにしたModuleを自動生成してくれます。 ただ、dagger-androidmanifest-pluginはmaven, またはantなどのビルドシステムから実行するのを前提に作られているため、それらを使わない環境では使えません。 そこで、AndroidManifestの変更を監視してdagger-androidmanifest-pluginを実行するビルダーをつくりました。 使い方は次のとおりです。 プラグイン(com.uphyca.dagger.androidmanifes

  • Android用DIコンテナDaggerはGuiceの数倍速い - _development,

    概要 Android用のDIコンテナDaggerのパフォーマンスをGuiceと比較しました。 Dagger自体の使い方などは述べていませんので、公式サイトのドキュメントなどを参照してください。 DaggerはSquare社製のAndroidをターゲットにしたDIコンテナです。 開発者の一人であるJesse Wilson氏がプレゼンテーション(InfoQ - Dagger: A Fast Dependency Injector for Android and Java)のなかで It's like Guice, but with speed instead of features と述べているように、Guiceと同じくJSR330のAnnotationを使ってオブジェクトの依存関係を記述します。また、上述のとおりGuiceでサポートされている機能のいくつかはサポートしないかわりにパフォーマン

    Android用DIコンテナDaggerはGuiceの数倍速い - _development,
  • Android, Maven and Eclipse - Quick Start - _development,

    概要 Androidプロジェクトの構成管理にMavenを使い、ADT/Eclipseで開発するための初歩の環境構築手順です。 以下を前提とします。 Android SDKは導入済みとする ADT/Eclipseは導入済みとする Mavenについて細かいことは聞かない またエントリは基的な手順のみを述べており、ライブラリプロジェクトやDependencies、APTなどを使用する手順については述べていません。 Mavenのインストール コマンドラインからMavenを使うために、Mavenをインストールします。 以下は、macportsを使ってインストールする例です。macports以外での導入方法は省略します。 $ sudo port install maven3 $ sudo port select --set maven maven3 インストールしたら、バージョンを確認しておきまし

    Android, Maven and Eclipse - Quick Start - _development,
  • はじめてのDependency Injection - _development,

    Android Advent Calendar 2012 に参加しています。 エントリはDependency InjectionによるAndroidアプリケーションの実装とテストの一方法について述べています。 文中に出てくるコードは全てgithubから取得できます。 Dependency Injectionとは簡単にいうと、あるオブジェクトが依存しているオブジェクト(以下、Dependency)を別の誰かが注入(以下、Injection)してあげることでオブジェクトの関係を疎結合にする方法です。 Dependencyを誰かがInjectionしてくれると、なにがいいのか? まず、逆に誰もInjectionしてくれない場合を考えてみます。 Dependency Injection 前 誰もInjectionしてくれない場合は自分でDependencyを設定するしかありません。 たとえば、天

    はじめてのDependency Injection - _development,
  • Class loading playground in build process - _development,

    Android(アプリケーション)のビルドは時間がかかるので、時間を短縮する実験をしてみました。 ビルドプロセスで時間がかかる箇所のうち、エントリの対象は以下の2箇所です。 アプリケーションのパッケージング パッケージのデバイスへの転送 特に、依存ライブラリの.jarファイル(android-support-v4.jarのような)など、最初にimportした後は変更しないアーティファクトが及ぼす上記への影響を対象にします。 これらの.jarファイルを静的に.apkにパッケージングせず、実行時にリンクさせることでビルド時間の短縮を図ります。 Androidはアプリケーションのファイルが増えてくると比例してビルドに時間がかかるようになります。 なぜなら、Androidアプリケーションのビルドでは、アプリケーションのファイルを全てまとめて単一の .apkファイルに圧縮し、これをデバイスに転送す

    Class loading playground in build process - _development,
  • JUnit4 works on Android - _development,

    AndroidでJUnit4を使うためのライブラリ、AndroidJUnit4 を公開しました。 Androidは標準状態ではJUnit4が使えませんが、上記ライブラリを使えば可能になります。 このエントリでは、AndroidでJUnit4が使えない理由と、それを可能にするためライブラリで行なっていることの概要を述べます。 AndroidでJUnit4が使えない理由 AndroidでJUnit4が動かないのは何故なのでしょうか? もちろん、Androidに同梱されているJUnitは3.x系なので、そのままではJUnit4は動作しません。 しかし、JUnit4にはJUnit4TestAdapterというクラスがあり、これを使えばJUnit3の実行系でJUnit4のテストを実行できます。 JUnit4TestAdapterの利用 package com.uphyca.testing.test;

    JUnit4 works on Android - _development,
    doboccho
    doboccho 2012/09/11
  • 1