ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2017-10-07

awsのlambdaとAPI Gatewayを使って、ちょっとはまったこと

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ほとんど使っている人はいないのですが、
barcotterというバーコードから、そのバーコードに対応するamazonのリンクを作成するandroidアプリを作っています。
これのバーコードからamazonのリンクを生成する部分は、サーバを用意して、このサーバ側で行っています。

最初は、サーバは
Google App Engine(python)
で作っていたのですが、なんかのサポートが切れることをきっかけに
Open Shift(Ruby on Rails)
に乗り換えたのですが、こちらも最近サポートが切れる部分があったので、これをきっかけに、今回サーバ側を
aws lambda(python)
に乗り換えてみました。

今回、lambdaに乗り換えて、いざアプリを利用してみると
type java.lang.String cannot be converted to JSONObject
というエラーが出てjsonのパースができない状態になりました。

原因は、すごく些細でlamdbaでjsonを返すには
handler内で辞書オブジェクトをreturnしてやればよかったのに、
わざわざ辞書オブジェクトをjson.dumpsして文字列にしたものをreturnしてしまって、
これが原因でパースできなかったというものでした。

普通に辞書オブジェクトでreturnすると、ちゃんとbodyに以下のようにjsonが
{ 'aaa': 'bbb', 'ccc': 'ddd'}
となるのですが、文字列で返すとbodyに
"{ 'aaa': 'bbb', 'ccc': 'ddd'}"
とダブルコーテーションがついてしまって、これのせいでパースに失敗していました。

これに気づくまで、無駄に時間がかかってしまいました。

あと、結果的には関係ないのかもしれませんが
パースできないのが、文字コードがうまく処理できないのかと思い、
API Gatewayのメソッドレスポンスの
HTTP のステータス200 の
レスポンス本文のコンテンツタイプが
application/json
だったものを
application/json;charset=UTF-8
とcharsetを追加しました。

とりあえず無事に移行できました。

2013-01-23

xperia Zとxperia tablet Zを触ってきたよ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今日、docomoが発表した
xperia Z(SO-02E)

xperia tablet Z(SO-03E)
を触れるイベントに参加してきました。

ちなみに私は、
xperia SX

xperia table S
を持っている人だったりもします。


今回の2機種に共通した売りとしては以下のような感じです。
・画質の向上(ディスプレイ、カメラ)
・NFCを搭載したことによる他機種との連携
・オムニバランスデザイン(どの方向でも持っても心地よいデザイン)

他にも
・ももいろクローバーZ、ワンピースフィルムZなど今Zがアツイ!
とのことです。


まずは、xpeira Zに関してです。

見た目に関しては、なかなかかっこよいと思います。


触ってみて特によかったのは、以下の点です。
・カメラ画面に動画撮影ボタンとシャッターボタン二つあるので動画撮影中でも静止画撮影ができる。
・連写モードにするとシャッターを押し続けると連写撮影ができる。
・ソフトウェアキーボードのサイズと位置を変更できて、右隅にキーボードを寄せて使いやすくすることができる
・xperia tablet Sにあったスモールアプリが利用できるようになっていた。
・NFCを利用した連携が結構楽しい感じ。

NFCを利用した連携ですが、
xperia Zからxperia tablet Zへ開いているweb画面をタッチすることで送ったり、タッチで写真を送ることもできます。
NFCで送信先を認識をしているようですが、送るデータによってはNFC経由ではなくて、NFCでペアリングしたBluetoothを利用してデータを送っているそうです。

他にも以下のようなBluetoothスピーカのペアリングにNFCを利用して簡単に接続できるデモもやっていました。

他の機器に簡単に接続する方法としてNFCを利用するのが今後、増えていくような気がします。

パーソナルコンテンツステーション(LLS-201)というネットワークストレージにスマホをタッチして写真を保存ということもやっていました。こちらはNFCで相手を認識しておいて、wifiでデータを送っているそうです。

