2013年11月10日日曜日

[android]ファイル圧縮による通信量の削減

NTT docomo様ご提供の「AndroidTMアプリ作成ガイドライン~効率的な通信制御に向けて~」を読みました。


PDF内の「3.4.5. ファイル圧縮による通信量の削減」をやってみました。
携帯ネットワークの効率的な利用に対して、私にもすぐに貢献できそうだとおもったからです。
(まあ、私のアプリの通信なんて微々たるものだとはおもいますが……)
PDF内のサンプルコードHTTP GET時にGZIP要求を行うクラス(AsyncHttpGet2)の内容そのままです。

HttpResponseインスタンスを得るところまでをちょっと変更させてもらうと、
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("WEB APIのリクエストURL");
Header[] headers = new Header[2];
headers[0] = new BasicHeader("Accept-Encoding", "gzip, deflate");
headers[1] = new BasicHeader("User-Agent", "my program (gzip)");/** ★ */
httpGet.setHeaders(headers);
HttpResponse response = httpClient.execute(httpGet);
/** responseがGZIP圧縮されている場合は、GZIPInputStreamで受け取る */
/** PDFのサンプルコードがとても参考になります! */

★の("User-Agent", "my program (gzip)")は通信するサーバによっては不要だとおもいます。
Google様のWEB APIを使うときは必要なようです。
たとえばYouTube Data APIには、gzipを含むUser-Agentの指定が必要なことが明記されています。
gzipを含んだUser-Agentを指定しないと、GZIP圧縮された返戻を得られませんでした。
Google App Engineで作った自作のWEB APIでも同様だったので、Google様で共通の仕様なのかもしれません。




2013年11月6日水曜日

GAE(Java)のプロジェクトが変になった



SDKが初期化できないとかなんとかという現象でした。

ちょうどこことかここにあるような内容と同じ現象でした。
cleanができない、プロジェクトに赤いびっくりマーク(!)が表示される……
泣きそうでした。


なにを契機におかしくなったのかは不明です。
なんとか復活できましたので、その内容をメモしておきます。

【環境】
パソコン: iMac 21.5-inch, Late 2012
    プロセッサ 2.7GHz Intel Core i5
                メモリ 8 GB 1600 MHz DDR3
OS: Mac OSX 10.9 Mavericks
Eclipse: バージョン4.2.2
Java: Java 6

【対処概要】
Java 7をインストールする。
Warning: The App Engine SDK no longer supports Java 6. Applications that use Java 6 need to be migrated to Java 7. Existing applications that use the Java 6 runtime are still supported, but this support will be removed in a future release.
なのだそうです。

【メモ】
1. JDK 7のインストール
ここを参考にさせていただきました。ありがとうございます。
「(4) 環境変数を設定する」はやっていないです。よくわからなかったので。
「(5) システムのJavaを設定する。」もやっていないです。
そのかわり、java -versionとかjavac -versionとかやったら、
Java 7(1.7.0_45)に変わっていることは確認しました。
(※)MacでのJava Preferencesは、ここにあるようです。
 ある時点から、アプリケーション->ユーティリティ配下ではなくなったようです。
  リンゴマーク(左上)→システム環境設定…


2. プロジェクトを修正する
・右クリック(※) ⇒ Properties -> Google -> App Engine
 Use specific SDKを正しいものに選びなおす。

・右クリック ⇒ Properties -> Java Build Path -> Librariesで×マークになっているものを
 Removeする。
 ⇒ プロジェクト欄の赤いびっくりマーク(!)は消えました。
   しかし、Project -> Cleanしてもまだなにやらエラーがでていました。
     あと一歩です!
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/appengine/tools/enhancer/Enhance : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)


・JREの設定
 ⇒ こちらがJava 6のままだったから不都合が起きていたようです。

      Eclipse(※) -> 環境設定… -> Java -> Insitalled JREs
     (※)リンゴの隣です。Windows PCの場合は、Window -> Preferencesだったとおもいます。
      jre6にチェックがついていました。
      Searchボタンを押すと、jre7が見つかったので、チェックをつけてOK。

だいたいこんな感じで、再びcleanや実行、deployができるようになりました!

他にはORACLE様のFAQが参考になりそうなのでリンクを紹介しておきます。

