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

2013年9月18日

iOSアプリとAndroidアプリを同時に開発する方法

最近はいろんな開発環境やツールがあるけれど、とりあえず以下のような選択肢で検討している。
  • Cocos2d-x
  • Xamarin + Cocos2d-XNA
  • Corona
  • Unity
  • Herlock
  • Titanium Mobile
  • Apache Cordova (PhoneGap)
  • Monaca



ガシガシ動くゲームを作るなら


Cocos2d-x


ようやくcocos2d for iPhoneで簡単なゲームアプリを作れる様になった自分としては、次はこれでAndroid版とiOS版の同時開発かなと思っている。

cocos2d for iPhoneで得た知識も使えるし、CocosBuilderなどの周辺ツール類も豊富なのが魅力。

最初は「AndroidではNDKが必要」というのを聞いただけで尻込みしていたけれど、採用事例は結構多そうで、ネットでの情報も増えてきつつあるみたいだ。

今この本を読みながら次のアプリ開発に向けて準備しているところ。
cocos2d-xによるiPhone/Androidアプリプログラミングガイド


Xamarin + Cocos2d-XNA


意外なところでは、C#で開発するという手法もある。XamarinとCocos2d-XNAというライブラリを組み合わせれば2Dゲームアプリも作れるみたいだ。

普段仕事で使っている言語はC#なので、本当に使い物になるのならぜひ使いたい。Windowsストアアプリの開発も出来るし、有料版ならVisual Studioとの統合も可能なのでかなり興味を惹かれる。

Xamarin StudioというIDEの無料版をとりあえずインストールしてぼちぼち試しているところ。


Corona


2Dゲームに特化した「エレガントなAPIで従来より10倍速く開発出来る」というのが売り文句の開発環境。Luaというスクリプト言語を使う。デモなどを見るかぎりでは確かに簡単に2Dゲームが作れそうだ。

ただ、プロプライエタリなソフトウェアなのであまり依存したくはないかな、と思ってしまう。



Unity


とりあえずインストール しては見た。面白そうな解説本も買って積んであるのだけれど、まだじっくり触る事が出来ていない。

次のバージョン(4.3)ではなんと2Dゲームに特化した機能も追加されてますますパワーアップするらしい。
Unity - Unity PRESS RELEASE – Unity、2D向けゲーム開発機能とクラウドサービスを新たに提供 
もしかするとこれからのゲームアプリ開発の大本命になるのではないかとも思ってしまうほど高機能。

ちょっと高機能過ぎて初心者は慣れるまでが大変。それにしてもUnityのアセットストアは強力。


Herlock


今日、こんなのも見つけた。国産の新しいクロスプラットフォーム統合開発環境。JavaScriptで開発出来る。だからBackbone.jsやTweenJSなどと言った既存のJSライブラリも使える。 しかもOpenGLで高速なグラフィック処理も可能。

iOS/AndroidアプリをJavaScriptで開発、OpenGL対応で高速描画の「Herlock」、クローズドβリリース - Publickey 
FlashライクなコードでOpenGLの処理を記述できるため、高速なグラフィック処理を実現する点も大きな特徴です。ゲームなど高速な画面書き換えなどを要求するアプリケーションに対応します。』 
Herlockの紹介動画 

これは期待大。早速クローズドベータ版の利用申請をしておいた。



ゲーム以外なら


Titanium Mobile


クロスプラットフォーム開発の老舗。


Xamarin


Xamarin Studio または Visual Studioを使ってC#で開発が可能。個人的にはかなり興味あり。


Apache Cordova (PhoneGap)


HTML5 + JavaScriptのアプリをラップしてネイティブアプリを作成するツール。

Apache CordovaとPhoneGapの関係が分かりにくい事になっているけれど、今の所は結局同じモノみたいだ。
Cordova(PhoneGap) とりあえずどんなものか | MUSHIKAGO APPS MEMO 
AdobeがApache Cordovaの私家版PhoneGapの3.0をリリース, APIをプラグイン化してより身軽に | TechCrunch Japan 


Monaca


内部的にはPhoneGapを利用しているらしい。ブラウザ上で利用出来るIDEが秀逸。Monacaデバッガというのもちょっと試してみたけれど、とても便利で感動した。

なんとなくApache Cordova(PhoneGap)を使うのであればこっちの方が生産性が高そうな気がしている。HTML5での実装に適したアプリを作る機会があったらぜひ使いたい。


今日の結論


この他にも色々な開発環境やツールがあると思うけれど、次は

Cocos2d-x
Unity

の順でやって行こうかなと思っている

余裕が出来たら、

Monaca
Xamarin

あたりにも手を伸ばしたい。

あとHerlockにはぜひとも頑張って完成度を高めて行ってもらいたい。応援してます!




 



2013年3月6日

Azure Mobile ServicesがAndroidに対応! Android2.2以降で実行可能


Windows Azure Mobile ServicesがAndroidに対応したそうだ。

Windows Azure Updates: Android Support, SQL Reporting Services, Active Directory, More… - ScottGu's Blog


これでバックエンドのサービスを簡単に作成する事が出来る。嬉しい!

ところが説明を読むと、「Android 4.2以降が必要」という注意書きが。。。

「え、うそでしょ~。4.2以降なんて現時点で使えるのはNexusシリーズぐらいじゃないの...」

と思ったけれども、サンプルコードをダウンロードしてマニフェストファイルを見ると、

android:minSdkVersion="8"
android:targetSdkVersion="17"

となっている。

なので、アプリの動作環境としてはAndroid 2.2以降なら問題ないみたいだ。


(「4.2以降が必要」というのは開発用のSDKのバージョンを指している様だ。)



試しに Android 2.3.5 が入ったHTC Evoでサンプルアプリケーションを動かしてみた所、Todoリストにデータを追加する部分については問題なく動作した。