で、持っているxpeira SXから買い換えたいか?と問われれば、たぶん買い換えないと答えちゃうと思います。
というのも5インチというサイズが個人的には大きすぎて好きではないです。
5インチだと画面の下側を持って片手で操作していても、画面の上の方をタップする必要があるときは両手持ちにしないとタップできなかったりしました。
ポケットに入れた感じもあまり好きなサイズ感ではありませんでした。
xperia SXと並べてみると以下のような感じです。













個人的には小さいサイズのものが好きなので、同じような機能を持ったxpeira SXの後継機が出るのを期待したりしちゃいます。

あと、これはxperia SXでも共通な不満ではあるのですが、音量設定で着信音と通知音の音量が一緒になっているのですが、xperia Zでも同じでそれぞれ別に設定できないようです。
着信音と通知音の音量を分けたいというニーズがあるのが日本ぐらいのようで、他の国ではそんな細かいことは気にしていないのかもしれないです。グローバル展開xperiaなのでここの対応はしないのかもしれないです。


お次は、xperia tablet Zです。

こちらは持っているxperia tablet Sを買い換えたくなってしまいます。

見た目は、やっぱりよい感じです。
xperia tablet Sは持つ方向が暗黙的に指定されている感じですが、こちらはどんな向きでもよさげです。


スペックが向上していて、重さも軽くなり、さらにスモールアプリやリモコン機能などxperia tablet Sが持つ独自の機能をしっかり継承しています。

個人的にxperia tablet Sの不満であった専用スタンドが別売ということがなくなり、ちゃんと同梱されるようになったというのも、とてもよいです。

1点残念なところはxperia tablet Sで、私は結構利用しているゲストモードがなくなってしまったようです。
おうちでみんなで使うものになっているので子供用の画面を作っておいて、子供に触らせるときはアプリ制限できたのはとても便利だったので残念です。Android4.2になればOSが似たような機能を持つようなのでアップデート待ちすれば解決かもしれないです。

こちらもNFCがありNFCを持つスマホなどと連携できます。NFCタグが背面にあるのですがこれは前面にあった方がよかったかもと思ったりしました。
背面にあっても表からNFCをうまく認識してくれるのですが、ちゃんと背面にタッチした方が認識はよかったので。

またソニーに限らずAndroidタブレット共通な点なのですが、iPadのように物理ボタンが一つもないよりもなんかあった方が便利に使える気がします。
実際、2歳児でもiPadはなんか適当に自分が好きなアプリを立ち上げなおして遊んでいるのですが、Androidタブレットの方は使えないでいるのでiPadにあるあの物理ボタンって必要なのかなぁとか思ったりします。


でたばかりの端末をいろいろいじれるのは楽しいですね。

今回のイベントは、
https://fansfans.jp/
で紹介されているもので、はじめて参加したブロガーイベントでした。
なかなか楽しいものだということがわかったので、また何か別のものがあったら参加してみようかなと思ってみました。

お土産で以下をもらってしまったのもうれしいポイントです!


2012-10-02

お好きなYoutubeムービーをAndroidのホームにショートカットとして登録する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
お好きなYoutubeムービーをAndroidのホーム画面にショートカットとして登録していつでもワンタッチで見れるようにする方法です。

まずYoutubeアプリで登録したいムービーを検索します。
ちなみにロングブレスダイエットの方法を検索してみました。

そして目的のムービーを表示します。

設定ボタンを表示して、URLをコピーします。

ここで一度Youtubeアプリを終了して、ブラウザを立ち上げてコピーしたURLを貼り付けます。

Youtubeで見るように選択します。常にこの操作で私用するにチェックを入れてもよいです。

目的のムービーが表示されることを確認します。

そして、またブラウザに戻ります。ブラウザ上部を触ってURL入力バーを出してタブボタンを押します。

設定を表示して、履歴を表示させます。

今日の履歴を表示して、Youtubeムービーを長押しします。

ブックマークに保存を選択します。

ラベルを好きなものして、追加先を「ホーム画面」にします。