(※)生粋のMacユーザさん達は右クリックなんてしないのですかね。
私はマウスの設定で右クリックを有効にしています。慣れた操作なので、私にはしっくりきます。




2013年10月31日木曜日

OSX MavericksにHAXMをインストールしてエミュレータを起動すると……(android)

Intel(R) Hardware Accelerated Execution Manager(HAXM)は13/10/31現在、Mac OS X 10.7 Lionまでのサポートのようです。
READMEみたいなファイルをみて、それは知っていたのですが、まあ大丈夫だろうとおもって、OSX Mavericksにインストールしてみました。
失敗しました……

HAXMをOSX Mavericksにインストールして、androidエミュレータを起動しようとすると、Macがフリーズしました。
こんなのはじめてです……
お気をつけください。
3時間ほど放置しましたが、画面中央下部にインジケーターがまわりつづけ、マウスは反応せず、Command + Option + Escも効かず、嫌でしたが買ってからはじめて、泣く泣く電源ボタン長押しをしました。
iMac 21.5-inch, Late 2012です。

再起動後はアンインストールとディスクユーティリティで、ディスクの検証とかをしておきました。
上記のリンクにアンインストール方法が書いてあります。
念のため、AVD Managerでエミュレータを消して(※)、作成しなおしました。
今度は無事、エミュレータの起動ができました。とりあえずよかったです。

このへんの話は、stackoverflowでも話題がでていました。
公式見解(やりとり)はこちら

(※)Macがフリーズするまえに、起動しようとしていたデバイスのdeleteができませんでした。電源ボタンを押し強制終了したことによる影響かとおもいます。こちらを参考にして、~/.android/avd配下の.iniファイルと*.avdフォルダを消しました。

追記(2013/11/7)
hotfixがでていました。私はまだインストールしていないです。
http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/




2013年10月14日月曜日

Alt+P

「現在他のプロセスによって書き込みが禁止されています。」

ドットインストール様を利用させていただいて、HTMLの勉強をしています。

OSはWindows7、エディタはサクラエディタを使用していましたところ、
なんだかわからないタイミングで「現在他のプロセスによって書き込みが禁止されています。」と表示されて保存ができなくなるのです。
ウィルス感染? とか焦っていると、Alt+Pで解決しました。

こちらのページを参考にさせていただきました。
ありがとうございました。



2013年9月22日日曜日

JavaScript勉強

aaa
をお使いですね。


東京五輪開幕まで残り
test
です。


  • 2020/07/24までの残りの時間を計算しています。
  • JavaScriptは月を0-11で表すのですね。
  • Chromeだと、右クリック->ページのソースを表示でソースが見れるのですね。
デルカへ

2013年9月7日土曜日

[GAE]テキストファイルを読み込む

Google App Engineにテキストファイルを置いておいて、それを読み込みたいことってありますよね? ありませんかね。。。

ファイル書き出しはできないけれど、読み出しはできるみたいなことは書いてあるのですが、どこにどうおいて、ファイルパスはどうなるのかがいまいちわかりませんでした。
今日わかりました。
どうでもよい話ですが、私の失敗談をひとつご披露。
わからない間は、String data = "……"; で、ものすごい長い文字列を書いていました……
その文字列の中に"とかエスケープしないといけない文字があったりするので、生データをエスケープするためのプログラムを書いたりしていました……
その変換プログラムがバグだらけで、データが増えるたびに、変換プログラムで不都合が発生して……
まあ、たぶんGAEにテキストファイルを置きたいという時点で根本を間違えている気がしないでもないのですが…… とまれ、余談でした。


まずファイルは、war/ の下に格納します。
たとえば、war/data/test.txt みたいな感じです。

読み出し処理は、

ServletContext context = super.getServletContext(); // HttpServletインスタンスです

URL url = context.getResource("/data/test.txt"); // warから下のパスで書きます。

FileInputStream is = new FileInputStream(url.getPath());

FileInputStreamのインスタンスが得られたここから先は、「とほほのJava入門」様がとても参考になります。
よく参考にさせてもらっています。ありがとうございます!

追記
ここに似た話が書いてありました。



  デルカへ


2013年9月6日金曜日

[android]HTTP GETする

ドコモからiPhoneがでる(?)らしく、早くiOSアプリのほうをなんとかしたいのですが、これまでのことをまとめておきたくて私がよく使う手を公開します。

