Android のライブラリの作りかたと Bintray にアップロードするまでの手順
Aileron という Android のライブラリを作成しました。Activity や Fragment の生成時に、Intent に詰めた引数を取り出す手間を減らすためのライブラリです。ちなみに、Aileron(エルロン)とは、飛行機の補助翼のことです。
折角作ったならば、使う時は build.gradle に、以下のように一行追加すれば、ライブラリを使えるようにしたい。今回は、Bintray というサービスにライブラリをアップロードして、それを実現しました。
dependencies {
compile 'com.rakuishi:aileron:0.1.0'
}
この記事では、Android Studio でのライブラリを作りかたと、Bintray にライブラリをアップロードするまでの手順を紹介します。
Android Studio でライブラリを作る
Android のライブラリを作る時は、まずはサンプル用のプロジェクトを作り、そこにモジュールとしてライブラリを組み込むのが一般的みたいです。
まずは普通に、新しく Project を作成します。Application name は、ライブラリ名で良いですが、Package name は、com.rakuishi.aileron.sample のように、最後に sample を付けておくと後で変える手間が減ります。
Project を作成し終えたら、ルートディレクトリの app フォルダを 副クリック → Refactor → Rename → Rename module から、sample に名前を変えます。特に必要な作業ではありませんが、ライブラリの多くは、sample というフォルダ名を採用しているため、その習慣に倣いました。
Menu → File → New → New Module からモジュールを追加します。ライブラリの種類は、Android Library を選択しました。パッケージ名を com.rakuishi.aileron のようにし、Minimum SDK を設定します。
※ ここで module の名前が重複する場合は、Project を作成するときの設置フォルダ名を変えると良いです。
後は、sample の build.gradle に、dependencies を追加すれば、ライブラリを sample で使えるようになります。
dependencies {
// 省略
compile implementation(':aileron')
}
Bintray にライブラリをアップロードする
Bintray に Sign In します(今回は、GitHub ログインを行いました)。その後、ユーザー画面 Edit → API Key 画面から、アップロードする際に必要になる API Key を確認できます。
bintray-release
ライブラリをアップロードするために、novoda/bintray-release というヘルパーを使用します。build.gradle にライブラリに必要となる情報を入力して、コマンドを叩くと Bintray にライブラリを登録する作業を行ってくれます。
ルートディレクトリにある build.gradle に、bintray-release を追加します。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.novoda:bintray-release:0.3.4' // 追加
}
}
次に、ライブラリディレクトリにある build.gradle を以下のように修正します。lintOptions
ですが、自分の環境では設定しないとエラーでアップロード出来なかったため追加してます。
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release' // 追加
android {
// 省略
lintOptions {
abortOnError false
}
}
dependencies {
// 省略
}
// 以下、必要な情報に書き換える
publish {
userOrg = 'rakuishi'
groupId = 'com.rakuishi'
artifactId = 'aileron'
publishVersion = "0.1.0"
desc = 'Extracting values from bundle in activity or fragment made easy.'
website = 'https://github.com/rakuishi/aileron'
}
後は、以下のコマンドを叩くと、Bintray にライブラリが登録されます。User と API Key は、適宜変えてください。
$ ./gradlew clean build bintrayUpload -PbintrayUser=[bintrayUser] -PbintrayKey=[bintrayKey] -PdryRun=false
jcenter に登録する
Bintray の maven にライブラリが登録されたら、次に jcenter に登録します。以下のスクリーンショットは登録後なのですが、右下に jcenter に追加するボタンがあるはずなので、そこから申請を行います(フォームには特に何も埋めませんでした)。
自分の場合は、2 時間ぐらいで承認されました。jcenter に追加された後は、以下のように、一行追加するだけでライブラリが使用できるようになります。お疲れ様でした!
dependencies {
compile 'com.rakuishi:aileron:0.1.0'
}