2015-12-01から1ヶ月間の記事一覧

Rebuild.fm 120 に出ました&今年のまとめ

今年の総括エントリでも書こうかな、と思ったのですが、だいたい12月冒頭の #rebuildfm 120 で喋った気もします。 Rebuild: 120: Swiftonomics (gfx) Rebuild: Aftershow 120: Cooperative Single-Tasking (gfx) まあ被ってもいいやということで、今年の振り…

Robolectric-InstrumentationでテストをRobolectricとAndroid両方で走らせる

Table of contents: 概要 Robolectric Instrumentationを導入する testInstrumentationRunnerを設定する robolectric.propertiesを導入する src/test を src/androidTest にシンボリックリンクする テストをAndroid Instrumentation Testing API準拠にする F…

テストクラスをAndroid Instrumentation TestsとRobolectric Tests両方で走らせる

(追記: このハックはライブラリとして独立させました gfx/RobolectricInstrumentation · GitHub) Robolectricは便利ですが、Oracle JREとAndroid Runtimeの微妙な挙動の違い、特にAndroid Runtimeにバグの回避するようなコードのテストができないという問…

Android-Orma 進捗(v0.18.0時点)

gfx.hatenablog.com このエントリの続きです。あれから順調に開発は進み、だいたいやりたいことができるようになりました。 gfx/Android-Orma · GitHub 先日行われた 天下一「AndroidのORM」武道会(2015年版) - Qiita では好成績を残し、Realmにはかなわな…

AndroidライブラリでANTLR4によるパーサを生成&使用する

三行まとめ ANTLR4で生成したパーサはAndroidからも利用可能 ANTRL4によるパーサはJavaCCによるパーサと比べてずっと遅く、実機では10ms単位で時間を使うので注意 ANTLR4を組み込むにあたってのビルドスクリプトはAndroid-Orma/migration/build.gradleを参照…

Observableでリストを得るインターフェイスの設計の具体例を少々

RxJava Advent Calendar 2015の最終日です。軽めにいきます。 Observableでリストを得るインターフェイスを Observable<T> にすべきか Single<List<T>> にするべきか迷うことがあると思います。 結論からいえば、迷った時は Single<List<T>> だろうと思っています。 List<T> を得る</t></list<t></list<t></t>…

RxJavaのミニマム実装でScheduler周りを書いてみるゾ!

RxJava Advent Calendar 2015 の23日分です。 はい、さっそくですがRxInTheBoxにSchedulerを実装しました。 observeOn() と subscribeOn() が本家RxJava同様の振る舞いをします。 add subscribeOn() and observeOn() to RxInTheBox by gfx · Pull Request #2…

Android CI with Docker on Circle CIを高速化する

追記: 実際に運用するときはライセンス問題にご注意ください: 公開用DockerイメージにAndroid SDKを含めるのはライセンス違反という話 - Islands in the byte stream 私は個人プロジェクトでもそれなりの規模になるときは、プルリクエストベースで機能開発し…

RxJavaのsubscribeOn()とobserveOn()を使いこなしたい

RxJava Advent Calendar 2015 の 12月12日分です。 RxJavaのSchedulersは、RxJavaのコールバックの実行スレッドを制御するためのコンポーネントです。 恥ずかしながら、最近まで subscribeOn() と observeOn() の使い方を理解していませんでした。よって本稿…

Support Condition Query Helpers in Orma v0.9.0

gfx/Android-Orma · GitHub condition query helpersってのは次のコードの titleEq() みたいなやつです。モデルに定義した @Column(indexed = true) なカラムについて、*Eq() *NotEq() *In(), *NotIn() などのヘルパーメソッド(中身は where() を呼び出すだ…

Robolectric 3.0でandroid.util.Logの出力を確認する方法

テストケースクラスで以下の用に設定すると、 android.util.Log の結果がAndroid Studioのテストログに出力される。 static { System.setProperty("robolectric.logging", "stdout"); } テスト実行の際のVM optionsに -Drobolectric.logging=stdout を与えて…