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

Android Orma入門

2015年の11月から開発を続けているAndroid用O/R Mapper Ormaですが、このほどv1.0.0をリリースしたので入門記事を書きました*1。 UPDATE: この記事の対象はv4.1.0です。最新版はリポジトリでご確認ください。 関連エントリ: ActiveAndroidからOrmaに移行する…

Android Javaでフィールドにmプレフィクスをつけるのはやめよう

Android Javaでは昔からAOSPのcoding style guidelineに則ったスタイルがとられることが多いようです。そのなかで、private fieldに "m" (member) や "s" (static member) などのプレフィクスをつけよ、というものがあります。 AOSP Java Code Style for Con…

PerlのRegexp::TrieをRubyに移植した

GitHub - gfx/ruby-regexp_trie: Optimized Regexp builder with Trie (a Ruby port of Perl's Regexp::Trie) # Gemfile gem 'regexp_trie' これははてなキーワードやWikipediaのリンクのように、ある程度の量のテキストに対して大量のキーワードをマッチさ…

Retrofit 1.9.0からRetrofit 2.0.0-beta3に移行した記録

Retrofit 1.9.0 を使っていたコードをRetrofit 2.0.0-beta3に書き換えてみたら思いのほか変更が多くて大変でした。 全体的に、Retrofit自体がOkHttpのみに依存するようになったことで、OkHttpと重複する機能が削られるなどインターフェイス全域にわたる大き…

Android LibraryはconsumerProguardFilesでProGuardの設定をAARに同梱できる

まあタイトル通りなんですが、このことは意外と知られていないようです。 apply plugin: 'com.android.library' android { defaultConfig { consumerProguardFiles 'proguard-rules.pro' } } というのも、Android Gradle Pluginのユーザーガイドには載ってい…

RobolectricでAndroidManifest.xmlにアクセスできない問題

調べた結果、どうもAndroid Studio 1.5.xでJVMテストを起動する場合のカレントディレクトリと、コマンドラインからJVMテストを起動する場合のカレントディレクトリが違うのが原因であるようでした。 この対応は難しいので、Robolectric-Instrumentationでは …

ActiveAndroidからOrmaに移行するための4つのステップ

だいたいOrmaでAcitiveAndroid (AA) を置き換える準備が整ったので、手順を書いておきます。 Table of Contents Table of Contents Step 1 - インストール Step 2 - スキーマ定義 Step 3 - 初期化 Step 4 - CRUD操作 その他注意点 Step 1 - インストール bui…

Annotation Processor開発にJava8は使っていいのか

AndroidでJava8は使えるのか? - Islands in the byte stream は実行環境の話で、 Androidアプリ開発にJava8は使えない という話でした。今回は開発環境の話です。 短い答え Annotation Processor*1はAndroidアプリのコードには含まれないのでJava8で開発し…

Elasticsearch+Railsでフィールドがどうanalyzeされるかをドキュメントごとに見る

環境: Elasticsearch 1.7.3, elasticsearch-rails 0.1.8 ドキュメントごとにフィールドがどうanalyzeされて格納するかを管理画面に表示したいのだけど、そういう便利APIはないみたい。 そこでmappingの設定を読んで一つ一つ _analyze するユーティリティを定…

Orma v0.22.0でKotlinに対応した

環境: Kotlin 1.0.0-beta-4584, Orma v0.22.0, JDK 1.8.0_66 Kotlin*1自体はJava Annotation Processingにも対応しているので、JavaからKotlinのコードを呼べるようにするだけでよかった。 Ormaは生成したコードからモデルであるクラスを参照するので、Java…

AndroidでJava8は使えるのか?

まず「Java8」というとき、それがどういう意味なのか考えないといけません。 「Java8」のコンポーネントには主に次の三種類があると思います。 lambdaを代表としたJava8の構文 streamやoptionalなどのJava8の標準ライブラリ 最新のJVMの仕様(特にGC) 最後…

近い将来AndroidのクラスライブラリがOpenJDKベースになるらしい

Google confirms next Android version will use Oracle's open-source OpenJDK for Java APIs | VentureBeat | Dev | by Emil Protalinski AOSPへのコミットへのRedditスレッドから発展し、12/29にVentureBeatがGoogleからコメントをもらいつつ記事にされた…