するとホーム画面にショートカットが作成されています。これでワンタッチでムービー見れるようになったわけです。アイコンがちょっと気に入らないのですが、よしとしましょう。

2012-05-08

任天堂のキーボードをAndroidにつないで、「j」を押したら「に」が出てきた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


AndroidやiPhoneとも接続できてしまって、おまけに使いやすいと評判の
バトル&ゲット ポケモンタイピングDS
についているキーボードが1600円ちょいで買えるようになっていたので思わず買ってみました。

接続は簡単でBluetoothを有効にしてキーボードの「Fn」キーを押しながらキーボードの電源を入れれば認識されてパスコードを入力すれば使えるようになります。

あっさり使えるようになったので、さぁ使ってみようと
キーボードの「j」を押したら、「に」と入力されてしまいました。

どうやらGoogle日本語入力を「ケータイ配列」で使っているのがいけないみたいで、「QWERTY」にすれば、ちゃんと入力されました。

GaraxyS2を使っているので、Samsung日本語キーボードに切り替えることでも使えるようになりました。

とりあえず使うときは設定を変えればよいということが、わかったのでそのようにしようと思うのですが、つなげたら何もせずに利用できるようにできたらよいなぁとか思ったりします。

ちなみに初代iPadでもきちんと利用できました。



2011-12-14

バーコードからtwitできるBARCOTTERをバージョンアップしました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
バーコードを読み取って、本のタイトルなどを判別してtwitができるBARCOTTERをバージョンアップしました。

BARCOTTERに関して詳しいことは、
http://kingyo-bachi.blogspot.com/2011/11/barcotter.html
をご覧ください。

バージョンアップ内容としては、バグフィックスです。

たまに
java.lang.IllegalArgumentException: View not attached to window manager
という感じのエラーが発生していたのですが、
どうもProgressDialogが表示されている最中に画面を回転させると出るようです。

対処としては、ProgressDialogを利用するのをやめました。
ProgressDialogを利用したかったのは、バーコード読取後にそれが何かを通信して確認しているのですが、その間に他の作業をしてもらいたくないなぁということでした。
BARCOTTERには、そんなにボタンがないのですべてのボタンを通信中は利用不可にすることでProgressDialogと同じように通信中に作業できない感じにしてみました。

他の変更点として、AmazonアソシエイトIDを設定できるようにしてみました。

今回、修正の際にAndroidでの非同期処理には、AsyncTaskというのがあるということを知ったのでこれを使うようにもしてみました。
今までは、
http://magpad.jugem.jp/?eid=109
で紹介されているような方法でやっていたりしました。
置き換えは、
Runnable
に書いていたことを
doInBackground
に移して
Handler
に書いていたことを
onPostExecute
に移した感じです。


追記 2011/12/24
上記変更で落ちることはなくなったのですが、画面を回転させるとdisableにしたはずのボタンがenableになってしまう状態でした。
以下のサイトで紹介されていた
http://d.hatena.ne.jp/hyoromo/20090712/1247385249
AndroidManifest.xml ファイルに android:configChanges 属性を追記すると問題なくなりました。
紹介されているように
 orientation|keyboardHidden
と設定するとよい感じでした。
keyboardHidden
があった方がよさげな動作をしました。理由はよくわからないのですけどね。

2011-11-01

BARCOTTERの説明

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
バーコードを商品名に変換して、お手軽にtwitterやevernoteに共有できるアプリBARCOTTERの説明です。

以下はBARCOTTERを起動すると以下の画面になります。

基本的な動作は、バーコードの値を入力または読取して共有を実行します。

それぞれの説明です。


①JANコードまたはISBNの値を入力します。共有を実行すると変換された商品名などが表示されます。JANコードと認識できない数値を入力すると共有の歳にエラーになります。JANコード以外に普通に文字を入力すると何も変換せずにその文字の共有を行います。

②共有を実行する際に変換した商品名の前に追加する文字列を指定します。一例としてその商品の評価などを入力するのもよいと思います。起動時には前回利用した値がセットされます。

