gradleで使うファイルについて

2013-10-02

gradleコマンドは、いくつかのファイルを暗黙的に使ってビルドを行います。
(antのbuild.xmlやmavenのpom.xmlと同じですね。)

gradleが使うファイルには下記のようなものがあります。

  • build.gradle ・・・ メインのビルドスクリプトです。
  • settings.gradle ・・・ 設定ファイルです。プロジェクトツリーを定義します。マルチプロジェクトの場合必ず必要となります。
  • gradle.properties ・・・ プロパティを設定します。ここで設定したプロパティはbuild.gradleから参照することができます。

gradleはカレント・ディレクトリからbuild.gradleを探し、このファイルを参照してプロジェクトのビルドを行います。
つまり、build.gradleのおいてあるディレクトリでgradleコマンドを実行してあげないといけないということですね。

[続きをもっと見る…]

Android Studioとgradle

2013-09-15

gradleとは・・・

JVM言語向けのビルドツールです。Groovyで記述され、Groovyでタスクを記述することができます。
JVM言語向けビルドツール、と書いたのは、Javaだけでなく、もちろんGroovy, Scala等のビルドを行うこともできるからです。
AndroidStudioでは標準のビルドシステムとして採用されています。

Javaのビルドツールには

  • Ant
  • Maven
  • Ivy

等がありますが、これらのxmlベースでタスクを管理するビルドツールに比べて、柔軟なタスクの記述ができるようになっています。
また、

  • gradleからAntを実行
  • MavenやIvyのリポジトリを依存関係解決に使用

したりと便利な機能も備えています。

[続きをもっと見る…]

データ移行

非常に一般的で良くある話です。
それなのに、データ移行の確からしさについては議論されることが少ないように感じます。
データ移行の手順については比較的良く議論されるのですが。

データ移行の手順についてレビューを行っていると、必ずといっていいほど、その手順が、そのスクリプトが正しいかどうかという会話になります。
帰着として、「動かして確認しよう」というパターンが多いです。

[続きをもっと見る…]

androidでJSONを扱う機会があり(昨今のAPIはJSON形式のものが圧倒的に多いのでJSONを扱う機会は私に限らず多いと思うのですが)、
JSONをオブジェクトにパースするライブラリについて調べてみました。

1. android.util.JsonReader

実は、JsonReaderクラスがandrodの標準APIに存在します。

[続きをもっと見る…]

order byにインデックスが効かないケースの前に・・・order byにインデックスが使用されるのは、どんな時?

  • 単独でインデックスが張られているカラムをorder byに指定したとき。
  • Where節内で使用したカラムとorder byで指定したカラムと合わせて複合インデックスが張られているとき(ただし、Where内では定数が指定されていること)

この通りに指定してもインデックスが効かないケースがあります。

それが下記です。

[続きをもっと見る…]

MySQL4.1のEXISTSに関するドキュメントが大変紛らわしいのです。

サブクエリで値がまったく返らない場合、EXISTS <subquery> は TRUE になり、NOT EXISTS <subquery> はFALSE になります。 次に例を示します。

SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);

http://dev.mysql.com/doc/refman/4.1/ja/exists-and-not-exists-subqueries.html

これだと、まるで、

[続きをもっと見る…]

とても便利なGenymotion

2013-08-27

私はAndroidアプリの開発に

  • AndroidStudio
  • Gradle
  • Genymotion

の3つを使っています。

Genymotionというのは、android端末のエミュレータです。
なぜGenymotionかというと・・・

  • Androidの標準エミュレータは起動が遅すぎて毎回立ち上げるのがつらい。
  • 実機を買い揃えるにはもっとつらい。

そこでGenymotionです。
GenymotionはVirtualBoxを利用して仮想エミュレータを作成します。

[続きをもっと見る…]