HTTP GETして、Stringが欲しいことってよく(?)ありますよね。
WEB APIでレスポンスがJSONで返ってくるというのはよくあるようにおもいます。

TorifukuHttpClient.Decoder decorder = new TorifukuHttpClient.Decoder() {
@Override
public Object decode(TorifukuHttpClient client,
InputStream is) {
return client.convertString(is, "SJIS");
}
};
TorifukuHttpClient client = new TorifukuHttpClient();
String text = (String) client.getContent("http://google.com", decorder);


画像をダウンロードして、Bitmapにしたいこともよく(?)ありますよね。

TorifukuHttpClient.Decoder decorder = new TorifukuHttpClient.Decoder() {
@Override
public Object decode(TorifukuHttpClient client,
InputStream is) {
return BitmapFactory.decodeStream(is);
}
};
TorifukuHttpClient client = new TorifukuHttpClient();
Bitmap bmp = (Bitmap) client.getContent("https://lh4.googleusercontent.com/--dq8niRp7W4/URquVgmXvgI/AAAAAAAAAbs/-gnuLQfNnBA/s1024/A%252520Song%252520of%252520Ice%252520and%252520Fire.jpg", decorder);

ところで、TorifukuHttpClient て何だ? という話ですが、すでに使いやすいとってもすばらしいApache HTTP Clientを私がよく使う形にしてまとめたクラスです。
GitHubで公開しています。

  デルカへ

2013年9月1日日曜日

映画アンコール見た


おじいちゃんおばあちゃんがロックやポップスを歌ってるのが、
ミスマッチで面白い、みんな生き生きしててすごく可愛らしい。
真剣に練習に取り組んでいて、なかなかうまい。
合唱のシーンは、こちらもノッてくる。
耳にしたことのある昔のポップス、ロックを選曲してたので懐かしく感じる。
練習中にのり過ぎて、ぎっくり腰になったおじいちゃんや倒れたりする人
がでてきたりと、いろんなハプニングが起こるが、なんか笑いにしてしまう
雰囲気がよかった。
コーラスグループ名が「年金ず」。というのがいい。
妻のマリオンが重篤な病を持っているにもかかわらず、ここに通いたがった
気持ちも理解できる。
歌の力と歌友達の存在があったからだろうな。
マリオンのがやっとの思いで立てたステージのソロで歌ったのが、トゥルーカラーズ。
夫へのメッセージを込めて歌いきった。
渾身の歌を聴いた夫、アーサーの表情にいろんな思いを感じた。
気難しいだの社交的でないなどと周りに思われても、マリオンの身の回りの世話や介護
丁寧に愛情深くしているのを見ると、外面だけ良い夫よりは何倍もいい。
二人のやりとりに、長年ともにしてきた夫婦の絆と愛を感じる。
マリオンの願いは、アーサーに息子のことを理解して欲しいこと。
生きている間に和解して欲しいのに。
マリオンを二人で看病することで、父子の隙間が縮まるかと期待したけど、それはない。
医師から死期が迫っていると告げられてからと亡くなってからは、余計に離れていく。
最愛の妻を亡くした喪失感でアーサーは、立ち直れない。
本来マリオンが歌うことになってたソロでのパートをアーサーが代役することにした。
コンクールにでて歌うまで、いろんな葛藤、挫折を乗り越える。
マリオンが伝えたかったこと、分かった。
前向きに生きること、楽しむこと。
アーサーの人生は、これからアンコールするんだね。










2013年8月30日金曜日

Visual Basicはじめました

ひょんなことからその原型が1990年代後半につくられたVisual Basicプロジェクトをメンテナンスすることになりました。
Visual Basicははじめてですが、なかなかおもしろいです。
個人的に憧れの(?)Windowsアプリをちょっとしたものなら作れるようになってきていることはうれしいです。

Visual Basic6.0 -> Visual Basic2010への移行を行なっています。
ははは(笑)、これもう文法が全然違うものになってますね。
Visual Basic6.0 ⇒ Visual Basic .NETというのにあがったときに、だいぶ言語レベルでの変更がされているようです。

