Android

potatotips #7 at DeNA で Power Assert について発表しました

potatotips #7 at DeNA を開催しました! 今回も面白い話が多く大変勉強になりました。 さて!私はここ二週間ほど開発していたAndroid Power Assertについて発表しました。 https://speakerdeck.com/gfx/jun-hapower-assertwozhi-tuteiruka-number-potatotip…

JavassistでAndroidメタプログラミングする

三行まとめ JavassistはJavaのクラスファイル(バイトコード)を操作するライブラリ バイトコード注入をJava風の構文で行えるのが特徴 Androidでも、Gradleに仕込みをすることでJavassistを使うことができる 詳細 Gradleはビルドプロセスのカスタマイズがし…

Bolts-Androidで連続したHTTPリクエストをウォーターフォールにする

Facebook (Parse) が開発している Bolts-Android は asyn.js のように、ネストしたコールバック呼び出しをウォーターフォールで記述できるライブラリである。コールバックのネストをウォーターフォールで記述できるというのもありがたいが、処理をTaskに分割…

android.compileOptions.targetCompatibility は sourceCompatibility と一致していなければいけない

(追記: 最初targetCompatibilityを1.6, sourceCompatibilityを1.7にするのがベストだと考えたが、ビルドできなかったので修正)Android Studio (as of 0.5.5) で新規プロジェクト作成のとき、Java7を選ぶことができる。しかし、Java7に対応しているのは And…

ASMをつかってdex前にclass fileを覗き見る

Manipulating Java Class Files with ASM 4 - Part One : Hello World! をAndroidのプロジェクトにやってみた。 https://github.com/gfx/Android-AsmExample まず /buildSrc/build.gradle *1 に ASM の依存を書く。 apply plugin: 'groovy' repositories { m…

Android端末でassertを有効にする

以下のやりかたでできました (Android 4.1.1 GenyMotion)。わりと簡単にできるので、検証端末は常にenabledでよさそう。 adb shell setprop debug.assert 1 # enable assert adb shell setprop debug.assert 0 # disable assert

Q. Gradle Wrapper (gradlew) はリポジトリにコミットするの?

短い答え:コミットする。長い答え:以下参照Chapter 61. The Gradle Wrapper The wrapper is something you should check into version control. By distributing the wrapper with your project, anyone can work with it without needing to install Grad…

Volleyを使うのがかなり簡単になってた

以前はAndroid Studioで使うのが面倒くさかった volley ですが、最近は簡単にdependenciesに追加できるようになりました。git submodule addしてsubprojectとして設定してdependenciesに加えるだけ。ハマりどころしては、volley/build.gradle に指定している…

CodeModelでJavaのソースコードを生成する

この頃はgradleでAndroidのビルドを行うようになり、それに伴いJavaのソースコードをビルド時に生成する機会も増えてきたと思います。それでは、Javaのソースコードはどうやって生成するのがいいでしょうか。文字列結合も悪くないのですが、文法の妥当性を保…

Androidのランチャアイコンをデバッグビルド時にモノクロにする

DevFaviconのAndroidアプリ版です。GradleはJavaのフル機能を使えるので、ちょっとした画像処理ならビルド時にやってしまえるのです。また、gradle android pluginではbuild variantsという仕組みを利用してビルド設定ごとに異なるリソースを組み込むことが…

ListよりArrayListのほうが速いって本当?

結論:どちらも同じなので意味的に適切だと思う方を使ってよい発端は以下のツイートだ。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createEl…

Gradleの共通ルーチンをライブラリ化してテストもする

https://github.com/gfx/gradle-android-utils (see .travis.yml, build.gradle, test/test.gradle) Android Studioで開発していてGradleを書いていると共通ルーチンをライブラリ化したくなるわけですが、そうなると当然テストしたりCIしたりしたいですよね…