③今まで利用した②で記載した内容を多い順に10件表示します。


④共有を実行する際に変換した商品名の後に追加する文字列を指定します。一例としてハッシュタグなどを入力するのもよいと思います。起動時には前回利用した値がセットされます。

⑤今まで利用した④で記載した内容を多い順に10件表示します。

QRコードスキャナーがインストールされていると利用可能になります。①でJANコードを入力する代わりにカメラでバーコードを入力することができます。読取を実行するとデフォルトでは自動的に共有を実行します。

⑦ バーコード記入後に押すと商品名の変換を行い他のインストールされているtwitterクライアントやEvernoteなどのアプリにデータを渡します。共有を行うメッセージは「②のメッセージ + ①から変換された商品名など + ④のメッセージ」になります。

⑧①に入力されている内容を消去します。


twitterクライアントに共有を実行すると以下のようになります。
この例では、バーコードから「1Q84 BOOK 1」に変換を行い、商品名の前に「★5」を追加して、商品名の後に「#読んだ」を追加しています。



メニューボタンを押すと以下のように設定メニューが表示されます。

設定画面では、以下の項目が設定可能です。

URLを追加:バーコードから商品名に変換した際にAmazonへのURLをあわせて追加します。ここのチェックをはずすと商品名だけが追加されます。

読取後すぐ共有:QRコードスキャナーでバーコードの読取を実行したら、自動的に共有を実行します。チェックをはずすと読取後に自分で共有を実行する必要があります。

前にテキストを追加:共有の際にバーコードから変換した商品名などの前にテキストを追加して共有を行います。チェックをはずすと入力欄自体表示されなくなります。

後にテキストを追加:共有の際にバーコードから変換した商品名などの後にテキストを追加して共有を行います。チェックをはずすと入力欄自体表示されなくなります。

AmazonアソシエイトID:AmazonへのURLにここで指定したAmazonアソシエイトIDを設定することができます。



以下のように前にテキストを追加、後にテキストテキストを追加のチェックをはずすと入力欄自体表示されなくなります。



twitterを利用している方は、
後にテキストを追加する際にハッシュタグを利用して、さらに
twilog
をあわせて利用するとtwitterで読書録をお手軽に作成できます。

以下は読書録の例です。
http://twilog.org/vivahiraj/hashtags-%E8%AA%AD%E3%82%93%E3%81%A0

はじめてのAndroidアプリBarcotterを公開してみました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
はじめてのAndroidアプリ「BARCOTTER」を公開してみました。

BARCOTTERでは、JANコードもしくはISBNを入力すると、その商品名とamazonへのurlを取得します。
取得した商品名をtwitterなどにお手軽に共有することができます。

JANコードは、QRコードスキャナーがインストールされていればカメラで取得することもできます。

利用イメージは、以下のような感じです。



赤で囲まれたテキストボックスにJANコードまたはISBNを記入するか、読取ボタンをクリックしてバーコードを読み込んで共有を実行すると以下のような感じでバーコードから商品名を変換して共有することができます。以下は、twitterクライアントに共有した例です。


ハッシュタグをつけてtwitlogを利用するとお手軽に読書録などを作成することができます。

以下は、私の読書録です。
http://twilog.org/vivahiraj/hashtags-%E8%AA%AD%E3%82%93%E3%81%A0

BARCOTTERに関するもうちょっと詳細な説明は以下をご覧ください。
http://kingyo-bachi.blogspot.com/2011/11/barcotter.html

2011-10-28

intentで「常にこの操作で使用」を出したり出さなかったり

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
AndroidでIntentを利用する際に、通常は受け取れるリストが出てきて下の方に
常にこの操作で使用
と表示されて常に使うアプリを選択できるわけです。
以下のような感じで利用します。

Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "ぎょぎょ");
try {
    startActivity(intent);
 } catch(android.content.ActivityNotFoundException e) {
    Log.d( "intent_test", "cant send" );
}