1. Visual Basic6.0 -> Visual Basic2008は移行ツールがあるので、それで一度あげます。Visual Basic2008を起動して、Visual Basic6.0のプロジェクトファイル(.vbp)を開きます。
2. ものにもよるのでしょうけど、コンパイル通りませんので、とりあえず無理やりにでもコンパイルを通します。
3. Visual Basic2008 -> Visual Basic2010に移行ツールであげます(No.1と似たような操作です)。ものにもよるのでしょうけど、No.2ほどはコンパイルエラーはでませんでした。
4. No.3までのものは全く動きませんでした。ひとつひとつ機能を動かしながら、ダメなところを特定して、Visual Basic2010で動くように修正していきます。
ふつうのデバッグ作業です。

おおよそ15年前の先輩方の苦労がしのばれる工夫が随所にみられます。
メモリサイズ、実行速度そういったことを気にされていたのでしょう。
(自分が作ったものもどこかで誰かが触っていることがあるかもしれないとおもうと、ちょっとゾッとしました。)

最後に、Labelの中央寄せについて書いておきます。
Visual Basic6.0は、中央寄せを指定すると、Labelを配置した位置を中心として、左右に文字列が広がっていく感じです。
Visual Basic2010では、TextAlignをMiddleCenter等にした場合、Labelが配置された領域のなかで文字を中央に寄せる感じになります。
AutoSizeはFalseにする必要があるようです。
画面の中央に揃うように表示したい場合は、上記に加えて、LocationとSizeで画面幅分の領域を指定すればよいです。

言葉だけじゃ伝わらないとおもうので、絵をかけばよいのでしょうけど、面倒なので、「中央寄せの定義が異なっています」がポイントです。
(というかこんなことブログに書かなくても周知の事実なのでしょうけど……)

2013年8月22日木曜日

BitmapFun.zip

android Developersの Displaying Bitmaps Efficiently を勉強しています。
AsyncTaskは使ったことあるし、わかっているつもりだったのですが、ここのサンプルを読むと「こんな使い方するんだ!」という新たな驚きがありました。

サンプルコード BitmapFun.zip なのですが動かしてみると、サンプルの写真がキレイで感動すら覚えます。しかもネットワーク上の写真をHTTPで取得するサンプルでいろいろ勉強になります。

会社のパソコンでエミュレータ(AVD)で動かしたら、画像のダウンロードに失敗しました。
プロキシの影響でした。コードを書き換えると画像のダウンロードができるようになりました。

クラス: com.example.android.bitmapfun.util.ImageFetcher
メソッド: downloadUrlToStream(String, OutputStream)

urlConnection = (HttpURLConnection) url.openConnection();
これを書き直す。

↓↓↓↓
java.net.SocketAddress socketAddress = java.net.InetSocketAddress.createUnresolved("host", 50000/*port番号*/);
// java.net.SocketAddress socketAddress = new java.net.InetSocketAddress("host", 50000/*port番号*/); でもよいかも?
java.net.Proxy proxy = new java.net.Proxy(java.net.Proxy.Type.HTTP, socketAddress);
urlConnection = (HttpURLConnection) url.openConnection(proxy);

※"host"とport番号はお使いの環境にあわせてください。

詳細は HttpURLConnection を参照ください!


追伸
どうでもよいことですが、プロキシの設定をすればよいと気づいてコードを書き直したのですが、なかなか思ったとおりに動いてくれませんでした。

SocketAddress socketAddress = InetSocketAddress.createUnresolved("host", 50000/*port番号*/);
Proxy proxy = new Proxy(Proxy.Type.HTTP, socketAddress);
urlConnection = (HttpURLConnection) url.openConnection(proxy);

urlConnection = (HttpURLConnection) url.openConnection(); // proxy設定なしで、urlConnectionをセット

★の行が残ったままになっていました。
追加した行にばかり気を取られて、あれこれ悩んで、気づくまで1時間くらい時間がかかりました。。。
iTunes Store(Japan)

2013年6月11日火曜日

オノマトペ

最近の流行りだそうである。
「オノマトペ」とカタカナで言われてもピンとこなかった。

日本語は擬声語というらしい。
「ギセイゴ」とカタカナで言われてもやはりピンとはこなかったであろう。
擬声語と漢字で書かれると、ようやくぼんやりと意味がつかめる。

ぱみゅ
じぇじぇ

スポーツの指導でも使われはじめたそうだ。
というか、ようやくやっとのことで、その有効性に世間が追いついただけのことであるとおもう。
ご存知我らがミスターG、長嶋茂雄さんはもうずいぶん前から、オノマトペを多用されている。
オノマトペの第一人者といっても過言ではない。
この一事をもっても、やはり国民栄誉賞の受賞は遅すぎたくらいなのである。