Azure Mobile Servicesの管理画面からデータを確認したところ。



Todoリストのチュートリアルはこの後「ユーザー認証の追加」や「GCMを使ったプッシュ通知」の実装に続く。

まだそこまでは試していないけれど、多分Android2.2以降なら問題無さそうな気がするので、まずは一安心した。


これでさらにアプリ開発の可能性が広がりそうだ!



*追記:
ここにははっきり「2.2+」と書いてあるので、やっぱり大丈夫そうだ。

MS Open Tech develops the open source Android SDK for Windows Azure Mobile Services - Interoperability @ Microsoft - Site Home - MSDN Blogs







 

2013年2月19日

AndroidでAnimation終了後にViewを削除する

動的に追加したViewに対してアニメーションを実行して、アニメーションが終了したらそのViewを完全に削除してしまいたい、というケースがあってハマったのでメモ。


基本的にはアニメーションの終了後に何かをするには、前もってAnimationListenerをセットしておけば良いはず。

AnimationListener の onAnimationEnd というメソッドをオーバーライドして処理を書く事になる。 

この onAnimationEnd の中でアニメーション対象のViewを親のViewから削除しようとして、次の様に書いたら parentView.removeView の所で エラーで落ちた。




調べてみると、どうやら onAnimationEnd 内でUIの処理をするとまずいみたいだ。parentView.post() を呼んでUIスレッドに処理をRunnableの形で渡せば問題なく実行出来る様になった。






  

2013年1月30日

初めてAndroidアプリを公開して1年経過した

作ったアプリ


1年半ぐらい前にこんな記事を書いて、オセロゲームを作ってみた。
http://blog.makotoishida.com/2011/06/android-1.html 

6月から作り始めて、9月に一応大体の機能が完成。その後アイコンを作ったり細かい改善をしたりして、2011年の12月にGoogle Playストアに公開した。

Google Play
https://play.google.com/store/apps/details?id=com.ishida_it.mireversifree



1年間の有効インストール数の推移


公開してから全く更新せずに1年を経過した頃からアクティブユーザー数に減少傾向が見られた。
ちなみに下段のグラフの水色の線はAndroid 2.3、緑の線はAndroid 4.0以降。
グラフの右端で少し右肩上がりになっているのは、Undo機能を追加する更新をした後。

現在の有効インストール・ユーザー数(インストール後、削除していないユーザーの数)は約7400。総ダウンロード数は2万1200となっている。

細々とした数字ではあるけれど、公開してからほぼ1年間放置状態だったのにしては結構インストールされているのではないかと思う。

やはり誰でも知っているオセロゲームだから、ダウンロードする前に「このゲームは面白そうかどうか」を考える必要が無いというのが大きいのだろうと思う。

とは言えさすがに1年も更新せずにいると、新たにインストールされる数よりもアンインストールされる数の方が上回ってアクティブユーザー数が徐々に減少し始める。Google Playの検索アルゴリズム上なんらかのマイナス評価が加えられるのかも知れない。


Undo機能追加でちょっと持ち直す



2012年の12月になってようやくUndo機能を追加する更新を行った。するとやはり新規インストール数がまた上昇しだした。更新によってユーザーの目に付く機会が多少増えたみたいだ。

この直後、ユーザーさんから「Undo機能を付けてくれてありがとう」というメールをもらったのには驚いた。と同時に単純に嬉しかった。アプリ開発者のモチベーションは案外こういう些細な事で保たれるのではないかとも思った。


せっかくなので大幅にリファクタリング


ただ、Google Playのレビュー欄に「コンピュータが弱い」という評価が多かったので、今年の1月に大幅にリファクタリングを行なって思考ルーチンの高速化と強化をしてみた。

思考ルーチンだけでなく盤面のデータ構造から書き直す様な大変更になったのでなかなか大変だったけれども、何とか先日新しいバージョンを公開する事が出来た。

これでまた新規インストール数が増えてくれればちょっと嬉しい。初めて公開したAndroidアプリという事もあってか、何となくよちよち歩きの我が子を見守る様な気分になってくる。



 
 

2012年12月18日

Eclipseで急にAndroidアプリのエクスポートが出来なくなった時の対処法

あるAndroidアプリを更新した後、「さあGoogle Playにアップロードするぞ」とAPKのエクスポートをしたら、突然Eclipseがエラーで落ちてエクスポート出来なくなるという問題に遭遇した。

前のバージョンまでは全く問題無かったのに、更新後は何回トライしてもエクスポートしようとすると必ずEclipseが異常終了してしまう。

ActionBarSherlockを使う様に画面を変更したのだけれど、それが関係しているのかも知れない。

エラーログを見ると、何やらZipファイルの処理でエラーが発生している様な感じなのが何となく分かるが、対処法がさっぱり分からないので困った。

色々調べてようやくなんとかエクスポート出来たのでメモ。

Issue 28725 - android - Eclipse Crashes with EXC_BAD_ACCESS when exporting signed applications - Android - An Open Handset Alliance Project - Google Project Hosting


ここにある通り、「Build Automatically」のチェックをOFFにして試したら無事エクスポート出来た!

それにしてもよく分からないエラーだ。



 

2012年12月7日

Nexus7を買って4ヶ月後の感想 - じわじわと良くなって来た感じ


8月の初めにNexus7を購入してから4ヶ月が経った。

当初は期待半分、「本当に使えるのかなー」という疑い半分、という感じで、まあ少なくともアプリ開発のデバッグ用途には役に立つかなという程度に思っていた。

ところが、時間の経過とともに当初想定していなかった使い方もする様になって来て、だんだんと手放せなくなりつつある。

