まあ、探せばいくらでも出てくるんですが、宣伝もかねて。
https://play.google.com/store/apps/details?id=com.collection.wather.weathertools
本当はもっといろいろ作っていたのだけれども、完成の日の目を見たいがために機能を削りまくってます。その結果、意味をなしていないProguardも備忘録を兼ねて記しておきます。
Glide
画像ライブラリ
Picassoと悩んだのですが、こちらの記事でGlideにしました。
http://qiita.com/rejasupotaro/items/ead90beaeaa2a6eace35
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
Gson
パーサー
ここに書かれているものだけではだめで、デシリアライズしたデータを格納するクラスもkeepを忘れずにしないといけません。
-keep class com.google.gson.**
-keepattributes *Annotation*
-keepattributes Signature
-keep class sun.misc.Unsafe { *; }
OkHttp
通信ライブラリ
いわずもがな。
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Retrofit
通信ライブラリ
GsonとOkHttpと組み合わせて使ってます。
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-dontwarn com.google.appengine.api.urlfetch.*
Maps
グーグルマップ
地図を表示させたかったんです。
-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }
Crashlitics
クラッシュ解析
いまならfirebaseの方がいいかも。
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
ButterKnife
View Injectionライブラリ
v7からか?これを使うとビルドがすこぶる遅くなったので速攻で消去しました。
-keep public class * implements butterknife.internal.ViewBinder { public <init>(); }
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * { @butterknife.* <methods>; }
-keepclasseswithmembernames class * { @butterknife.* <fields>; }
Twitter4J
Twitter非公式ライブラリ
楽になりますね。
-dontwarn twitter4j.management.**
-dontwarn twitter4j.TwitterAPIMonitor
-dontwarn twitter4j.internal.**
-dontwarn twitter4j.Annotation
-keep class twitter4j.** { *; }
おわりに
proguardの設定はデバックビルドだと気づけないので、意外とはまるポイントの1つですね。gradleでsyncしたときに自動で挿入されるようになるといいですね。