2013年6月4日火曜日

アントニオ猪木先生!

トップ当選間違いなし!


どうせなら平成維震軍から出てほしかった。


iTunes Store(Japan)

2013年6月1日土曜日

ツートップ

フィーチャーフォン(いわゆるガラパゴスケータイ、ガラケーのこと)をお使いのみなさまへ

私はスマートフォン向けのアプリ開発をしています。
いまは、androidというオペレーティングシステムを使った機種のみで動くアプリを公開しています。
趣味の範囲です。

ドコモのスマートフォンは、一部を除いて、ほとんどの機種がandroidです。
ソフトバンクとauは、androidとiOS(iPhone)の両方があります。

ドコモをお使いの方は、スマートフォンへの切り替えを薦めるようなダイレクトメール(メッセージRというのでしたっけ?)がきているとおもいます。

スマートフォンに切り替えたら、ぜひ、下記のアプリをインストールしてくださいね!
 読書日記
 ニャつかしの昭和歌謡曲
 Life  Measure
 Nyat Surfing


ただ、切り替える前によく考えてから、機種変更してください。
それは月々の利用料金です。
使い方や契約年数にもよりますが、いまもフィーチャーフォンを使用している方の中には、利用料金は1700円とか2000円以下という方が大半ではないかとおもいます。
この数字に根拠はありません。私の勝手な推測です。
なにを言いたいかというと、このくらいの利用料金でお使いの方には、特によく考えていただきたいのです。
フィーチャーフォンは勝手に通信をすることはありませんでしたが、スマートフォンは勝手に通信をします。そしてその通信にはお金がかかります。
ということで、絶対にパケット定額を契約をする必要があります。
「絶対」というのは語弊があるかもしれませんが、これを契約せずに、通信をすると、たぶんうん十万、うん百万を請求されることになるとおもいます。
このパケット定額サービスですが、ドコモの最新機種の場合、月額4,935円から5,985円くらいかかります。
これの他にも基本使用料とかが必要です。
月々、2000円の支払いだった人が、スマートフォンに乗りかえると、だいたい3倍に利用料金が増えることになります。
いまはいろいろとキャンペーンとかがあるようなので、6000円以下だったりするのかもしれませんが、とにかく2000円ではすみません。

逆に、もしフィーチャーフォンを使用していて、月々の支払いが8000円を超えているという方であれば、スマートフォンに変更するのは得策かもしれません。
私は詳しくないのでわからないのですが、無料通話アプリ等がありますので、月々の利用料金が6000円くらいで毎月収まるようになるかもしれません。

私はスマホアプリを作っているという立場からは、スマホユーザが増えることは、インストールしていただける可能性が増える(はずな)ので、スマホへの切り替えを薦めたいです。
ただし、繰り返しになりますが、月々2000円の支払いの方にはよく考えていただきたいのです。
あとは、電池持ちがとても悪いです。2日持つと大々的に謳っている機種でも小さい字で書いてある特殊な使用条件下での数字です。それって、160分の間違いじゃないの? という内容です。それでも他のメーカーよりはいいはずですから、他のメーカーだと、うーんどうなのでしょうね…… androidの話です。iPhoneはわからないです。

この話はいまさらブログにするまでもなく、みなさんご存知のことですかね。

私の個人的な感想ですが、スマホを初めてもったとき、小さなパソコンだと思いました。
家のパソコンですることと言えば、ネットサーフィンくらいのものですが、なんだかドキドキ・ワクワクしました。
他にももっと便利な面はたくさんあるとおもいますし、スマホにこういったドキドキ・ワクワクを感じる方は、ぜひ購入を検討してください。

最後に、昔のフィーチャーフォンはよくできていたとおもいます。ちょっとやそっとの操作で、熱くなったりとか再起動したりとか、電源が入らなくなったりとかはしなかったとおもいます。
スマホはこういうことがよく起こると、逆に話題になっている機種があったりします。
機種選びも慎重に。

【追記】
スマホにする必要のない人々
iPhone愛用中のドコモ店員のブログ
というブログの記事を貼っておきます。

