Archives

You are currently viewing archive for August 2009
カテゴリ: App > MyQR
投稿者: terada
またまたまたマイナーバージョンアップです。
-
MyQR:アドレス帳へ簡単登録
Version: 1.1.3
2009.08.24

MyQR.apk(Version: 1.1.3)

主に開発用端末でしか起こらないと思われるバグなのですが、プロフィール情報が何もない状態で終了すると、アンインストールしないといけなくなるバグを修正しました。
※携帯番号が端末から取得できる場合はこのバグは発生しません。
カテゴリ: App > MyQR
投稿者: terada
またまたマイナーバージョンアップです。
-
MyQR:アドレス帳へ簡単登録
Version: 1.1.2
2009.08.24

MyQR.apk(Version: 1.1.2)

保存のタイミングについてMarketのコメントでご意見いただいたので、対応しました。
プロフィール情報について、アプリケーションの終了時にSharedPreferencesに書き込んでいたのを、編集画面で保存ボタンを押したときに変更しました。キャリアの情報は、今まで通りアプリケーションの終了時に保存されます。
それに伴って、アプリケーション終了時に出ていた「データを保存しました」というLogアラートはなくしました。

ただ、コメントにあった「データが消えてしまう」というのは、状況が良くのみこめません。
というのも、ホームボタンを押してHomeに戻った後もMyQRは起動したままなので、またMyQRアイコンを押した場合にはそのままデータが残っていると思うのです。何か考え違いがあるようでしたら、ぜひぜひこちらのブログか直接メール( terada [at] karappo.net )でご意見いただければと思います!(マーケットのコメント欄だけでは、細かい状況が把握できないので・・・
カテゴリ: Java
投稿者: terada
ASに慣れ親しみすぎて、Java特有の作法に疎いのを痛感しました。今回のは特にエラーになる訳でもないのでJava初心者は要注意です。

間違い:
String x = "android";
if (x == "android")
{
Log.d(TAG,"OK !");
}


正解:
String x = "android";
if (x.equals("android"))
{
Log.d(TAG,"OK !");
}

カテゴリ: Android SDK
投稿者: terada
ローカライズをする際、例えば日英だとまずそれぞれvalues/strings.xmlとvalues-ja/strings.xmlに用意します。そしてR.string.somethingみたいな感じでint型のidを指定すれば端末のLocale情報にあわせて切り替わってくれる仕組み。ただ、例えばDialog.setTitle()のように文字列のidをint型のまま渡せる場合はいいのですが、同じDialogの場合でもsetMessage()の中で文字列を所得したい場合は変換しなければなりません。このような場合、以下のようにidから文字列を所得できます。

CharSequence text = getText(R.string.something_text);
String str = getText(R.string.something_text).toString();
カテゴリ: App > MyQR
投稿者: terada
マイナーバージョンアップです。
-
MyQR:アドレス帳へ簡単登録
Version: 1.1.1
2009.08.13

MyQR.apk(Version: 1.1.1)

バグの修正と英語対応をしました。
カテゴリ: App > MyQR
投稿者: terada
MyQRは公開後3日を待たずに500DLいきましたー!今も順調に延びてます。正直、予想以上の数でした。嬉しいです!次のアプリを考えるのが楽しみになってます。
さて、そんなMyQRのアップデートをしました。
-
MyQR:アドレス帳へ簡単登録
Version: 1.1.0
2009.08.13

電話番号とメールアドレスを2つまで保存可能になりました。文字数が多くエンコードできない時はアラートが出ます。非表示にしているデータはエンコードされませんが、端末に記憶されます。

-

「なんか、前のバージョンの方が良かったなぁ」って人がいるかもしれないと思ったので、apkも一応置いときます。
MyQR.apk(Version: 1.1.0)


今回のアップデートでは、コメントでもらったプロフィール情報の追加ができるようにしました。

1

「キャリア変更」の方が普段使いで重要だと思ったのでメニューの順番をかえました。

2

メニューの「データ編集」から編集画面に移動します。編集画面をDialogからActivityへ変更しました。これで、横モードやら入力時のことやら考えずに良くなり、さらに編集しやすくなりました。

3

「+」ボタンを押すと追加情報の入力ができるようになります。入力後に「−」ボタンを押して非表示にしても、データは消えずに保存されます。予め登録しておいて場合によって切り替えてもいいかもしれません。

4

・・・はい、ここで問題点を暴露しておきます。
現状で使っているQRへのエンコードライブラリの文字数制限の関係で、追加情報を入れるとこのようなエラーが出る場合があるかもしれません。そのときは、申し訳ありませんが情報を削るか非表示にしてください。

5

つかえねーなと、言われてしまいそうですが、このアプリは最低限の連絡交換用にシンプルな仕様で考えていますので、ご理解ください。余裕があれば、ZXingを勉強して置き換えられるか試してみます。
今回は、フォーカスの順番とか細かいところ気にしながら勉強しました。その他、使い勝手の面ではさらに良いものにできると言いな〜と思っているので、ご意見募集中です。よろしくお願いします!
カテゴリ: App > MyQR
投稿者: terada
アドレス交換用アプリ「MyQR」をAndroid Marketに公開しました。

-

MyQR

MyQR:アドレス帳へ簡単登録
Version: 1.0.5

携帯電話のコードスキャナで読み取ることで、直接アドレス帳に登録可能なQRコードを作成します。非常にシンプルで、アドレス交換の際に便利です。
対応キャリア:docomo、au、softbank
※機種によってはうまく動作しない場合もあります。

マーケット > アプリケーション > ツール
検索ワード:QR、アドレス
myqr_mrket
marketへ(Android用)

-

需要はないかもですが、記念にapkも置いときます。
MyQR.apk(Version: 1.0.5)

Androidを買って、はじめに不便を感じたのが赤外線通信ができないことによるアドレス交換の難しさだったのでこのアプリを作りました。ただ、相手からメールを送ってもらわないといけないので、少々「受身」なアプリですが・・・
また、すでにBarcode Scannerなど、類似のアプリも出ていますが、このアプリの特徴は読み取る携帯機種のキャリアごとにQRコードを発行できることです。読み取った相手は、そのまま簡単にアドレス帳登録が行えます。例えば、Barcode Scannerではアドレス帳からQRコードを作成可能ですが、フォーマットの違いから、au端末で読み取ると名前が表示されなかったり、MECARDフォーマットのdocomoでも苗字と名前を別個に登録できるのか謎で(未確認)、日本向けにはうまく対応できていません。
それから、技術的な面ですが、今回のバージョンのQRコードへのエンコード部分はこちらのライブラリを使わせていただいています。文字数制限があって、住所まで入れるとエラーが出てしまうので、今後Barcode Scannerでも使われているZXingに変更するかもしれません。あと、アドレス「交換」ってこと考えると、Bluetoothとかも視野に入れるべきか?携帯のBluetoothでデータ交換したことないけど。

使い方は、とてもシンプルです。
起動すると、プロフィール情報の入力を促されるので入力します。(電話番号だけは、端末から取得できたのではじめから埋まっています)

device

Saveボタンを押すと先ほどの情報からQRが発行されます。

device2

プロフィールの編集と読み取らせたい対象キャリアの選択はMenuボタンを押すと出てくるメニューから可能です。

device3

下の図ではキャリアを「docomo」から「au」に変更しています。

device4

すぐにQRコードに反映されます。現在の対象キャリアはQRコードの左の「Carrier:」の下に表示されています。

device5

アプリを終了にデータが保存されます。
Android Marketでアプリ公開の際、apkファイルをアップロードするとこのようなエラーが場合はversionCodeが前回時と同じもしくは少ないことが原因です。

The new apk's versionCode (1) in AndroidManifest.xml must be higher than the old apk's versionCode (1).
The server could not process your apk. Try again.


結論からいくと、
versionCodeは、何回目のアップロードかを表す整数
versionNameは、自分で好きに決めたバージョン名を表す数字
です。なので、アップデートする際は少なくとも前回時よりもversionCodeが大きくなっていなければなりません。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0.0"
package="net.karappo.android.myapp">
として公開スタートしたアプリの次回バージョンアップ時は
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0.1"
package="net.karappo.android.myapp">
ではなく
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="2"
android:versionName="1.0.1"
package="net.karappo.android.myapp">
とします。(もちろん、いきなり1.1.0とかでもOK!)

要は、versionCodeはアップデートの旅にインクリメントされていなければならないんですね。知っていれば当たり前、でも、僕はversionCodeはversionNameの整数部と連動していて、メジャーバージョンアップしないかぎりいじらないのかと、馬鹿な考えをしていました・・・。
カテゴリ: Android SDK
投稿者: terada
タイトル通りですが、GDPやHT03Aなどの実機ではHierarchy Viewer使えないらしいです。エミュレーターで確認しましょう。
カテゴリ: Android SDK
投稿者: terada
話が前後しますが、Androidの開発環境を整える際、SDKへのパスを通す必要があります。プラットフォームごとに手順がこちらにまとまってます。
Windowの場合は環境変数の設定パネルがあるので簡単ですが、今回Macでこの作業をしようとして、「ユーザ/.profile」の編集の仕方がちと分からなかったのでメモです。
MacのFinderではデフォルトでは不可視ファイルつまりドット(.)で始まるファイルをみることができません。Windowsのように表示のプロパティから可視状態を設定することもできないので、「TinkerTool」というアプリケーションが必要です。インストールして「Finder>隠されたファイルおよびシステムファイルを表示する」にチェックして「FInderを再起動」します。するとユーザディレクトリにさきほどの「.profile」というファイルが見えるようになります。

あとは、普通に開いて下記のような感じで文字列を追加してパスを通してあげると、ターミナルからadbコマンドやandroidコマンドが使えるようになります。
ANDROID_HOME=/Developer/AndroidSDK/android-sdk-mac_x86-1.5_r3
PATH=$PATH:${ANDROID_HOME}/tools

-

下記のサイトを参考にさせていただきました。
via MacOSX Finderでドットファイルを表示する / でじゆに
カテゴリ: SVN
投稿者: terada
開発環境をWindowsからMacへ移行しようとして詰まったのでメモです。
MacにEclipseをインストールして、SVNプラグインのSubclipseをインストールし、リポジトリを作成するときに「svn: Unable to open an ra_local session to URL」というエラーが出て、リポジトリの作成ができませんでした。
ra_localというのは
ターミナルで
$ svn --version

と打つと
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme

と出てくるので、どうも「file:」プロトコルを利用する際に使用するモジュールのようです。
SVNのことがよくわかっていないので、完全に分かった訳ではありませんが、とりあえず解決法は、
ターミナルからSVNコマンドで直接リポジトリーの作成をしてやれば良いようでした。
$ svnadmin create /Users/terada/Documents/workspace/repo

みたいな感じです。これでrepoフォルダ内に自動的にファイルが作成されてリポジトリの作成が完了し、Eclipseからプロジェクトをリポジトリに追加することができるようになりました。Eclipseからリポジトリの作成自体ができないのかもしれません。