常にこの操作で使用
を表示させないで常になんらかのアプリを選択させたい場合は、

startActivity(intent);
の部分を
startActivity(Intent.createChooser(intent, "Select"));
に変更すればOKです。

Intentを実装する際に参照したサイトで

startActivity(Intent.createChooser(intent, "Select"));
が紹介されていてので何も考えずに、こちらを使っていて
なんで
常にこの操作で使用
のチェックが出ないのだろう・・・
としばらく悩んでみたというお話です。


Androidで共有をする時に常にこの操作で使用をチェックしたけど解除したい

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Androidアプリで共有とかすると他のアプリの選択画面が表示されます。
毎回選ぶの面倒だなぁと思ったら、
常にこの操作で使用
にチェックを入れておけば、次から選択画面がでないで指定したアプリが起動します。

やっぱり、起動するアプリを変えたいなぁと思ったら
[設定]>[アプリケーション]>[アプリケーションの管理]
でインストールされているアプリが出てくるわけです。

この後にアプリを選択するわけですが、
AからBを起動するようにしていた場合は
選ぶアプリは
B
の方になります。

ここの初期設定で起動とかデフォルトでどうのこのう
とかの部分の
初期設定に戻す
とかを押せばOKです。

ずっとAのアプリを選んでいて
ぜんぜん解除できなくて悩んでしまいました。

2011-09-24

Androidアプリの開発途中でAPI levelを変更する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Androidで遊び始めましたので、アプリもちょっと作ってみようと思っていじり始めました。

最初のプロジェクトを適当に作ったため、API levelが3でAndroid 1.5相当のものを利用していましたが、ちょっといじり始めたら、
このレベルではちょっと・・・
という感じになりました。

なので途中でAPI levelを変更する方法です。

Eclipseで開発していることが前提ですが、
API levelを変更しようとしているAndroidプロジェクトのトップレベルで右クリックして
プロパティ
をクリックします。

そこで
Android
を選択して
Project Build Target
を変更します。

AndroidManifest.xml

uses-sdk

android:minSdkVersion
を変更したAPI levelを記述しなおします。

これで途中でAPI levelを変えられました。


2011-07-30

rubyでAndroidアプリが作れるRhodesをインストールしてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyでAndroidアプリが作れるRhodesというものがあると知り試しにインストールしてみました。
Rhodesは同じソースでAndroidアプリだけでなくiOSアプリも作れるそうです。
http://rhomobile.com/products/rhodes/

インストール方法は以下のような感じです。

以下が済んでいることが前提です。
・JDKインストール済み
・rubyインストール済み
ちなみにこの手順はWindows環境で試しました。他の環境でも同じようにできるとは思います。
・Android-SDKインストール済み
C:\android-sdk
にインストールしています。
そしてAndroid3.0系はインストールしないようにします。
・Android-NDKインストール済み
C:\android-ndk
にインストールしています。
android-ndk-r5bをインストールします。

rhodesのインストールは
gem install rhodes
でOKです。

インストール後にrhodesの設定をします。
コマンドプロンプトで
rhodes-setup
を実行。
いろいろ聞かれますが、以下以外は空白でOKです。
-----------------------
We will ask you a few questions below about your dev environment.

JDK path (required) (C:/Program Files/Java/jdk1.6.0_24):
Android SDK path (blank to skip) (): C:/android-sdk
Android NDK path (blank to skip) (): C:/android-ndk
-----------------------

これでOKです。

これで以下で紹介されているものを試します。
http://www.kouboum.co.jp/rhodes/02_make_rhodes_application.html
ファイルの文字コードはUTF-8で保存しましょう。

rake run:android
したときに、
Error!!! Wrong Android API version
みたいなエラーが出て実効できなかったときは、
rhodesが対応していないandorid-sdkのバージョンが入っていることが原因の模様です。
現在、3.1はサポートされていないようです。
なので面倒なので3系は削除しておきます。
(インストールしておいても設定でなんとかなるのかもしれませんが・・・)