いまさら気づいたのですが、この記事を読んでもらいたい人がこのブログにたどり着くのはほとんど不可能だということです…… それは①素人ブログなので検索しても引っかからないから、もうひとつは②この記事を読んでもらいたい人はパソコンを持っていないからです。とはいえ、これはブログなので、おもったことを書いていきます。




2013年5月31日金曜日

中国語の勉強

我要汉堡包
私が覚えた中国語です。
これできっと困ることはないはず。











2013年5月25日土曜日

Eclipse ADT 22 のバージョンアップでは Android SDK Manager のアップデートは 2 回する。

ありがとうございます。
助かりました!

Eclipse ADT 22 のバージョンアップでは Android SDK Manager のアップデートは 2 回する。





【追記】
ビルドは通って、移動機にインストールもできる。
だけど起動できない!
エラーログは、.jarの中のクラスが見つかないと言っている場合は、
プロジェクトを右クリック -> Properties -> Java Build Path -> Order and Exportで、該当の.jarにチェックをいれてみてください。
私の場合は、admobのクラスがないとかなんとか言われたときはこれで直りました。

2013年5月21日火曜日

Nyat Surfing(Androidアプリ)

全世界同時リリースです!

Webブラウザです。
標準ブラウザ、Chrome等定番のブラウザよりも優れている点?
 ⇒ そんなものないです。謙遜でもなにでもなく、本当にないです。

作った理由は下記の点です。
①WebViewを使ったことがなかったので、使ってみたくなりました。
 下記が参考になりました。
http://developer.android.com/guide/webapps/index.html

②オートレースオンデマンド再生というアプリに、出走表をみながら、応援している選手の情報をつぶやく機能をつくったのですが、これを分離独立させてみました。意外とうけるんじゃないかとちょっと期待していたりなんたりして。

③WebViewのAPIリファレンスをみていると、captureのAPIがあったので使ってみたくなりました。

ソースコードは下記で公開しています。
ビルドするにはAdMobのSDKが別途必要です。
https://github.com/TORIFUKUKaiou/MemoBrowser

キーテクニックは下記のものです。
WebView
ListActivity
AsyncTask
ProgressDialog
PreferenceActivity
Bitmap
Cursor

それではお元気で!





iTunes Store(Japan)

2013年5月14日火曜日

eclipseが起動しなくなった!(android)

eclipseが起動しなくなることがたまにあります。
たまにです。

VMのヒープが足りないとかなんとか、ログをみろと言われてログをみても、???

そんなときは!

$ eclipse -clean

それでもだめなときは!

eclipse -clearPersistedState

これでも駄目なものは駄目かもしれません。
自己責任で!


iTunes Store(Japan)

2013年5月10日金曜日

Life Measure(androidアプリ)

Life Measure を全世界同時公開します。
Life Measureは、基準日と現在時刻との差を計算するアプリです。


ソースコード も公開します。
ビルドするには、GoogleAdMobAdsSdk (. Jar)が別途必要です。
とりあえずビルドするには、エラーがでたところを「消す」でいけるとおもいます。


またまた駄作を世に公開しました……


キーテクニックは、下記のものです。
これからはじめる人の参考となれば幸いです。
java.util.GregorianCalendar
android.content.SharedPreferences(設定値の保存)
android.widget.DatePicker(日付選択)
android.widget.TimePicker(時刻選択)
android.widget.Spinner(スピナー)
android.widget.Button(ボタン)
android.content.BroadcastReceiver
ウィジェット
暗黙のIntentで他アプリと連携
広告
SDカードへのインストールを可能とする











iTunes Store(Japan)

2013年5月9日木曜日

ScrollViewをスクロールさせない(android)

本当に人生いろいろです。

なにかをどこかで間違えているのかもしれませんが、本当にあるんです。
android.widget.ScrollViewをスクロールさせたくないことが!

リンクはっておきます。


ScrollViewをScrollさせない

先輩、ありがとうございます!



ほんとうに人生いろいろです。


android.widget.ScrollView scrollView = super.findViewById(R.id.scrollView);
scrollView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
         if (スクロールさせたいとき) {
             return false;
         } else if (スクロールさせたくないとき) {
             /** タッチイベントをHandlingしたよ! てことだとおもいます。*/
             /** falseを返すと、スクロールするようになります。*/
              return true;
         }
    }
});
iTunes Store(Japan)

2013年5月8日水曜日