他の人の感想を読んだりして、「やっぱりNexus7いいね」と改めて見直したり。
Nexus7購入から1ヶ月後 — 乱れなよ、そして召されなよ

Nexus 7が、とりわけヒジョーにかなりイイ
なんと言っても7インチというサイズと軽さが素晴らしい。これはまあ当然として、その他に次のような点が大きいかなと思う。


Googleのサービスと親和性が高い


一番大きいと思うのはChromeの同期機能。これは使い出すと本当に欠かせない。
もちろんGmailも使いやすい。Google Mapの高機能さもやはりAndroidならでは。



Android OSのアップデートがすぐに反映される


購入してから4ヶ月で既に3回のアップデートが配信されている。アップデートのたびに細かい点が改善されているのが嬉しい。

特にAndroid 4.2で追加されたマルチユーザー機能はとても便利。子供に渡す時にさっとユーザーを切り替えて渡すだけで良くなったので本当に助かる。


あと、買った当初は想定していなかった使い方というのは、電子書籍を読む事と動画や音楽を楽しむ事の2つだった。



紙のメモを使わなくなった


Nexus7を買ってからミーティングのメモは全て「7notes with mazec」を使って取る様にしている。

最初の頃は「書き流し入力」をして後からきれいにテキストに変換していたけれども、この頃は手書き文字のままPDFで保存する様にしている。どうしてもテキストに変換する必要があるドキュメントでない限りはこれで十分だ。

最近スタイラスペンが少しヘタって来た様な気がするのでそろそろ買い換えたほうが良いかも知れない。

手書き入力をしない時は、Google日本語入力のGodanキーボードが便利。mazecと状況に応じて使い分けている。



電子書籍が読みやすい


Amazon.co.jpで日本語の電子書籍が買える様になった。Nexus7の話からは外れるけれど、僕にとってはこれは大きかった。

電子書籍が便利なのはわかっているけど「読む本が無いから結局読書には使わないだろうなあ」と思っていた。

でも、Amazonで簡単に日本語の本が探せて、しかも今まで払っていた高い海外向け送料無しで読めるとなると話は全く別だ。

試しに好きな作家の小説を買ってみたら、もちろんNexus7で全く問題なく読めた。7インチの画面はさすがに携帯の画面より読み易い。読んでいる位置やブックマークを携帯やPCのKindleアプリと同期する事も出来るし、やっぱり便利。

検索しても出てこない本がまだまだ多いけれど、早く紙の本と同じものが買えるようになって欲しい。そうしたらNexus7の出番がもっともっと増えると思う。



Youtube動画を連続再生


日常生活の中で、「Youtubeのあの動画を再生しながらこれをしたいな~」という場面が結構ある。

僕の場合は実は「食後の食器洗い」の時間がそれに当たる。手が濡れているので出来れば画面を触らずに自動でどんどん再生してくれると嬉しい。

それを実現してくれるのが「PVSTAR+」というアプリ。これで気に入った動画をずっと流しながら両手で作業が出来る。



音楽を聴きながら寝る


前からSky.FMは聴いていて、「Solo Piano」というチャンネルが僕のお気に入りになっている。

Sky.FM Radio

このアプリが便利なのはスリープタイマー機能が付いているので聴きながら寝入ってしまっても時間が来れば停止してくれる事。きれいなピアノの音を聴きながら眠ると本当に気持ちがいい。

ただ、無料で使っていると、たまに寝かかっている時にコマーシャルが始まって目が覚めてしまう事がある。なので有料アカウントにしようかと真剣に検討中。



結論


そんなこんなで4ヶ月後の感想としては、「Nexus7買って良かった。悔いはない!」と思っている。



 

2012年11月21日

Android 4.2で今度こそ反応の良い楽器アプリは可能になるのか!?

以前からAndroidで良い(=実用になる)楽器アプリが存在しないのを残念に思っていた。


AndroidでiPhoneに匹敵する楽器アプリの作成が困難な理由

Android 4.0で反応の良い楽器アプリは可能になるのか




が、Android 4.2になってその状況もついに変わるかも、と思わせてくれる記述が公式ドキュメントの中にあった。


開発者にとってAndroid4.2は何が新しくなったか - Firespeed
Jelly Bean | Android Developers


Low-latency audio
Android 4.2 improves support for low-latency audio playback, starting from the improvements made in Android 4.1 release for audio output latency using OpenSL ES, Soundpool and tone generator APIs. These improvements depend on hardware support — devices that offer these low-latency audio features can advertise their support to apps through a hardware feature constant. New AudioManager APIs are provided to query the native audio sample rate and buffer size, for use on devices which claim this feature. 
(以下意訳)
Android 4.1でOpenSL ESによる低遅延再生、SoudPoolやトーンジェネレータAPIなどが改善されましたが、Android 4.2ではさらに低遅延な音声再生をサポートします。これらの改善点の恩恵を受けるにはハードウェアのサポートが必要です。低遅延再生をサポート可能なハードウェアは、アプリケーションに対してハードウェアフィーチャー定数を通じてその事を知らせます。新しいAudioManager APIを使うと、この機能をサポートしているハードウェア上でネイティブなオーディオサンプリングレートとバッファ・サイズを問い合わせる事が出来ます。

早速、先日Android 4.2に更新されたNexus 7でピアノアプリ「xPiano+」を試してみた。

このアプリは僕が今までAndroid上で試した数種類のピアノアプリの中では最も反応が良かったものだ。と言ってもiOSデバイスの楽器アプリとは全く違って、ちょっとでも速く鍵盤を叩くと遅延が気になってとても実用的に演奏出来るとは言い難かった。

4.2に更新されたNexus 7で試してみたところ、確かに前よりも反応が良くなっている!

感覚的なものなので数値に表すのは難しいけれども、「格段に良くなっている」と言える。