上記のエラーの他に
Can't detect NDK toolchain path (corrupted NDK installation?)
みたいなエラーが出たときは
対応していないandorid-ndkのバージョンが入っていることが原因の可能性があります。
android-ndk-r5b
ならダイジョブのようです。

rhodesでどこまでできるのかわからないですが、rubyでandroidアプリが作れるということでたまにいじってみようかなぁとか思っています。



2011-07-27

Androidアプリに自前のアイコンを設定する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
まだ
Hello Android!
も試していないのですが
アプリのアイコンを自前のものに変更する方法です。

独自アプリのアイコンはPNGで作成してサイズは
72×72
48×48
36×36
の三種類用意すると良いようです。
サイズは上記の感じですが、ぎちぎちに絵を描いてはいけないようです。

(追記2011-11-09:Android Marketに出すならば512×512もあった方がよいです)


詳しくは、以下が参考になります。
http://blog.asial.co.jp/693

で作ったアイコンですが、icon.pngという名前で以下のフォルダにそれぞれ置くとよいようです。
res/drawable-hdpi
 72×72のもの
res/drawable-mdpi
 48×48のもの
res/drawable-ldpi
 36×36のもの

drawable-*dpiが存在しない場合は作っておけばOKです。

以下のサイトを参考にさせていただきました。

さてHello Android!をやってみなくては!





2011-07-20

Androidをつかいはじめてみての感想

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Androidを使い始めて、ちょっとたってみたので簡単な感想です。

個人的に一番ありがたいのが、wifi接続でいろいろできることです。
普通の携帯だとなんとなく通信料がもったいないのでWEBページとかを見ることはありませんでした。

うちには無線環境があるのでwifi接続のときは遠慮なくいろいろ見ています。
外で使うときは、やっぱり通信料を気にしてそれほど積極的には使っていません。
と言っても携帯に比べたら、面白がって使っていますが、アプリダウンロードとかはちょっと遠慮してしまいます。

wifiをつかって遠慮なくいろいろ見れるので、いままで夜にPCで一気にやっていたことを合間でちょっとこなすことができるようになりました。これがありがたいです。

タブレットは家族で利用して、スマホは個人で利用する感じになると思うのでメールなども遠慮なく確認できます。
タブレットだと子どもが何をするかわからないので、メールとか設定できません。

あとはスマホに限った話ではないのかもしれませんが、普段利用しているネットサービスが使いやすいのはやっぱり便利です。
Googleカレンダーとか普通に利用できるのはやっぱり便利です。

私はテザリングを利用できることを待っていましたが、きっとほとんどテザリングは使うことはないだろうなぁということがわかった気がします。

なかなか楽しいAndroid生活です。


2011-07-15

Androidはじめました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ちょっと前にスマホは冬も出るまで待とうとか言ってみましたが、ラッキーなことにしばらくお仕事でAndroid端末をお借りすることができるようになりました。

で、とりあえずはじめて入れてみたアプリをさらしてみます。

アストロファイルマネージャ
ファイルマネージャです

ウェザーニュースタッチ
お天気です

ジョルテ
スケジューラです

モバイルGoogleマップ
地図です

ワペディア:モバイルウィキ
wikipediaです

andronavi
アプリ探しです

CamScanner -スキャン・PDF作成
カメラでスキャナです

Google Chrome to Phone
ChromeからURLを送りつけます

ConnectBot
SSHです

NetFront Life Documents
オフィスドキュメント閲覧です。

ファイル同期です。

Evernote
メモ同期です。

FxCamera
おしゃれカメラです。
RSSリーダです。

PINGです。

QRコード読取です。

ラジオです。

PCを遠隔でいじります。

着信音を作ります。

Rubyスクリプト実行です。

つぶやきます。

ユーストです。

無線の電波状況を見ます。

画面メモです。

いざという時です。

乗換案内です。

名言です。

シェルです。

懐中電灯になります。

手書きメモです。

TED Air

ステキトークです。






これからいろいろいじってみようと思います。