GW楽しんだ


天気がいい。
近所の少年野球チームが、練習していた。
連休中は、ウォーキングをすることにした。
40分コースを朝夕の2回。
子供の日のイベントもありよった。
川沿いの広場で、フリマとかカヌー体験とかやってた。
通りがかりのおじいさんが、菖蒲の葉を持っていた。
孫と一緒に菖蒲風呂かな。
家の近くの公園のベンチで、おにぎり食べた。
新緑がきれい。屋外で食べると美味しいぞ。
肉を焼く香ばし匂いが、風上から漂ってきた。
あぁ、空気が美味しい(๑´ڡ`๑)
シートの上に置いた小さいテーブルを囲んで家族で
BBQしよる。
茶の間の風景やん。
カセットコンロで、焼くっちなかなかいいやん。
うちも、今度やってみよう。

2013年5月5日日曜日

ログ関数(Android)

元気ですか! 元気があれば何でもできる!

今日はログ関数をご紹介します。

android.util.Log.d(String tag, String msg)でいいのです。
なにをいまさら? という感じかもしれませんね。

アプリを公開する際にログを無効にしたくなったりすることはあるとおもいます。
(そのままログを吐いてもだれにも文句は言われないとおもいますが……)

アプリ公開の際に、ログを無効にする方法は、だいたい下記の3つくらいだとおもいます。
①コメントアウトする
もしくは
②無効化をみこしておいて下記のようにしておく
static final boolean DEBUG = false;
if (DEBUG) { android.util.Log.d("Tag", "Msg");
③Manifestのdebuggableに連動する
このみの問題もあるとおもいますし、どれでも無効化のし忘れという問題には対処できませんが、③だけは公開用のapkを作るときに警告がでます。
ということで私は③の方法を採っています。

あとログでいえば関数の入口と出口に書いておきたくないでしょうか。
private void function() {
    android.util.Log.d("tag", "function In");

    //  なにか処理

    android.util.Log.d("tag", "function Out");
}
これでももちろんよいのですが、メソッド名が変更となったときに、
ログの修正も必要になってしまいます。(さらに私はそのことをよく忘れます)


ログの出力/無効をManifestのdebuggableと連動させ、
メソッドの入り口・出口のログで、メソッド名を書かなくてよい方法を公開します。

みなさまのandroidアプリ開発のお役にたてれば幸いです。




デルカへ iTunes Store(Japan)

2013年5月2日木曜日

リンカーン(映画鑑賞)

映画館に行った。
スピルバーグ監督『リンカーン』、良かったよ。
ダニエル・デイ=ルイス は、リンカーンに似ていた。
教科書に載っていた、あの顔そっくりだった。
役作り頑張ったんだろうなあ。
素晴らしい俳優だな。
リンカーンの孤独感が特に出てた。熱意、温厚な部分、冷静さ、疲労感などの
感情面が表現上手い。
南北戦争の血なまぐさい演出も多かった。
室内が、昼間でもうっすら暗くて、暖炉で煙した空気感が、鬱々した戦時を
表現していた。
奴隷解放をかけた南北戦争。
もし、リンカーンがこの時代いなかったら、奴隷解放を代わりに誰も出来なかっただろうね。
時代の変化で奴隷制度はいつかは廃止されることになったかもしれないだろうけど。
今すべき事は何か、今すべき事にいのちをかけて全力投球した人だね。
NOW,NOW,NOW  

映画って本当にいいものですね。


デルカへ

2013年5月1日水曜日

便利関数群(android)

androidで役に立つ(?)コードを公開していきます。

TorifukuUtility

いまはログ関数だけですが、いろいろ載せていく予定です。



ソースは、githubに載せています。
gitの説明は別の方にゆずるとして……

gitがわからない方は、zipボタンを押していただくと、ダウンロードできます。
library projectとして作成しています。

ダウンロードしたものを解凍し、eclipseにとりこんでください。
(file->New->Other...->Android Project from Existing Codeでいけるとおもいます)

Referencing a library projectをご参照のうえ、このライブラリプロジェクトを取り込んでください。

そうすると、あなたのアプリケーションにTorifukuUtility(山下)くみこめます!

今日は、TorifukuUtility の紹介までです。
次回以降、機能を追加したら記事にしたいとおもいます。


デルカへ

Java

androidアプリをつくろうとおもったら、Java言語の知識が必要です。
「androidアプリをつくりながら、プログラミングを覚える!」みたいなことをうたった本がありますが、
プログラミング経験0であればまずはJavaだけにしぼって、Hello, world!からじっくりやったほうがよいとおもいます。
わたしは以下の本で勉強をしました。
わたしにとってはわかりやすかったです。

【送料無料】やさしいJava第4版 [ 高橋麻奈 ]
【送料無料】やさしいJava第4版 [ 高橋麻奈 ]
価格:2,730円(税込、送料込)


おなじ著者の方でiphone版があるようです。買ってみようかな。



for you…


デルカへ
追伸 iosは、objective-cです。

2013年4月29日月曜日

私が買った本(android)

今日は、わたしが最初に買った本を紹介します。
これからはじめる方は、なるべく最新のSDK対応をうたっているものを買ったほうがよいとおもいます。
また、開発環境の整え方を丁寧に説明している本がいいとおもいます。
あとは、下記のような内容を順に丁寧に説明している本がよいとおもいます。
Activity
Intent
リソース
View
Dialog
Service
Notification
プリファレンス
SQLite
アプリの公開

この本はわたしにとってはわかりやすかったです。ただ、いまとなってはちょっとアンドロイドのバージョンが古いかもしれません。



もう一冊かいました。こちらは1本自作アプリを公開してからでもよいとおもいます。
いやいや、「みため」は重要なので、1本目からこだわったほうがよいかもしれません。



わたしは買っていませんが、android4.0対応のものが発売されているようです。
【送料無料】Android UI Cookbook for...

【送料無料】Android UI Cookbook for...
価格:3,360円(税込、送料込)

GW前半はじまったな

神宮で野球観戦したんばい。初めてなんばい。

開門時間が予定より遅れとったんで、列が半端なく長くなっとった。

行きがけにつまみ買ってなくて良かった。

球場の周りは、いちょう並木があって気持ちいい。
国立競技場、スポーツ施設、美術館とかがあるんやね。
その辺は、またの機会に行けたらいいね。

今日は、当日券でいい席をgetできたから、Tさんに感謝します。
色々とお世話になってしまった。

防寒の準備は、しすぎるぐらいがいい。
寒いとトイレ近くなるからね。

それにしても、ドリンクの売り子のおねーさん達は、えらいね。
半袖ショーパンで寒さにまけず、明るく接客しよったよ。

できたら、HOTなドリンクも売ってくれたら、嬉しかったかも。


帰りに、皇居の周辺を通り、微動だにしない警備員にあいさつをした。
日本の安全は、彼らの絶え間ない努力の賜物だと感じた。
『KEEP OUT』って表示があった。外人さんは、中見たくなるとやかね。


ヤクルトの応援もなかなか楽しかった。




2013年4月28日日曜日

androidアプリ開発 お世話になったページ

androidアプリ開発で特にお世話になったページを紹介します。
こまったら、いつもここを見ていました。
先輩方に感謝申し上げます。

mucchinのAndroid戦記

throw Life

Y.A.M の 雑記帳


あとはやっぱりなんといってもここですね。
Android Developers
HelloWorldをつくったあとは、なんとかかんとかまずアプリを公開まで持っていって、
下記を勉強するとよいとおもいます。
http://developer.android.com/guide/components/index.html


androidのプラットフォームのソースコードがみたくなってきたら、ここです。
android open source project



お世話になりました。

2013年4月27日土曜日

ブログはじめました

こんにちは。
今日は天気がよく、清々しい気持ちです。
外では野球少年が元気に声を出しています。

いまさらですが、ブログはじめました。
以前書いていたことはあります。
そのときは3ヶ月くらいで更新は止まってしまいました。

趣味で、androidアプリを作っています。
iphoneアプリは最近はじめました。

androidアプリ開発をする際、こまったとき、わからないときは検索をしていました。
たくさんの諸先輩方が、情報をまとめてくださっていたので、たいへん助かりました。
私はいくつかの駄作アプリをGoogle Playで公開しています。
「恩返し」とは言わないのかもしれませんが、これからアプリ開発をはじめようとする方に役に立つ情報を発信できたらいいなあとおもっています。

追伸
先輩でおもいだしました。そうです、「ポポポ♪」鼠先輩
六本木~GIROPPON~