2012年7月13日金曜日

お買い物アプリを Google Play で公開してます

android 用スマホアプリとして、お買い物メモを公開しています。
Google Play - 何買う?

我ながらイマイチなアプリ名ですが、スーパーに頻繁に買い物をする奥様で、
「とにかく買うものをリストできるればいい!」という方であれば、便利に使ってもらえるんじゃないかと思います。


差別化のポイントとしては、以下の4点です。
  • 商品の写真が大きく表示されるので見やすい。
  • 商品の写真は Google 検索で好きなものを選択できます。イチイチ撮影しなくていいです。
  • 履歴機能があるので、よく買うものは、履歴から登録することができます。
  • そろそろ買うものと思われるものを候補リストで表示します。
    (2回以上、購入履歴があるものは、購入間隔から次の購入予定日を推測)


比較的?アプリの更新をしていますので、ドシドシダウンロードが増えるとうれしいな~と。

これを見て、「ダウンロードしてやるぜ」 という奇特な方をお待ちしています。


2012年5月9日水曜日

ProGuard が勝手にコンストラクタを削除した件

難読化ツールと言うくらいなので、てっきり難読化だけするのかと思いきや、
ProGuard さんは不要(と判断した)メソッドやフィールドの削除も行います。

・・・ということを、本日知りました(汗

そもそも、なんで本日知ったかというと、
android.view.View を派生した ColorPickerView というクラスを作成していたのですが、
ProGuard を使うと、以下のような Exception が発生することに気づきました。

android.view.InflateException: Binary XML file line #110: Error inflating class jp.xxx.yyy.zzz..ColorPickerView

layout フォルダにあるレイアウトファイル (XMLファイル) に、
自作したColorPickerView を記述していたのですが、
こんなクラスはないよ、と言いがかりつけらています。

ProGuard を使わないと、言いがかりはつけられません。

なんで・・・?と調べていたところ、
ProGurad の削除機能でコンストラクタが削除されていることに気づいた、というわけです。


ProGuard をよく知らずに使っていた自分が悪いと言えば悪いんですが、
そんな危ない機能はデフォルトでオフにしておいたほうがいいんじゃないですかね。
(自分だけの非にはしたくない気分です)

ProGuard が生成するテキスト・ファイルのなかに、usage.txt というファイルがあるのですが、
このファイルには、ProGuard によって削除されたメソッドやフィールドが記録されます。

まあ、こんなテキスト・ファイルの意味なんかも分かってなかったんですが、
この中に、自作の ColorPickerView のコンストラクが含まれていて、

「おれのコンストラクタが削除されてるーーー」 

となったわけです。


で、回避策ですが、

元々、以下のような 3 つのコンストラクタがあったので、

package jp.xxx.yyy.zzz;

public class ColorPickerView extends View {

public ColorPickerView(Context c) {
super(c);
}

public ColorPickerView(Context c, AttributeSet attrs) {
super(c, attrs);
}

public ColorPickerView(Context c, AttributeSet attrs, int defStyle) {
super(c, attrs, defStyle);
}

(省略)

}


proguard.cfg に以下の記述を追加しました。

-keep public class  jp.xxx.yyy.zzz..ColorPickerView  {
    public <init>(android.content.Context);
    public <init>(android.content.Context,android.util.AttributeSet);
    public <init>(android.content.Context,android.util.AttributeSet,int);
}

これでコンストラクタは 3 つとも削除されなくなりました。

<init> はコンストラクタを指しています。

詳細は、本家の Usage でもご参照下さい。

本家の Usage - http://proguard.sourceforge.net/index.html#manual/usage.html

2012年3月28日水曜日

android.bat が起動しないので、こんな回避策を実施してみました

最近、ノートPCを新調して、android 開発環境を導入していたところ、
android.bat が起動しない現象にぶつかりました。

c:\myprog\android-sdk-windows\tools> android.bat
Failed to convert path to a short DOS path: C:\Windows\SYSTEM32\java.exe

ERROR: No suitable Java found. In order to properly use the Android Developer
Tools, you need a suitable version of Java JDK installed on your system.
We recommend that you install the JDK version of JavaSE, available here:
  http://www.oracle.com/technetwork/java/javase/downloads

You can find the complete Android SDK requirements here:
  http://developer.android.com/sdk/requirements.html


c:\myprog\android-sdk-windows\tools>

android.bat の内部で、lib\find_java.bat を呼び出しており、
その処理を見ると、同じフォルダにある find_java.exe で java_exec 環境変数がセットされていない模様。

原因はさっぱり分かりません。

lib\find_java.bat を編集し、以下の 2 行を追記したところ、とりあえず、android.bat が起動するようになりました。
(java.exe、javaw.exeが存在するフォルダ名は適宜読み替えて下さい)
set java_exe=C:\myprog\Java\jdk1.6.0_30\bin\java.exe
set javaw_exe=C:\myprog\Java\jdk1.6.0_30\bin\javaw.exe

2011年6月20日月曜日

HANSTER というサイトで評価が 3.5 くらいになってました

久しぶりにアプリ公開している HANDSTER というサイトを覗いてみたら、
Rating がされていて、3.5 くらいの評価になってました。


星1じゃないだけで感激です。(ノД`)・゜・。ウワーン

Android Market では、今も星1つが神々しく輝いておりますが、
あまりにも星1つ慣れしていた為か、喜びもひとしおです。

星3以上付けて頂いた2人くらいのために、
そろそろ、なにかアップデートしなくては・・・
と思うのですが、イマイチ、ネタがないんですよねぇ。。

どうせなから、コメントも書いて欲しかったな (まさかの贅沢慣れしてスイマセン)

2011年6月4日土曜日

福岡市が開催している創業セミナーに行ってきました

最近は、ほとんど android に触れることがなく、
なぜか簿記3級の試験勉強をしていたりするんですが、、

本日、福岡市が開催している創業準備セミナーなるものに行ってきました。

福岡市の起業・創業応援サイト
http://sougyou.city.fukuoka.lg.jp/

起業も何も、まだ具体的なことは何一つないんですが、
タダということで、何らかのモチベーションアップになるだろうと思って申し込んだ次第です。

講師の話を約3時間、粛々と聞くだけでしたが、
タメになるお話が聞けたかなぁ~と思っております。

福岡市では、起業支援のために、
格安で事業所スペースを提供、無料での起業相談、低金利での創業支援融資制度などを
実施しているそうです。

行政で「ありがたい」と思ったのは、これまで図書館くらいだったんですが、
セミナーを含めて、いろいろと起業支援を行っていることは「ありがたい」です。

まあ、自分は利用することはないだろうなぁ・・・と思いますが。


セミナー参加者は幅広い年代で構成されていました。

がんばっている(と勝手に思っている)人達を見て、
少し自分もやる気をアップさせられた気がします。

とりあえず、6月12日(日)の簿記3級くらい、サクッと受かるために、
勉強しとこ。。