おそらくまだ4.2の新しいAPIを使った最適化はされていないと思うので、今後アプリ側が4.2に合わせて最適化されればもっと反応が良くなる可能性もあると思う。

ただし、まだまだiOSデバイスに匹敵するとは言い難そうだ。

これから何世代かかけてハードウェアがどんどん良くなって行ったとしても、そもそもJavaベースで動いているAndroidというOSでどこまでの「低遅延化」が可能なのかという問題がある様な気がする。

もちろんOSの深い所はC++などで書かれているみたいだし、アプリケーションもNDKを使えばC言語(C++)で開発する事は可能だ。やはり究極の低遅延化を目指そうとすればC言語で開発するしかないのだろうか。

いずれにせよ、Android 4.2で「反応の良い楽器アプリ」の実現に少し近づいた事は間違いない。今後どんな楽器アプリが登場してくるのか、(あるいはやっぱりダメなのか、)期待しながら待ってみようと思う。






2012年11月7日

Galaxy S IIIをAndroid 4.1.1 にアップデートしたらEclipseからアプリの実行が出来なくなった件


ついこの間 Galaxy S III にOSの更新の通知が来たので何も考えずにアップデートしたら、Androidのバージョンが4.1.1になった。

それはいいのだけれど、その後実機でのデバッグが出来なくなってしまった。

Galaxy S IIIをUSBでMacにつないだ状態でEclipseからアプリを実行しようとすると、「Failed to install ........ timed out. Launch canceled.」というエラーになってしまう。

検索してみた所では、このスレッドの最後(2012/10/24)に書かれているコメントが最も近いような気がする。

android - Unable to debug via eclipse on phone with Jelly Bean - Stack Overflow

『After inspecting my UMASK, I saw it's now 0000 (and it was 0077 on stock kernel), so I concluded that the wrong UMASK was the root cause of the error.
Still, as can be seen from numerous other threads on this issue out there, it's very wrong for the stock kernel to cause that problem.』

という事は Android 4.1.1自体のバグなのだろうか。

これは困った。。。

幸いな事に Android 4.1.2 の Nexus 7 の方は全く問題ないので、しばらくはそちらで開発するしかないかも知れない。

この機会にいっそGalaxy S IIIをRoot化してみるかな。^^


追記1:

下記にもある通り、Android 4.1 (Jelly Bean)からデフォルトのumask値が000ではなく077になった事が関係している模様。

[Q] Jelly bean and apk. - xda-developers
Eclipse や adb installを使わずに手動でAPKファイルを端末にコピーしてからインストールすれば動かせるらしい。でもそんな面倒な事はやってられないな〜。


追記2:

試しに

 adb install bin/[APPNAME].apk

を実行してみると、

 Failure [INSTALL_FAILED_ALREADY_EXISTS]

というエラーになった。そこで

 adb uninstall [PACKAGENAME]

をすると、Success になったので、その後もう一度、

 adb install bin/[APPNAME].apk

を行うと Success というメッセージが表示されてアプリがインストール出来た!

ただやはりEclipseから実行した場合はエラーになってしまう。変更する度にuninstallとinstallをコマンドラインでやらないと行けないのは面倒過ぎるので、何とか早く直って欲しいものだ。




2012年10月19日

Android 4.1.2へのアップデートでNexus7のホーム画面が横置きに対応!

ちょっと前にNexus7にOSの更新の通知が出ていたので、更新するとAndroidのバージョンが 4.1.2になった。

特に更新前との違いに気付かなかったので忘れていたのだけれど、今日ふと画面の自動回転を有効にして試してみると、横置きにした時のホーム画面の使いづらさが見事に改善されていた。

これは嬉しい!

これで横置き対応だけのために Nova Launcher などのサードパーティのホームアプリを入れなくても良くなった!

ロック画面もこの通り横置きに対応

横置き
縦置き




2012年8月25日

Nexus 7用のケースとスタイラスペンが届いた

Nexus 7用に注文していたケースとスタイラスペンが先週届いた。ちょうど一週間使ってみて、かなり手に馴染んできた。




i-BLASON Auto Sleep / Wake Google Nexus 7 inch Tablet 100% Genuine Leather Case Cover / Stylus for 8GB 16GB 3 Year Warranty (Blue)


このケースには先端部分がゴム製のスタイラスが付属している。ただゴムなので予想した通り「スラスラ書ける」感じではなく少し抵抗がある。

なので別途安い割に評判も悪くなかった「amPen」というものを購入した。こちらはさすがにスラスラ書ける。ほとんど抵抗が無いので感動してしまった。

これで本当に「紙のノートを置き換えて仕事でバリバリ使う」事が出来そうだ。

amPen (TM) New hybrid stylus for ipad 3, iphone 4s, kindle fire, nexus 7, galaxy S 3 (Black) [in AM Retail Packing]


大きさも見た目もほぼシステム手帳なのでこのまま持ち運んで歩いても全く違和感が無いのが嬉しい。

ケースを閉じると自動的にスリープモードになる。そして開くと自動的にONになる。これがとても便利。実はこのケースを買って一番良かった点はこれかも知れない。

電源ボタンを押す必要があるかどうかというほんのささいな差なのだけれど、これがあるのと無いのとでは日常の使い勝手がかなり変わってくると思う。




もちろんスタンドにもなる。

ただ標準のスマートフォンUIだと横置きではホーム画面に戻った時に最強に使いにくいので、最近はもっぱら縦置きで使うようになってしまった。慣れというものは恐ろしい。(笑)











.


2012年8月11日

Nexus 7で「7Notes with Mazec」を使ってみた感想

「交ぜ書き」機能と言うのがすごい。「後から変換」機能も素晴らしい。



これなら充分仕事のミーティングで使えそうだ。
しかも使えば使うほど効率が良くなって行く様な行くような気がする。

画面を横向きにすれば一気に書いて変換出来る量が増えてとても良い感じだ。

Google日本語入力など他のIMEと比べても、人と話しながら書きやすいのは Mazec の方だ。

フリック入力だと、フリック操作自体に常に集中力を奪われてしまう。
手書きだと喋りながらでも手軽に書ける点が良い。

慣れてくれば右手で書いて左手で変換候補を選択すると言うワザが使える様になって来る。これが出来ると断然入力速度が上がる。

欲を言えば、改行とBackspaceのボタンがもう少し大き目で押し易ければ最高だ。

今は指で書いているけれども、スタイラスペンを使ったらもっと快適になるのではないだろうか。Amazonで注文したスタイラスが届くのがとても楽しみだ。


しかも、手書き入力というものには思わぬ副産物が付いてくる。

これは漢字の練習にもなるのだ。日頃キーボードばかりで漢字を忘れてしまっている僕の様な人間には良いリハビリになるかも知れない。











.


「Google Nexus 7」を買って10日目の感想

●ハードウェア



ハードウェア的な仕様はこちらを参照。
【レビュー】199ドルを実現したGoogle独自タブレット「Nexus 7」を試す(外観編) (1) まずは仕様・デザインを確認 | 携帯 | マイナビニュース 
画面はまずまず見やすくてきれいだし、スピーカーの音質にも不満は無し。
バッテリーの持ち具合も今のところ結構良い感じ。


●不要なプリインストールアプリが無いのが嬉しい


Galaxy S IIIにはSamsung製のアプリがたくさんプリインストールされていてちょっと目障りだった。もちろんNexus 7ではその様な事は無い。アプリ一覧の画面もすっきりしていて気持ちがいい。




●タッチへの反応にはちょっと不満


スクロール時の滑らかさはいい感じだと思うけれど、たまにタップになかなか反応せずボタンなどを2,3回押さないと行けない事がある。これはタッチスクリーンの初期不良か何かなのか? と思ってしまう。かと思うと全く快調に反応する日もあったりして、まだ良くわからない。



●Bluetoothでキーボードとトラックパッドを接続したら便利だ!


AppleのBluetoothキーボード(英語配列)を接続してみたら、何の問題もなくすぐに使える様になった。これは便利かも。

ついでにAppleのトラックパッドもつないだ。こちらも接続は全く問題無し。

日本語入力用IMEについては、初期状態で「iWnn IME」が入っていた。外部キーボードをつないだ状態ではこれを使うのが無難そうだ。なぜかと言うと、他のIMEだと日本語変換のON/OFFが外部キーボードから出来ない場合が多いからだ。

「Google Japanese Input (Beta)」や「Shimeji」を試した限りでは、外部キーボードとの相性という意味ではやはり標準で入っているiWnnが良いみたいだ。



●ホーム画面に戻ると強制的に縦表示になってしまう


(この問題はAndroid 4.1.2への更新で解決済み。下の追記参照)

おそらくマウスやトラックパッドを接続して使う場合に最も困るのがこの点だ。アプリ画面では横向きで作業出来るのに、ホーム画面に戻った途端に強制的に縦表示になってしまう。端末自体はまだ横向きのままなのに、だ。

そして、その状態だとマウスポインタを横に動かすと見た目上は縦に動いてしまって、ものすごく使いづらくなる。

一体全体、Googleの人達は縦置きでしか使ったことが無いのか、と言いたくなってしまう。

画面の表示はそのままでもいいので、少なくともマウスポインタの動きだけは本体の物理的な向きに追従する様に出来ないものだろうか?

これは本当になんとか改善して欲しい。マウスやトラックパッドを全く使わないとしても、スタンドなどにセットして横向きで常用したい人にとっては悪夢の様な仕様だ。

下のサイトのTipsの#38に対処方法があった。ホーム画面を横向きにする事が出来るらしい。但しまずRoot化が必要との事。
http://blog.the-ebook-reader.com/2012/07/18/40-tips-and-tricks-for-google-nexus-7-tablet/
こちらに載っているのも多分同じ方法。
Nexus 7を完全なタブレットUIにするカスタマイズのスゝメ - Digital Grapher
http://digitalgrapher.blogspot.jp/2012/08/nexus-7ui.html

上の「ro.sf.lcf_density=213」の213を170に書き換えるというやり方以外に、 「launcher.force_enable_rotation=true」を書き加えるという方法もあるみたい。
Nexus 7 をタブレットUI~ホーム画面が横回転するようにした。
http://usagisaigon.blogspot.com/2012/08/google-nexus-7-ui.html
確かにこちらの方がJelly Beanらしくて良さそうだ。

出来ればRoot化しなくてもGoogleが標準で対応してくれるのが望ましいと思う。

あるいはやっぱりNexusシリーズはRoot化して自己責任で色々いじって使うのが基本なのだろうか。Nexus 7のRoot化はそれほど難しくないみたいなので、近いうちにチャレンジしてみるかも知れない。



※ 2012/9/27 追記:
コメントで別の解決策を教えてもらった。
「Nova Launcher」をインストールしてデフォルトのホームアプリにすれば横置きでも問題なく使える様になった!



※ 2012/10/18 追記:
Android 4.1.2へのアップデートでNexus7のホーム画面が横置きに対応!
これで上の不満はようやくスッキリ解決。^^/



●デフォルトではカメラアプリは無い


このアプリをインストールすればフロントカメラで写真やビデオが撮れる様になった。
https://play.google.com/store/apps/details?id=com.modaco.cameralauncher
あまり使う機会は無いと思うけど、せっかくカメラがあるのだから一応入れておこう。

でも使って見ると、フロントカメラで自分以外のモノを撮るというのは、実はなかなか難しく、実質的に実用には向かない事が判明した。(当たり前か...笑)

ちょっとしたメモ代わりに書類やホワイトボードなどを撮影してそこに手書きで何か書き込みたい、という様な場面もある(かも知れない)ので、背面カメラはタブレットでもやはり必要なのではないかと思った次第。



●PDANetを使ってテザリング


米国Sprintの携帯回線を使っていると、追加オプション(月19ドル)を契約しないとテザリング機能が一切使えない様になっている。(Wifi, Bluetooth, USBのどれもテザリング実行前にSprintのサーバーに契約の有無を確認しに行っているみたいだ。)

でも、「PDANet Tablet」というアプリを入れれば非公式にテザリングが出来る。
Nexus7をxperiaでテザリング(PDaNet利用)
http://onboradcamera.blog.fc2.com/blog-entry-12.html
携帯が Galaxy S III の場合はアプリがまだ対応していないらしく、上手く動かなかった。HTC Evo 4G で試すと問題なくテザリング出来た。




●さて、何に使うかが問題...?


さて、ハードウェア的にもまずまず不満はないしソフトウェア的には最新のJelly Beanが載っているこの素晴らしいNexus 7、あまり良く考えもせずに勢いで買ってしまったわりに実はこれと言った用途が思い浮かばないので困ってしまった。

こんな事なら250ドルをiPad Miniの為に貯金しておいた方が良かったのではないか。

いやそんな事はない。これがあれば常に最新のAndroidバージョンで自作アプリの実機確認が出来るではないか。

そうだ、アプリ開発のデバッグ用にじゃんじゃん使おう。いやそれなら既にGalaxy S IIIがあるじゃないか、画素数的にも同じだし。

では電子書籍リーダーとして...はどうせ多分使わない。音楽プレーヤーとして...は大き過ぎる。ゲーム用端末...そもそもゲームしてる時間が無い。映画鑑賞?...ならiPadもMBAもあるし。


と色々考えた末、今のところ最有力になりつつあるのは「紙のノートを置き換える」という用途。

この為に手書き入力用アプリ「7 Notes with Mazec」も買ったし、スラスラ書けそうなスタイラスペンもオーダーした。もちろん無料の「Skitch」もインストール済みだ。

これでなんとか後悔せずに済むのではないだろうか。











.





2012年7月25日

米国Sprint版「Galaxy S III」の使用感


samsung-galaxy-s-iii-galaxy-s-3-8

購入1週間後の感想。
以下、☆は良かった所、■は今ひとつな所。

☆薄くて軽いのでポケットに入れやすい! (HTC Evo 4Gとの比較で)

☆WiFiの「つかみ」がかなり速くなった。 (HTC Evo 4Gとの比較で)

☆通知領域を開くと上に出て来る各種設定ON/OFFボタンが便利!
Screenshot_2012-07-24-13-11-58

☆カメラが高機能! 連射機能とかHDRとか面白そう。

☆バッテリーの持ちは問題ないレベル。僕の使い方(使用しない時はWifi/3G/GPS/自動同期をOFF)だと50時間は充電なしで使えそう。
2日と5時間でバッテリー残量27%


☆RAMとストレージ容量に余裕があるので気持ちが楽。(これは大事。笑)


■つるつるしていて操作中に気を抜くと落としそうになる。

■両サイドの音量ボタン・電源ボタンを間違って押してしまう事がある。

■輝度100%でも直射日光の下では少し見辛い。

■戻るボタンとメニューボタンがハードウェアボタンとして付いているのはいいのだけれど、デフォルトではすぐにバックライトが消えて見えなくなってしまう。(設定で常時ONにしたら解決した。)


全体的にはとても満足。
これがあればNexus 7はもういいかな、とも思ってしまう。







.

2012年6月22日

Android: クリック時にボタンの画像を回転させる方法

押されるとカクッと画像の角度が変わるボタン。

ちょっと調べるのに時間がかかったので一応メモ。

まず res/drawable の下に例えば button_stateful.xml という名前でXMLファイルを作る。





あとは画面レイアウトのXMLファイルの中でボタンを下記の様に定義すればOK。













.

2012年4月19日

Windows上でAndroid SDK Revision 17のandroidコマンドのエラーを回避する方法

久しぶりにWindows 7上でAndroid SDKのアップデートを実行しようとして、いつもの様に

android update sdk

と打ち込んだら、エラーになった。ここに書いてあるのと全く同じ現象だ。
rTAKI0329's android ブログ: android.bat が起動しないので、こんな回避策を実施してみました
こちらでも同じ現象が報告されていた。
Issue 23648: tools\lib\find_java.bat returns Java not found in your path

 上のブログに書かれている通りに lib\find_java.bat ファイルを編集してjava.exeのパスを直接書き込んだらエラーは出なくなったので、ひとまず安心した。

でもこれを知らなかったら、このエラーを修正したアップデートが出たとしても、それを適用する為のコマンド自体がエラーになるのだから、アップデートが出来ずに途方に暮れる事になっていただろうと思う。







.

2012年4月7日

携帯電話でも動くAndroidアプリ開発環境「AIDE」を使ってみた

「AIDE」というアプリが面白い。
AIDE - Android Java IDE - Google Play

InfoQ: AIDE 開発者に聞く - Android で動作する Android Java IDE

【コラム】イマドキのIDE事情 (126) ついに登場! Android上で動作する開発環境「AIDE」

これがあればAndroid端末上でAndroidアプリを開発する事が出来る。最初はもちろん「どうせエラーで落ちまくるんじゃないの?」と半信半疑だったが、試してみた所かなり安定している。

今回は3時間ほどかけてじっくりとこの「AIDE」で遊んでみた。

多分メインの用途としてはタブレット端末に外付けのキーボードをつないで使うという事を想定しているのだろうけど、なかなかどうして画面が4.3インチしかない携帯電話(HTC Evo)の上でもしっかりと動いている。

ソフトウェアキーボードでのコード入力は確かに辛い。でもコード補完もいい感じでやってくれるので、ある程度慣れればそれなりに打ち込める様にはなりそうだ。

まず何を試そうかと思ったのだが、以前に自分で作ったオセロゲームのEclipseのプロジェクトをそのまま読み込ませてみた。それなりの行数のコードなのでこれが問題なくビルド出来て動かせるのであれば、実際の開発でも使えそうだという事になる。

AIDEはGitに対応しているので、GitHubの公開リポジトリを指定して「Clone」を押すとなんの問題もなくソース一式を開く事が出来た。素晴らしい。

Gitのリポジトリを指定して「Clone」を押せばソースを取得してくれる。便利!
このサンプルのURLは、https://github.com/mikehibm/MiReversi.git
もしくは git://github.com/mikehibm/MiReversi.git

ソースに入っていた日本語のコメントも問題なく表示されている。
(ただし日本語の入力にはちょっと問題がある。)


ソースを取得した後、早速メニューから「Run」を選択して実行。

実行するとAPKファイルが作成され自動的にこの端末にインストールされる。

オセロゲームのアプリが問題なく起動した!

PC上のEclipseで作成したプロジェクトを開いてビルド・実行が出来る事が確認出来た。もちろんGitリポジトリからPullするだけでなく、ソースを変更した後、Commit/Pushする事も出来る。



つまり、これで通勤時間中に開発したり、ちょっとした空き時間にデバッグしたりという事が携帯だけで出来る、という事だ。ちょっと興奮してしまう。もちろん実際にやるかどうかは別だけれども、「やろうと思えば出来る」という事が凄いのだ。

さて次に、AIDEだけを使って小さなサンプルを一からコーディングしてみる事にした。

プロジェクトの新規作成画面。


新規作成後、res, src, gen, bin, assets などEclipseでも見慣れたフォルダが自動的に作成されている。

とりあえず、レシピ本の「No.88 カメラを呼び出す」サンプルを入力する。

IntentがImportされていないので赤い波線が表示された。

画面を長押しすると「Fix」というメニューが出てくるのでこれを選択。



さらに「Add Import ...」を選択すると、自動的にImport文を生成して追加してくれる。この辺りはEclipseと同等の使い勝手を実現している。



メニューボタンを押すと出てくるメニュー。




ソフトウェアキーボードと格闘しながらコードを入力する事約20分、AIDEだけで作ったミニアプリが出来上がった。ボタンを押すとカメラが起動して、撮った画像の縮小版がImageViewに表示される。



携帯でここまで出来るのだから、タブレット端末ならもっと快適だろうと思う。ましてや外付けキーボードなんかがあったら、もしかするとPC上でエミュレータを起動したりUSB経由で実機をつないだりするよりも快適かも知れない。

ただ、ひとつだけ欠点がある。AIDEでは現状ではデバッグ実行の機能が無い。もし将来的にデバッグ実行機能が付いてブレークポイントとかが設定出来るようになったら、本当に凄い事になるかも知れない。









.

2012年3月23日

Android SDKをRevision 17に更新したらエミュレータがサクサクに!

Android SDK ToolsがRevision 17にアップデートされたので早速更新した。今回は比較的大きな更新になっている様だ。
Android SDKアップデート、Windows/Macでエミュレータが高速に | マイナビニュース

Updated SDK Tools and ADT revision 17 | Android Developers Blog

特に興味を惹かれたのが、
WindowsおよびMac OS Xにおいてエミュレータが仮想モードでAndroidx86システムイメージをサポートし、Androidが高速に動作するようになった。
という部分。

早速ここに書かれている手順通りにやってみた。
Using the Android Emulator | Android Developers


ただし、Intel VTによる仮想化支援を使うには、次の制限があるとの事。
  • ARMベースではなくx86のシステムイメージを使ったエミュレータしか動かせない。
  • 仮想化された環境内では動かせない。
  • 同一PC上でIntel VTを使う他の仮想化ソフト(VMwareやVirtualBoxなど)と同時に動かす事は出来ない。
  • OpenGL ESを使うアプリのパフォーマンスは実機ほどは出ない。



まずは、「Android SDK Manager」でx86のシステムイメージをインストールする。
現時点では、APIレベル10(Android 2.3.3)用のものしか無いみたいだ。


次に、SDK Managerのリストの一番下の方にある「Extras」の中の「Intel Hardware Accelerated Execution Manager」を選択してこれもインストール。
インストール後、コマンドラインから
sc query intelhaxm
を実行して、
SERVICE_NAME: intelhaxm
       ...
       STATE              : 4  RUNNING
       ...
と表示されればOK。



インストール完了後、AVD作成ダイアログのターゲットに「Intel Atom x86 System Image」が追加された。これを選択してAVDを作成すると、エミュレータ実行時にIntel VTによる仮想化支援機能が使われて動作が速くなるという事らしい。



早速エミュレータを起動してみると...

お、確かにブラウザが一瞬で起動する様になっている。

サンプル「APIDemos」を動かしてみる。
従来のエミュレータだとかなりカクカクしていたOpenGL ESのデモも、上述の様に実機ほどのパフォーマンスは出ないと但し書きはあったものの、x86イメージのエミュレータだとかなりスムーズに動いている。

(上)従来のエミュレータ (約8.5FPS)
(下)x86システムイメージを使ったエミュレータ (約27FPS)



普段からエミュレータ上で開発をしている人にはかなり嬉しい改善になりそうだ!


と思ったのだけれど...、

ここまで書いてから、さてVirtualBoxでいつも使っている仮想マシンを起動しようとしたら、「仮想マシンを起動出来ません...云々」のエラーが出てしまった。。。

「なんださっきインストールしたIntelのHAXMとか言うサービスを止めればいいんでしょ。」と思ってコマンドラインから、
sc stop intelhaxm
を実行。サービスが止まっているのを確認してから再度VirtualBoxの起動を試みても、やっぱり同じエラーが出る。検索したらMacでもやはり同じ問題に遭遇している人が居た。
HAXM stops VirtualBox fro ... - Intel® Software Network
PCを再起動しても同じなので、結局あきらめて「Intel Hardware Accelerated Execution Manager」をアンインストールする事にした。

アンインストール後は無事VirtualBoxの仮想マシンが起動出来たので、このIntelのHAXMサービスが原因だった事は間違いないと思う。

という事で、VirtualBoxとの相性は良くないみたいだ。残念。:-(









.

2012年3月21日

小さな子を持つ親としてAndroidタブレットに欲しい機能

我が家の子供達にひらがなやカタカナの練習をさせたいと思って、たまに初代iPadを使わせている。

ただ、子供にタブレット端末を使わせる場合、何も設定しないと大きな問題がある事に最近気付いた。というのも、子供達がYoutubeの使い方を覚えて、放って置くと1時間でも2時間でもアニメ(主にアンパンマン)の動画ばかり見続けるという状態になったからだ。

これではだらだらとテレビやDVDを見ているのと変わらないから、きっと教育上よろしくない。

そういう時に便利なのが、iOSの「機能制限」の設定だ。ここでYoutubeの使用を制限する事が出来る。さすが Apple、よく出来ている。


それはそれでいいのだけれど、せっかくだから出来れば自作のアプリでひらがな・カタカナを練習させたいなあと思い始めていて、そうなると今からiOSの勉強は大変なのでやはり子供用にAndroidのタブレット端末を買おうかなという事になる。

そこで気になるのが、Youtubeの存在だ。

Android端末でYoutubeのアプリを使用不可にする事は出来るのだろうか。少なくとも手元のAndroidスマホでは出来なさそうだ。

なんらかの方法で仮にYoutubeアプリを使えなく出来たとしても、多分ブラウザからは見る事が出来てしまう。

今年の5月か6月頃に出ると噂されているGoogle製の7インチタブレットには、ぜひこういったかゆい所に手が届く機能をOS標準の機能として付けてもらいたい。
Google タブレットは7インチ、 ASUS 製、5月発売? - Engadget Japanese

本当に200ドル前後という低価格で販売されるのだったら、iPad1台分の値段で2台買ってもまだお釣りが来る! 期待してしまうだけに、こういう細かい点がどうなるのかなあ、と気になる。




.

2012年3月17日

良い習慣付けをサポートしてくれそうなAndroidアプリ達

この記事を読んだのがきっかけで「習慣付けをサポートしてくれるアプリ」が気になりだした。
日記が全然続かない僕がたどり着いた『4行日記』を習慣化する為に行った方法 | ライフハック | Yu_notes.
僕も日記を続けようと思っていてなかなか続かないので何か良い方法はないかなと思っていた所だったので、Androidでも「21日習慣づけ」と同様のアプリが多分あるだろうと思って探してみた。

選んだ基準は、

  1. 見た目がシンプルでデザインが良い事。
  2. 入力が簡単そうな事。
  3. カレンダー表示やグラフ表示が出来る事。

の3つ。

とりあえず次の7つをインストールして試し中。

Routinely


Success Log: Goal Tracker


Habit Streak


My Effectiveness Habits (beta)


Habitlog - Habit Builder


GoalTracker


MyChain


一週間ほど使ってみて、どれが最も気に入ったかまた書こうと思う。






.

2012年2月16日

Sony Tablet Sを数時間触ってみた感想

仕事でたまたまAndroidタブレット用アプリの開発案件が入って来た。
ターゲットの端末は今の所「Sony Tablet S」の予定なので、試しに実機を触らせてもらった。

Googleアカウントは設定せずに単にOSの設定画面やプリインストールのアプリをいじっただけなのだけれど、数時間ほど触った現時点での感想を書いてみたい。

1.外観


背面がプラスチックっぽくて少しチープに見えるけれども、慣れれば違和感は無くなりそうだ。手に取った時の体感的な重さはiPadとほぼ同じか少し軽いぐらい。片側が厚くなっているので持ちやすいのは確か。

2.液晶画面 


見やすく綺麗だけど照明の具合によっては指紋が目立ってしまう。

3.UIの反応


動作は軽快で快適。特にブラウザの起動は速く感じる。

4.最大の問題


OS(Android 3.2)のフリーズが何回か発生した。普通に設定画面を操作しているだけなのに、下の画面の様に「システムUI」のエラーが出て、「強制終了」ボタンを押すしか無くなる事がある。

アプリではなくOSの設定画面で「システムのエラー」が出るとは。


最悪なのは、その後、画面左下に3つ並んでいるバックボタン、ホームボタン、タスク一覧ボタンが消えてしまい、全く何も操作が出来なくなる事だ。

こうなると結局電源ボタンを長押しして端末を再起動するしか無く、本当にストレスが溜まる。

ちなみに、「タブレット情報」の画面で確認すると、
Androidバージョン:3.2
カーネルバージョン: 2.6.36.3
ビルド番号: 1.10.001100001
だった。

Androidのバージョンが4になれば改善するのかも知れないが、ソニーがOS標準のUIにだいぶ手を加えている様なので、その辺りとの兼ね合いで本当に不具合が完全に無くなるのか疑問が残る。

正直、ハードメーカーには、OSのカスタマイズには手を出さずにひたすら丈夫で軽くてバッテリーの持ちが良いハードウェアを作る事に徹してくれた方が有り難いと思う。