≒ Proguardで嵌った件

今回はアプリ公開の顛末は書き残さないことにしたんだけど、公開直前、最後の最後にProguard設定でチョイ嵌りしたので備忘録。

  1. 基本的なところ。今回広告ユニット導入したのでいままでのアプリが700kbぐらいに収まってたのが2.2mbぐらいになった。そんで「shrinkReleaseMultiDexComponents」エラー発生。
    これはググってすぐ解決。appのbuild.gradle、「defaultConfig」に「multiDexEnabled true」設定記述でOK。メソッド数上限超えたらしい。
  2. アナリティクスの設定マニュアルによると最上位のbuild.gradleとアプリ単位のbuild.gradle両方にdependencies記述必要になってるんだけど、これいらん。バッティングしてエラー。アプリ単位のbuild.gradleに記述でOK。
  3. 上記2つでデバッグビルドはOK。リリースビルドだけ出来ない。小一時間ほど嵌ったけど毎度おなじみ、皆大好きスタックオーバーフローで解決。いろんなとこにいろんな情報かいてるんだけど、このページの最後のほうの「gradle自体のバージョンをあげろ」だけで解決。「バッティングしてるクラスさがしてProguardのalert除外設定しろ」って解決策が良く出てくるんだけどそれいらんかったです。

この記事書くのに色々再現させていたら驚愕の事実が! 上の1と2もイランw 3だけでいいことが判明。確かに1の設定マニュアルにある「play-services-analytics」と広告表示用の「play-services-ads」でも3やる前はバッティングでエラー出てたもの。早速apk差し替えしとこう。

≒ ColorExtractorの件

昨日Androidアプリ新作公開しました。
ColorExtractor

メモみると1月10日スタートなんで約2ヶ月弱かかった。

最初は簡単なツール作ってAndroidアプリに広告付ける処理の練習にしようと思ってはじめて、メモ見返すと2週間程度で想定してた実装は終わってるんだけど、

例によってその後迷走しちゃって、いつの間にかopenGLとか弄ってる始末w おかげで色空間については色々勉強になった。

今回も顛末記録しとこうかと思ったけど、メモも残してあるんでやめておきます。それより次のコーディング始めよう。

とりあえずマンセル色立体が面白かったんで、webで見れるようスクリプトオンリーのページ作ろう。久しぶりにthree.js触ろう。

アプリの内容は

  1. 名前のとおり「色抽出」。過去のアプリでも似たような処理入ってるんだけど、もうちょっとアルゴ改良して2色まで減色する処理実装しました。
    処理内容は「基本はoctree」「16色以下は近似色排除」。けっこう上手く行ってるんじゃないかとちょっと自画自賛。
  2. 色値の色空間相互変換。計算式はいろんなとこで調べたんだけど正直自信ない。でもまぁwebでよく見かける相互変換サービスレベルには達してるので良しとしました。
    具体的にはRGB値から他への変換はほぼ正確(=一意)なんだけど、他からRGB値への変換はどうしてもあふれちゃうんで足きりしてます。つまりRGBからの変換しか本格的に使うには
    信用できない値になっちゃってるかと。webで見かける実装は調べたんだけどどこも足きりしてるし、これで妥協しました。
  3. マンセル色立体の3D モデル。面白かった。でも影付けしてるのは色見本としては落第だよね。分かってたけどやっちゃったw

です。よかったら使ってみてご意見ください。

160304追記

ページできました。やっぱりロジックはアプリからの流用なんで3日でできた。でもAndroidStudioに慣れちゃって、EclipseでのJavaScript/HTMLのコーディングが辛すぎw

コード補完が無いとコード書けない体にますますなってる。そういう意味でもJavaScript/HTMLのコーディング、たまにはしないと。つーかWebStorm買うか?