Androidのコードをライブラリ化して他プロジェクトでも使えるようにする手順

以前、Kotlinの高階関数で遊んでいた時に、ロギング用のユーティリティを作っていたのですが、他のサンプルアプリやプロジェクトでも同様の処理を行うことが多々あったのでライブラリ化して使いまわせるようにしました。

ライブラリ化のために行った設定などを書いておきます。

元ネタの処理はこれ

いつも通り、ライブラリのコードなどは github上に置いてますので、そちらも参照ください。

環境

  • macOS Sierra 10.12.6
  • Android Studio 3.0

ライブラリ公開するまで

Android Studio ではライブラリ単体のプロジェクトを作成するということが出来ないみたいなので、一旦通常通りのAndroidアプリのプロジェクトを作成します。

その後、下記手順でライブラリのプロジェクトとして公開するようにします。

build.gradle の変更

こちらの記事を参考にさせていただきました。
【Android】Libraryを作ってprivateなgithubリポジトリにpushして、チームのみんなでgradleに書くだけで使えるようにするまで

変更は3点

  1. build.gradle の先頭で apply plugin: 'com.android.application' となっているところを apply plugin: 'com.android.library' に変更

  2. Maven リポジトリ作成用のタスクを追加

  3. applicationId の定義を削除

build.gradle としては下記のようなファイルになるかと。

apply plugin: 'com.android.library' ではなく apply plugin: 'android-library' と書いてある記事などもありますが、今は ‘android-library’ の記載は非推奨になっていて、下記のような警告がでますので ‘com.android.library’ を使うようにしています。

また、3. で applicationId の定義を削除していますが、定義を残しておくと下記エラーが出てビルドできなくなりますので削除しています。

自動で付与されるので明示するなということでしょうかね。

ライブラリ生成タスクを実行

作成した uploadArchives タスクを実行してライブラリを生成します。

あとは生成物をプッシュすれば公開完了です。

ライブラリ利用側の設定

リポジトリのパスを設定し、ライブラリの参照を追加すればOKです。

リポジトリのパスは、github上のリポジトリであれば https://raw.github.com/${githubのユーザ名}/${githubのプロジェクト名}/${リポジトリまでのパス} でいけます。

github 上の階層と照らしあわせてもらえればどういうパスになるかイメージできるかと思います。

ちなみに、Android Studio 3.0(で使われる Gradle 3.0) から dependencies に compile を指定するのは非推奨になっています。今回のように Android のライブラリを参照する場合は implementationとするのが良いようです。

implementation にするとビルド時間が劇的に早くなるそうですよ。

さいごに

同じような処理はライブラリ化して使いまわそうと思っていますが、プロジェクトをまたいで共有するのは後回しになってました。

今回、それほど苦なく共有できたのでよく使う部品は積極的に共有するようにしていきたいと思います。

(2017/10/30追記)
作成したライブラリ、Javaから見ると微妙だったので少し改良しました。


最後まで読んでいただきありがとうございます。 このブログを「いいな」と感じていただけましたら、Twiter にてフォローいただけるとうれしいです。ブログ更新情報などもお届けします。



この記事をシェアする




りゅーた
フリーランスのエンジニアしてます。Android、iOS アプリの開発、対向サーバの開発、C/C++のライブラリ開発が現在のメイン。趣味はテニス・ゲーム・自転車。2児の父

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA