<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>イージーネット Tech Blog &#187; Google Android</title>
	<atom:link href="http://blog.eni.co.jp/tech/tag/google-android/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.eni.co.jp/tech</link>
	<description>株式会社イージーネットのスタッフによる技術系ブログです</description>
	<lastBuildDate>Tue, 12 Jan 2010 01:46:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/tag/google-android/feed" />
		<item>
		<title>アンドロイダー育成日記 -Androidと仲良くなるには- その4</title>
		<link>http://blog.eni.co.jp/tech/2009/09/android_beginner_diary_04.html</link>
		<comments>http://blog.eni.co.jp/tech/2009/09/android_beginner_diary_04.html#comments</comments>
		<pubDate>Tue, 01 Sep 2009 01:00:03 +0000</pubDate>
		<dc:creator>正木 恵二</dc:creator>
				<category><![CDATA[Google Android]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[アンドロイド]]></category>
		<category><![CDATA[リンク集]]></category>
		<category><![CDATA[作業日誌]]></category>
		<category><![CDATA[初心者]]></category>

		<guid isPermaLink="false">http://blog.eni.co.jp/tech/?p=1214</guid>
		<description><![CDATA[
このエントリーは下記の記事の続きです。
アンドロイダー育成日記 -Androidと仲良くなるには- その3

こんにちは。正木です。
大事なコトを書きそびれていたのを思い出しましたので白状します。
当方、Android1.5 + Eclipse3.5 を使って開発してます。
技術がコンセプトのブログでこのような失態を犯していた事を、深くお詫び申し上げます
丸刈り……は しません。今年の3月に剃ったトコロなんで。
それでは、本文へど～ぞ～。

（※ 記事中の役立つ凡例 =&#62; ☆：役立つ外部リンク）
前回まで（～#39）
・第2弾アプリ（『天気予報アプリ』）の開発・実装を開始。
・第2弾アプリと前作とでは全く趣向が違うので、何がどうなるのかが見えていない。
・GPSまわりを調査し始めて、前回は終了。
#40
緯度経度から地名をはじき出すには『ジオコーディング』とやらが必要…なのだが、AndroidのAPIに標準で用意されているらしい。
（android.location.GeocoderクラスのインスタンスのgetFromLocationメソッドに緯度と経度を渡すと、地名等の情報を保持しているandroid.location.Addressクラスのインスタンスが取得できる。下記リンク先を参照の事。）
APIが標準で用意されているとは、なななんとココロ優しい。
というワケで、GPSまわりに関しての「ホンマに実装できんのか？」という不安は然程無くなった、のだが、障壁がもうひとつ。
『数時間おきのお天気情報』なんて、どこでダウンロードできんねや？
そんなコトまではGoogle先生のシラバスには載ってなかったか。
☆ジオコーディングとは 「アドレスマッチング」 (Geocoding)： &#8211; IT用語辞典バイナリ
☆GPSの緯度経度から住所へ変換 &#8211; 泥縄トラップ
#41
緯度経度（簡単に）取得できませ～ん。（←あの警察映画のように。）
LocationManagerクラスからgetCurrentLocationメソッドが消えとる。はぁ～？？
（↑Android1.5では既に実装されていない。）
#42
『ライフサイクル』について、このエントリが解かりやすいんでねーか？
☆Androidのド肝 » Activityのライフサイクル
#43
DDMSに「こーゆー経路を歩きますよ」という登録をすると、実際にその経路を歩きながらAndroid端末を操作するみたいな感じで、GPS機能が働いてくれるらしい。
KMLファイルとかGPXファイルみたいな、聞き慣れない拡張子のファイルがあれば実現可能。
（結局この機能は使ってはいないし、この記事を作成する頃はこの機能の使い方を知らない。）
開発環境を提供する側も、いろいろと考えてくれてはるんやなー。感謝感謝。
あと、素晴らしい翻訳を発見。
こういう実のある事が出来るスキルがあると締まっていいんだけど……省みれば、今の自分は「緩急」の『緩』しかない。どーしよ。
☆AndroidのDDMSの使用方法のドキュメントを翻訳しました &#8211; Android(アンドロイド)情報-ブリリアントサービス
☆GMAP2GPX: Google MapでGPXファイルとMioMap地点ファイル　（←このサイトでGPXファイルが作成できる）
#44
緯度と経度を固定指定したら、ひとまず地名が取得できた。（こちらを参考に。）
あとは、くだんのデバグツール（DDMS）を用いてGPSから緯度と経度を取得するのみ。
#45
う～ん…。KMLファイルをDDMSでどーのこーの。反応しーひんかったら意味ないやんか。
（「KMLファイルをDDMSに読み込ませて、DDMSのリストに出てきた位置情報をクリックしても、エミュレータ側では何の反応もしなかった」の意。結局はそもそも自分の実装にバグがあった。）
☆八角研究所 : Android DDMSでKMLから位置情報の取得方法
☆勉強会/GPS &#8211; 日本Androidの会（日本アンドロイドの会）
#46
Tech Blogの3本目の記事を入稿。
このTech Blogの記事（「アンドロイダー日記」シリーズ）用として、Twitter的な感じで簡単な一言メモを取っている。
そのメモで、本当に「一言」の時があるのだが、そっからの 後のせサクサク やらなんやらで、結局立派な文章になってしまう。
普段、そんなオシャベリでもないんだが…。
#47
お天気情報を、RSS形式かなんかで配信しているサイトを探す。
だが、そういうサイトは、少ないように感じる。
…のだけれども、しゃーないといえばしゃーない気もする。
天気予報にプロが居たりビジネスとして成立している手前、猫も杓子も無料では配信しないだろう。
とは言うものの、素人の予報など誰も期待していないから、そこはプロの意見が必要。
Androidケータイにカメラが付いてるからって空を映しても何もならないし、写真を解析してどーこーなど、そんな仕様を採用するはずもない。
はぁ～。
そんな絶望の中で、参考にできそうなサイトを3つ。
（一番下は、MacでのAndroidアプリ開発環境の構築方法に関してのエントリ。Macは触ったコトないがいつか役立ちそうだと思ったので、ここにリンクを。）
　
☆天気予報をRSSでお届けする「ひとくち予報 in Feed」
☆Japan Weather Forecasts
☆GPL天気予報（google plus livedoor 天気）
☆flashcast：フリーで働くITエンジニア集団のブログ: Android SDK 1.5をインストールしてみる
#48
他プラットフォームとの関係について、お言葉を紹介。
◎『美学のiPhone、実用主義のandroidという印象』（直下リンク先より引用）
☆android、三日目。androidを見直したアプリ &#8211; Keep Crazy;shi3zの日記
#49
「洗濯物たとむ」の「たとむ」ってどこの方言なんや？
「たとむ」って言い慣れてる言葉なんだけども、文字面はヘンやね。
☆たとむ とは(Weblio)
#50
やっぱ、技術系の記事ってば、丁寧に書いたらアクセス数は伸びるのかな？
下記リンク先の記事が丁寧に書かれているのでそう思った次第。
☆Google Androidで画面遷移 &#8211; yamashinaの日記
#51
☆画面遷移 &#124; テックファーム
☆ブラウザや地図、ストリートビューの基、Intentとは？ (2/3) &#8211; ＠IT
前者のリンク先より引用。
◎『Androidでは「スタック」という概念があり、Activity（画面）は遷移するたびにスタックへタスクが積まれていきます。』
これが、どう厄介になるんかな。
いまんとこは想像が付かないし、そもそも厄介になるかどうかもわからない。
ただ、気ぃ付けとかなダメなんだなー、と。
#52
◎画像とかのリソースファイルのファイル名に大文字が入っていたら、Androidではそのファイルを正しく読み込んでくれない。
#53
◎Androidアプリからインターネットに接続するときは、マニフェストファイルにパーミッションの宣言をする必要がある。
☆Androidアプリでインターネット接続する為に必要な設定（android.permission.INTERNET） &#8211; WillFeed
どうも『マニフェストファイルに宣言』が最も重要な規約の一つ、らしい。
#54
過日に実装した画面において、表示されている文字が小さすぎるか？と疑念に駆られたが…実機が手元にない。確認したくても出来ない。
結局、『実機をどう調達するか？』に頭をひねらす事もなく、自分のケータイで試してみた。
今回使用する“エセAndroid端末”は、docomoのSH-04A。
スマートフォンのようでスマートフォンでない、ベンベン、というような、所謂『ガラパゴス携帯』。
エミュレータのハードコピーを取って、エミュレータアプリの端末画面部分の箇所だけ切り取って、その画像ファイルをメールでエセAndroid端末に送る。
…割と見えるではないか。
不可はなさそうだが可も全くない、という感じ。
レイアウトに味気がなさすぎるからだが…これは端末のせいじゃないな。設計者の感覚の問題だぁ…悲しいかな。
Android端末（HT-03Aを思い浮かべた）の解像度は、QVGAかVGAでなく「ハーフVGA」なんだな。
SA-04Aの解像度はVGAだったはず…調べてみると「フルワイドVGA」ですって。
「フルワイドVGA」だの「VGA＋」だの「ハーフVGA」だの…どんなユーザの重箱の隅を突こうとしているのだ？
#55
VBさんは、Javaの列挙型の使い方がいまさらやっとわかってきた、だとさ☆
#56
解からない事だらけの状態で、それらをまんべんなく調査していってると [...]]]></description>
			<content:encoded><![CDATA[<div class="update">
このエントリーは下記の記事の続きです。</p>
<p><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html">アンドロイダー育成日記 -Androidと仲良くなるには- その3</a></p>
</div>
<p>こんにちは。正木です。</p>
<p>大事なコトを書きそびれていたのを思い出しましたので白状します。</p>
<p>当方、Android1.5 + Eclipse3.5 を使って開発してます。</p>
<p>技術がコンセプトのブログでこのような失態を犯していた事を、深くお詫び申し上げます<(_ _)><br />
丸刈り……は しません。今年の3月に剃ったトコロなんで。</p>
<p>それでは、本文へど～ぞ～。<br />
<span id="more-1214"></span><br />
（※ 記事中の役立つ凡例 =&gt; ☆：役立つ外部リンク）</p>
<h4>前回まで（～#39）</h4>
<p>・第2弾アプリ（『天気予報アプリ』）の開発・実装を開始。<br />
・第2弾アプリと前作とでは全く趣向が違うので、何がどうなるのかが見えていない。<br />
・GPSまわりを調査し始めて、前回は終了。</p>
<h4>#40</h4>
<p>緯度経度から地名をはじき出すには『ジオコーディング』とやらが必要…なのだが、AndroidのAPIに標準で用意されているらしい。<br />
（android.location.GeocoderクラスのインスタンスのgetFromLocationメソッドに緯度と経度を渡すと、地名等の情報を保持しているandroid.location.Addressクラスのインスタンスが取得できる。下記リンク先を参照の事。）<br />
APIが標準で用意されているとは、なななんとココロ優しい。</p>
<p>というワケで、GPSまわりに関しての「ホンマに実装できんのか？」という不安は然程無くなった、のだが、障壁がもうひとつ。</p>
<p>『数時間おきのお天気情報』なんて、どこでダウンロードできんねや？<br />
そんなコトまではGoogle先生のシラバスには載ってなかったか。</p>
<p>☆<a href="http://www.sophia-it.com/content/ジオコーディング">ジオコーディングとは 「アドレスマッチング」 (Geocoding)： &#8211; IT用語辞典バイナリ</a><br />
☆<a href="http://d.hatena.ne.jp/oldfish/20081214/1229257066">GPSの緯度経度から住所へ変換 &#8211; 泥縄トラップ</a></p>
<h4>#41</h4>
<p>緯度経度（簡単に）取得できませ～ん。（←<a href="http://ja.wikipedia.org/wiki/踊る大捜査線_THE_MOVIE_2_レインボーブリッジを封鎖せよ!">あの警察映画</a>のように。）</p>
<p>LocationManagerクラスからgetCurrentLocationメソッドが消えとる。はぁ～？？<br />
（↑Android1.5では既に実装されていない。）</p>
<h4>#42</h4>
<p>『ライフサイクル』について、このエントリが解かりやすいんでねーか？</p>
<p>☆<a href="http://blog.haw.co.jp/android/?p=52">Androidのド肝 » Activityのライフサイクル</a></p>
<h4>#43</h4>
<p>DDMSに「こーゆー経路を歩きますよ」という登録をすると、実際にその経路を歩きながらAndroid端末を操作するみたいな感じで、GPS機能が働いてくれるらしい。<br />
KMLファイルとかGPXファイルみたいな、聞き慣れない拡張子のファイルがあれば実現可能。<br />
（結局この機能は使ってはいないし、この記事を作成する頃はこの機能の使い方を知らない。）</p>
<p>開発環境を提供する側も、いろいろと考えてくれてはるんやなー。感謝感謝。</p>
<p>あと、素晴らしい翻訳を発見。<br />
こういう実のある事が出来るスキルがあると締まっていいんだけど……省みれば、今の自分は「緩急」の『緩』しかない。どーしよ。</p>
<p>☆<a href="http://d.hatena.ne.jp/bs-android/20090203/1233675390">AndroidのDDMSの使用方法のドキュメントを翻訳しました &#8211; Android(アンドロイド)情報-ブリリアントサービス</a><br />
☆<a href="http://etrexer.web.infoseek.co.jp/googlemap/gmap2gpx/">GMAP2GPX: Google MapでGPXファイルとMioMap地点ファイル</a>　（←このサイトでGPXファイルが作成できる）</p>
<h4>#44</h4>
<p>緯度と経度を固定指定したら、ひとまず地名が取得できた。（<a href="http://d.hatena.ne.jp/oldfish/20081214/1229257066">こちら</a>を参考に。）<br />
あとは、くだんのデバグツール（DDMS）を用いてGPSから緯度と経度を取得するのみ。</p>
<h4>#45</h4>
<p>う～ん…。KMLファイルをDDMSでどーのこーの。反応しーひんかったら意味ないやんか。<br />
（「KMLファイルをDDMSに読み込ませて、DDMSのリストに出てきた位置情報をクリックしても、エミュレータ側では何の反応もしなかった」の意。結局はそもそも自分の実装にバグがあった。）</p>
<p>☆<a href="http://www.hakkaku.net/hakkaker_blog/20090727-556">八角研究所 : Android DDMSでKMLから位置情報の取得方法</a><br />
☆<a href="http://www.android-group.jp/index.php?%CA%D9%B6%AF%B2%F1%2FGPS">勉強会/GPS &#8211; 日本Androidの会（日本アンドロイドの会）</a></p>
<h4>#46</h4>
<p><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html">Tech Blogの3本目</a>の記事を入稿。</p>
<p>このTech Blogの記事（「アンドロイダー日記」シリーズ）用として、<a href="http://twitter.com/">Twitter</a>的な感じで簡単な一言メモを取っている。<br />
そのメモで、本当に「一言」の時があるのだが、そっからの 後のせサクサク やらなんやらで、結局立派な文章になってしまう。</p>
<p>普段、そんなオシャベリでもないんだが…。</p>
<h4>#47</h4>
<p>お天気情報を、RSS形式かなんかで配信しているサイトを探す。</p>
<p>だが、そういうサイトは、少ないように感じる。</p>
<p>…のだけれども、しゃーないといえばしゃーない気もする。<br />
天気予報にプロが居たりビジネスとして成立している手前、猫も杓子も無料では配信しないだろう。<br />
とは言うものの、素人の予報など誰も期待していないから、そこはプロの意見が必要。<br />
Androidケータイにカメラが付いてるからって空を映しても何もならないし、写真を解析してどーこーなど、そんな仕様を採用するはずもない。</p>
<p>はぁ～。</p>
<p>そんな絶望の中で、参考にできそうなサイトを3つ。<br />
（一番下は、MacでのAndroidアプリ開発環境の構築方法に関してのエントリ。Macは触ったコトないがいつか役立ちそうだと思ったので、ここにリンクを。）<br />
　<br />
☆<a href="http://www.weathermap.co.jp/hitokuchi_rss/">天気予報をRSSでお届けする「ひとくち予報 in Feed」</a><br />
☆<a href="http://www.rssweather.com/dir/Asia/Japan">Japan Weather Forecasts</a><br />
☆<a href="http://bellks.com/google/">GPL天気予報（google plus livedoor 天気）</a><br />
☆<a href="http://blog.flashcast.jp/2009/05/android-sdk-15.html">flashcast：フリーで働くITエンジニア集団のブログ: Android SDK 1.5をインストールしてみる</a></p>
<h4>#48</h4>
<p>他プラットフォームとの関係について、お言葉を紹介。</p>
<p>◎『美学のiPhone、実用主義のandroidという印象』（直下リンク先より引用）<br />
☆<a href="http://d.hatena.ne.jp/shi3z/20090712/1247365501">android、三日目。androidを見直したアプリ &#8211; Keep Crazy;shi3zの日記</a></p>
<h4>#49</h4>
<p>「洗濯物たとむ」の「たとむ」ってどこの方言なんや？</p>
<p>「たとむ」って言い慣れてる言葉なんだけども、文字面はヘンやね。</p>
<p>☆<a href="http://www.weblio.jp/content/たとむ">たとむ とは(Weblio)</a></p>
<h4>#50</h4>
<p>やっぱ、技術系の記事ってば、丁寧に書いたらアクセス数は伸びるのかな？<br />
下記リンク先の記事が丁寧に書かれているのでそう思った次第。</p>
<p>☆<a href="http://d.hatena.ne.jp/yamashina/20090806/1249575250">Google Androidで画面遷移 &#8211; yamashinaの日記</a></p>
<h4>#51</h4>
<p>☆<a href="http://www.techfirm.co.jp/lab/android/transition.html">画面遷移 | テックファーム</a><br />
☆<a href="http://www.atmarkit.co.jp/fjava/rensai4/android03/android03_2.html">ブラウザや地図、ストリートビューの基、Intentとは？ (2/3) &#8211; ＠IT</a></p>
<p>前者のリンク先より引用。<br />
◎『Androidでは「スタック」という概念があり、Activity（画面）は遷移するたびにスタックへタスクが積まれていきます。』</p>
<p>これが、どう厄介になるんかな。<br />
いまんとこは想像が付かないし、そもそも厄介になるかどうかもわからない。<br />
ただ、気ぃ付けとかなダメなんだなー、と。</p>
<h4>#52</h4>
<p>◎画像とかのリソースファイルのファイル名に大文字が入っていたら、Androidではそのファイルを正しく読み込んでくれない。</p>
<h4>#53</h4>
<p>◎Androidアプリからインターネットに接続するときは、マニフェストファイルにパーミッションの宣言をする必要がある。<br />
☆<a href="http://feedyomi.blog32.fc2.com/blog-entry-181.html">Androidアプリでインターネット接続する為に必要な設定（android.permission.INTERNET） &#8211; WillFeed</a></p>
<p>どうも『マニフェストファイルに宣言』が最も重要な規約の一つ、らしい。</p>
<h4>#54</h4>
<p>過日に実装した画面において、表示されている文字が小さすぎるか？と疑念に駆られたが…実機が手元にない。確認したくても出来ない。</p>
<p>結局、『実機をどう調達するか？』に頭をひねらす事もなく、自分のケータイで試してみた。</p>
<p>今回使用する“エセAndroid端末”は、<a href="http://www.nttdocomo.co.jp/product/foma/pro/sh04a/">docomoのSH-04A</a>。<br />
スマートフォンのようでスマートフォンでない、ベンベン、というような、所謂『ガラパゴス携帯』。</p>
<p>エミュレータのハードコピーを取って、エミュレータアプリの端末画面部分の箇所だけ切り取って、その画像ファイルをメールでエセAndroid端末に送る。</p>
<p>…割と見えるではないか。</p>
<p>不可はなさそうだが可も全くない、という感じ。<br />
レイアウトに味気がなさすぎるからだが…これは端末のせいじゃないな。設計者の感覚の問題だぁ…悲しいかな。</p>
<p>Android端末（HT-03Aを思い浮かべた）の解像度は、QVGAかVGAでなく「ハーフVGA」なんだな。</p>
<p>SA-04Aの解像度はVGAだったはず…調べてみると「フルワイドVGA」ですって。</p>
<p>「フルワイドVGA」だの「VGA＋」だの「ハーフVGA」だの…どんなユーザの重箱の隅を突こうとしているのだ？</p>
<h4>#55</h4>
<p>VBさんは、Javaの列挙型の使い方がいまさらやっとわかってきた、だとさ☆</p>
<h4>#56</h4>
<p>解からない事だらけの状態で、それらをまんべんなく調査していってると </p>
<p>あっ!!!!!!!!!</p>
<p>と言う間に時間が無くなる。</p>
<p>というか、ここまで上手くいかないものなんて思ってなかった。</p>
<h4>#57</h4>
<p>今度は、Javaの『シリアライズ』とかいうのを憶えた。</p>
<p>もうね、勤勉さで言うと、私と二宮金次郎が双璧を成してるはず（誇張</p>
<h4>#58</h4>
<p>◎android.content.IntentクラスのインスタンスにputExtraメソッドで値を突っ込んだあと、遷移後の画面でintentを操作しようとしたとき、Extraに存在しないキーを参照しても例外にならない。ただ単にNullが返ってくるだけ。</p>
<p>例外になるもんだと思ってたから拍子抜け。<br />
例外にならないのがスタンダードなんかな。よくわからん。</p>
<h4>#59</h4>
<p>観てみたかった。</p>
<p>☆<a href="http://blog.haw.co.jp/android/?p=170">Androidのド肝 » 今村 謙之さんのAndroidの講演会に行ってきました。</a></p>
<h4>#60</h4>
<p>【GPSの電波から緯度経度を取得して、そっから住所を取得する】という一連の流れが実現できました。</p>
<p>やっとかぁ。3作業日ぐらいかかったっけ(?_?)</p>
<h4>次回予告</h4>
<p>次回も自作アプリ第2弾の実装の続きを綴ります。まだまだお付き合いください。<br />
ありがとうございました。</p>
<h3>あわせて読みたい</h3>
<ul>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html">アンドロイダー育成日記 -Androidと仲良くなるには- その1</a></li>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html">アンドロイダー育成日記 -Androidと仲良くなるには- その2</a></li>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html">アンドロイダー育成日記 -Androidと仲良くなるには- その3</a></li>
<li><a href="http://blog.eni.co.jp/tech/2009/08/bought_android_ht-03a.html">Androidケータイ(HT-03A)買いました</a></li>
<li>アンドロイダー育成日記 -Androidと仲良くなるには- その4(本記事)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.eni.co.jp/tech/2009/09/android_beginner_diary_04.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/2009/09/android_beginner_diary_04.html" />
	</item>
		<item>
		<title>アンドロイダー育成日記 -Androidと仲良くなるには- その3</title>
		<link>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html</link>
		<comments>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html#comments</comments>
		<pubDate>Thu, 20 Aug 2009 01:15:02 +0000</pubDate>
		<dc:creator>正木 恵二</dc:creator>
				<category><![CDATA[Google Android]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[アンドロイド]]></category>
		<category><![CDATA[リンク集]]></category>
		<category><![CDATA[作業日誌]]></category>
		<category><![CDATA[初心者]]></category>

		<guid isPermaLink="false">http://blog.eni.co.jp/tech/?p=1111</guid>
		<description><![CDATA[
このエントリーは下記の記事の続きです。
アンドロイダー育成日記 -Androidと仲良くなるには- その2

こんにちは。正木です。
今回は読者の方々から応援メッセージをたくさんいただいておりますので、そちらの方を少しご紹介したいと思います。

アンドロイダーとして成長する姿を見ていると、とても清々しい気分になります！　がんばってください！
実機もなくエミュレータだけで開発されているのでしょうが、そんな困難を恐れず立ち向かっている事に好感が持てます！
空腹も眠気も吹き飛ばして、いっぱしのアンドロイダーを目指してください！

温かい、励ましのコメント、本当にありがとうございます！
今回ご紹介させていただいた方々には、番組オリジナル『見習いアンドロイダーTシャツ』をお送りいたします。
まだまだ応援メッセージの方は受け付けておりますので、どしどしお寄せください！
…というワケで、以上のくだりはフィクションですんで、軽く右から左へ受け流してください。
それでは、本編をご覧あれ～。

（※ 記事中の役立つ凡例 =&#62; ☆：役立つ外部リンク）
前回まで（～#28）
・Google Android向けアプリが1つ完成したが、「インターネット等の通信」や「GPS」といったものを全く活用していないアプリになった。
・アプリを作成する際の超基本的な考え方は身についたように感じている。だが、応用はまだまだ。
#29
第1弾アプリが辛くも完成したので、第2弾アプリの製作に取り掛かりたいと思う。
それに先立って、Android端末ユーザの先輩から要望をいただいた。
テーマは『天気予報』で、
必要な機能としては『数時間ごとの予報が見たい』とのこと。
この【数時間ごと】というのがミソだったりする。
「日ごと」の天気予報はヨシとして、「数時間ごと」の予報だと配信されていない事が多い、らしい。
たしかに、数時間ごとの天気予報を配信しているサイトってば、ほんの一握りのように感じられる。
気付かなかった。
何から調査すればよいのか？？？　…まずは落ち着こう。
#30
このTech Blog用の記事（Android日記①や②）を書き終えたので、Blog管理者の方へ入稿。空腹の極み。
#31
第2弾アプリ作成にあたり……しっかし、何から手を付けていけばよいものか。
どうやら「単に天気予報を出す、というのがどうも…」という点が、自分の中で引っ掛かっている気がする。
#32
先日の帰りしなあたりに先輩からいただいたアイディアを元に、アプリの設計図を書いてみる。
なんとなくできた…が、ほどよい量の調査事項もでてきた。どーなるやら。
#33
あー、夏休み。
なので4、5日間ほど手を止める。
手を止めたのは、ちょいと泳ぎ疲れたからではない。
#34
このTech Blogの管理者の方から「記事をリリースする前に、ちょっとレイアウトを修正してほしい」との依頼をいただいたので対応する。
Tech Blog用記事を入稿すると、リリース前に多少のチェック（「内容が適切か」「話の筋が通ってるか」「レイアウトは整っているか」程度の一般的なもの）が入るのだが、今の今まで「内容」に対してはほとんどおトガメがない。
会社の人間の声が外部に、これだけストレートに響き渡るこの場で、こんな砕けた文章を書いてていいのか？という疑問はあるのだけども、しばしば杞憂で終わったりする。
これこそが言論の自由、表現の自由かと。
考えてみれば、著作物を拝見した際に「これ、すごいな」と衝撃を受けずにはいられなかったという作家さんが、2名ほど居りまして。
スタパ斎藤氏と西原理恵子氏。
その方々から勝手に影響を受けて、いまの自分はこんな文体になっているんだな、という自己分析もあったりします。
…文体だけの問題ではないか。
#35
Android向けアプリの動作に必要なファイルってば『1つだけ』なんだな。APKとかいう拡張子のファイルが1つだけ。
構造が簡潔すぎて驚いた。
でも、例えばiPhone向けのアプリもこんな感じなんだろうか…。この形式がスタンダードになってたりする、とか。
あと、Androidアプリは『JavaであってJavaでない』らしい。
（カギカッコ内の語句、下記リンク先より引用）
☆Android Market配布を目指しEclipseでHelloWorld！ (1/3) &#8211; ＠IT

#36
SpinnerというViewにAdapter（ArrayAdapterオブジェクト）をセットする方法がわからん。例外しか出ないんですが…。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.example.weatherTest;
&#160;
public class WeatherTest extends Activity &#123;
    @Override
    public void onCreate&#40;Bundle savedInstanceState&#41; &#123;
        // 省略
&#160;
        final String&#91;&#93; ITEMS = &#123;&#34;テスト項目A&#34;, &#34;テスト項目B&#34;, &#34;テスト項目C&#34;&#125;;
 [...]]]></description>
			<content:encoded><![CDATA[<div class="update">
このエントリーは下記の記事の続きです。</p>
<p><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html">アンドロイダー育成日記 -Androidと仲良くなるには- その2</a></p>
</div>
<p>こんにちは。正木です。</p>
<p>今回は読者の方々から応援メッセージをたくさんいただいておりますので、そちらの方を少しご紹介したいと思います。</p>
<ul>
<li>アンドロイダーとして成長する姿を見ていると、とても清々しい気分になります！　がんばってください！</li>
<li>実機もなくエミュレータだけで開発されているのでしょうが、そんな困難を恐れず立ち向かっている事に好感が持てます！</li>
<li>空腹も眠気も吹き飛ばして、いっぱしのアンドロイダーを目指してください！</li>
</ul>
<p>温かい、励ましのコメント、本当にありがとうございます！<br />
今回ご紹介させていただいた方々には、番組オリジナル『見習いアンドロイダーTシャツ』をお送りいたします。<br />
まだまだ応援メッセージの方は受け付けておりますので、どしどしお寄せください！</p>
<p>…というワケで、以上のくだりはフィクションですんで、軽く右から左へ受け流してください。<br />
それでは、本編をご覧あれ～。<br />
<span id="more-1111"></span><br />
（※ 記事中の役立つ凡例 =&gt; ☆：役立つ外部リンク）</p>
<h4>前回まで（～#28）</h4>
<p>・Google Android向けアプリが1つ完成したが、「インターネット等の通信」や「GPS」といったものを全く活用していないアプリになった。<br />
・アプリを作成する際の超基本的な考え方は身についたように感じている。だが、応用はまだまだ。</p>
<h4>#29</h4>
<p>第1弾アプリが辛くも完成したので、第2弾アプリの製作に取り掛かりたいと思う。</p>
<p>それに先立って、Android端末ユーザの先輩から要望をいただいた。<br />
テーマは『天気予報』で、<br />
必要な機能としては『数時間ごとの予報が見たい』とのこと。</p>
<p>この【数時間ごと】というのがミソだったりする。<br />
「日ごと」の天気予報はヨシとして、「数時間ごと」の予報だと配信されていない事が多い、らしい。<br />
たしかに、数時間ごとの天気予報を配信しているサイトってば、ほんの一握りのように感じられる。<br />
気付かなかった。</p>
<p>何から調査すればよいのか？？？　…まずは落ち着こう。</p>
<h4>#30</h4>
<p>このTech Blog用の記事（<a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html">Android日記①</a>や<a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html">②</a>）を書き終えたので、Blog管理者の方へ入稿。空腹の極み。</p>
<h4>#31</h4>
<p>第2弾アプリ作成にあたり……しっかし、何から手を付けていけばよいものか。</p>
<p>どうやら「単に天気予報を出す、というのがどうも…」という点が、自分の中で引っ掛かっている気がする。</p>
<h4>#32</h4>
<p>先日の帰りしなあたりに先輩からいただいたアイディアを元に、アプリの設計図を書いてみる。</p>
<p>なんとなくできた…が、ほどよい量の調査事項もでてきた。どーなるやら。</p>
<h4>#33</h4>
<p>あー、夏休み。</p>
<p>なので4、5日間ほど手を止める。<br />
手を止めたのは、ちょいと泳ぎ疲れたからではない。</p>
<h4>#34</h4>
<p>このTech Blogの管理者の方から「記事をリリースする前に、ちょっとレイアウトを修正してほしい」との依頼をいただいたので対応する。</p>
<p>Tech Blog用記事を入稿すると、リリース前に多少のチェック（「内容が適切か」「話の筋が通ってるか」「レイアウトは整っているか」程度の一般的なもの）が入るのだが、今の今まで「内容」に対してはほとんどおトガメがない。<br />
会社の人間の声が外部に、これだけストレートに響き渡るこの場で、こんな砕けた文章を書いてていいのか？という疑問はあるのだけども、しばしば杞憂で終わったりする。</p>
<p>これこそが言論の自由、表現の自由かと。</p>
<p>考えてみれば、著作物を拝見した際に「これ、すごいな」と衝撃を受けずにはいられなかったという作家さんが、2名ほど居りまして。<br />
<a href="http://ja.wikipedia.org/wiki/スタパ齋藤">スタパ斎藤</a>氏と<a href="http://ja.wikipedia.org/wiki/西原理恵子">西原理恵子</a>氏。<br />
その方々から勝手に影響を受けて、いまの自分はこんな文体になっているんだな、という自己分析もあったりします。</p>
<p>…文体だけの問題ではないか。</p>
<h4>#35</h4>
<p>Android向けアプリの動作に必要なファイルってば『1つだけ』なんだな。APKとかいう拡張子のファイルが1つだけ。</p>
<p>構造が簡潔すぎて驚いた。<br />
でも、例えばiPhone向けのアプリもこんな感じなんだろうか…。この形式がスタンダードになってたりする、とか。</p>
<p>あと、Androidアプリは『JavaであってJavaでない』らしい。<br />
（カギカッコ内の語句、下記リンク先より引用）</p>
<p>☆<a href="http://www.atmarkit.co.jp/fjava/rensai4/android01/android01_1.html">Android Market配布を目指しEclipseでHelloWorld！ (1/3) &#8211; ＠IT</a><br />
<a name="story36"></a></p>
<h4>#36</h4>
<p>SpinnerというViewにAdapter（ArrayAdapterオブジェクト）をセットする方法がわからん。例外しか出ないんですが…。</p>

<div class="wp_codebox"><table width="100%" ><tr id="p11113"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code" id="p1111code3"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.example.weatherTest</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> WeatherTest <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// 省略</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">final</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> ITEMS <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #0000ff;">&quot;テスト項目A&quot;</span>, <span style="color: #0000ff;">&quot;テスト項目B&quot;</span>, <span style="color: #0000ff;">&quot;テスト項目C&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        Spinner someSpinner <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Spinner<span style="color: #009900;">&#41;</span>findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">someSpinner</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        someSpinner.<span style="color: #006633;">setAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ArrayAdapter<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span>, ITEMS<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// 省略</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>何が間違ってんだか……あー、もぉ。</p>
<h4>#37</h4>
<p><a href="#story36">#36</a>の不具合の原因がわかった。</p>
<p>Rクラスが複数個あるとは知らず、「(当プロジェクトのパッケージ).R.layout」クラスの定数を渡していたのがダメだった。</p>
<p>どういうコトかと言えば、下記に具体例（改善案）を示す。</p>

<div class="wp_codebox"><table width="100%" ><tr id="p11114"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1111code4"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// #36のソースの10行目</span>
<span style="color: #666666; font-style: italic;">// ArrayAdapterのコンストラクタの第2引数には「android.R.layout」クラスの定数を設定するべき</span>
someSpinner.<span style="color: #006633;">setAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> ArrayAdapter<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, android.<span style="color: #006633;">R</span>.<span style="color: #006633;">layout</span>.<span style="color: #006633;">simple_spinner_item</span>, ITEMS<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>androidパッケージの中にもRクラスってば存在したんやね。その存在を知らなかった…。</p>
<p>解決するまで、時計の短針が2周していきよった。</p>
<p>…次だ！　次！</p>
<h4>#38</h4>
<p>なんだかんだで、天気予報と言えば、やっぱ『ヤン坊マー坊』ではなかろうか。</p>
<p>この方々は気象予報士ではないよね。</p>
<p>でも、プライムタイム辺りで冠番組持ってはるし、気象予報士じゃないけど天気予報系番組の代名詞的な存在やし。</p>
<p>イロイロとすごいな。</p>
<h4>#39</h4>
<p>1つ目の画面（今回のアプリは画面遷移がある）のイメージがなんとなく具現化できたので、いよいよ内部的な実装に突入する。</p>
<p>GPS。</p>
<p>ほげぇ～。</p>
<p>プログラマになりたての時、技術バリバリの先輩から、「hoge（ほげ）」という言葉の由来について『hogeってのは、昔、【ホーグ】という戦艦が云々』みたく、あからさまな冗談を吹っ掛けられた憶えがある。<br />
その【ホーグ】とやらが戦艦だったかどうかは（冗談を聴く私の姿勢が、先輩の冗談以上にテキトーだったので）定かじゃないけど、冗談の規模としては異例な大きさだったはず。</p>
<p>一寸のホラにも五分の魂？</p>
<p>☆<a href="http://android.siprop.org/index.php?%CA%D9%B6%AF%B2%F1%2FGPS">勉強会/GPS &#8211; 日本Androidの会（日本アンドロイドの会）</a><br />
☆<a href="http://www.adamrocker.com/blog/169/how_to_get_gps_location_with_android.html">throw Life &#8211; AndroidでGPSを使って現在地を取得する方法</a></p>
<h4>次回予告</h4>
<p>次回は、自作アプリ第2弾の実装の続きを綴ります。<br />
ありがとうございました。</p>
<h3>あわせて読みたい</h3>
<ul>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html">アンドロイダー育成日記 -Androidと仲良くなるには- その1</a></li>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html">アンドロイダー育成日記 -Androidと仲良くなるには- その2</a></li>
<li>アンドロイダー育成日記 -Androidと仲良くなるには- その3(本記事)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html" />
	</item>
		<item>
		<title>アンドロイダー育成日記 -Androidと仲良くなるには- その2</title>
		<link>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html</link>
		<comments>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html#comments</comments>
		<pubDate>Tue, 18 Aug 2009 03:00:18 +0000</pubDate>
		<dc:creator>正木 恵二</dc:creator>
				<category><![CDATA[Google Android]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[アンドロイド]]></category>
		<category><![CDATA[リンク集]]></category>
		<category><![CDATA[作業日誌]]></category>
		<category><![CDATA[初心者]]></category>

		<guid isPermaLink="false">http://blog.eni.co.jp/tech/?p=1034</guid>
		<description><![CDATA[
このエントリーは下記の記事の続きです。
アンドロイダー育成日記 -Androidと仲良くなるには- その1

こんにちは。正木です。
おまっとさんでございました。
Google Android向けアプリ作成日記の、続きでございますよ。
それでは、めしあがれ～。

（※ 記事中の役立つ凡例 =&#62; ◎：役立つ教訓 &#124; ☆：役立つ外部リンク）
前回まで（～#11）
・Google Android向けアプリの開発環境を作った。
・雑誌『SoftwareDesign』を見ながら、アプリ作成の『いろは』の『い』を見ていった。
・そのほか、コーディングの方法や挙動などを確認した。
#12
アプレットの『DroidDraw』が、案外使いづらい、のではないか？？
デザインが思い通りいかない事があるんだ。
適当なレイアウトのコンテナみたいなLayoutに、適当なViewを包含させると、
子になっているViewが、マウスでクリックしてもアクティブにならなかったりする（そうなるとViewのプロパティがレイアウト画面から設定できない）。
Visual Studioで、カスタムコントロールのレイアウトをデザインしてる時に顔を出す、
あの「いーっとなる」感じを思い出す。
親コンテナと子コントロールのAnchor プロパティやDockプロパティを適宜設定したけど、
期待していないサイズ変わり方しよるぞ、コイツ、みたいな。
…VSのくだりに何の共通点があるかわかんないけど、とにかくめんどくさい。
「まぁ、ベータ版だしな…」と自分に言い聞かせる。
#13
オリジナルアプリの作成を始める事にする。
まずは設計書…のようなものを作る。
テキトーな裏紙に、機能とレイアウトの概要を、嵐のような勢いで書けばハイできあがり♪
（個人的には）面白そうなアプリだと思うのだが…そもそも実現できるのかどうか。
（アプリの概要は「あとがき」を参照のこと。）

#14
なんとなくではあるが、画面レイアウトは構想に近付いてきた。
一部（たとえばEditTextのBackColorやTextColorプロパティを変えたりとかしたり）の設定を除けば、イイ感じ。たぶん。
今後の実装にあたり、気付いた点・不安な点を挙げる。

Eclipseの画面レイアウト機能にあるプロパティからでは、ViewのBackColorやTextColorは設定できないのでは？
イメージのリソースは、どこにどうやって持たせるのだ？
おなかへった。
Android端末に、どれだけの負荷をかける事が許されるのか。実機が無くても検証する方法ってないんかな？
自分が作りたいアプリの仕様的に、問題データを簡単に追加したいのだが…。どうやってもたせようか？　ダウンロードとかやっちゃう？
画面レイアウトを作るのは『DroidDraw』だけではしんどい。そもそも、『DroidDraw』のXMLが表示されるエリアは、あれはエディタではないんだな。よくわからないがカーソルキーが死んでしまう時がある。きっかけもわかんない。いきなりお亡くなりになる。なので、『DroidDraw』だけでなく、Eclipseでのレイアウト機能も併用した方がよい。
おなかへってたけど、コーヒー飲んだからちょっとはマシになったかな。

※後日談として、上記の疑問点の見解を書いておく。

調査せず。今回はソースの中で指定した（ViewのsetTextColorメソッドなどに、android.graphics.Colorクラスの定数を渡す）。
画像ファイル自体は専用のフォルダに保持。ただ、その画像の参照は「パス指定」でなく「画像に割り振られたint型の定数」でやる。
お昼休憩までがんばりましょう。
これを使えばOKかと。
結局、今回は対応しなかったのでパス。
（上記の意見に変わりなし）
ごはんはちゃんと食べましょう。

#15
久しぶりに、食事してて「あきらめ」と「敗北感」を悟った。
自分で大盛りをオーダーしときながら…。
パスタは怖い。もーしばらく要らん。
つべこべ言わず作業再開。
#16
AndroidのスタートアップJavaクラス（src\(任意のパッケージ)\(一番最初に生成されるクラス).java）のonCreateメソッドは、
WicketのJavaクラスのコンストラクタメソッドみたいに、
ボタン押下時に何度も何度も呼び出されることはない。
期待通りでちょっと安心。
#17
各Viewの可視状態は、boolean値でなくint値で設定しなくちゃならん。
（setVisibilityメソッド とかのパラメータのこと。左記メソッドだと、android.view.Viewクラスの定数（int）を渡す必要がある。）
なんというか、わかりづらい…のは固定観念のせいか！？
#18
ねむいでございます。
#19
秒変わりきっかけのイベントもフックできた…が、これでいいのか？
タイマーのスタートはできたけど、
「タイマーをストップしてから、再スタートする」というアクションが、これでは実現できないっぽい。
（※ この時点ではandroid.os.Handlerクラスを用いて実装していた。結局は#25のような実装になったが、Handlerクラスを使っても「タイマーをストップしてから、再スタートする」のは実現可能であると思われる。）
それ以外の疑問（#14で挙げた項目たち）はほとんど解消できた。
ただ新しい疑問も出現したが…それは進捗の証としてヨシとしよう（甘いね）。
あと1日ぐらいで、なんとか使用できるぐらいまでもっていこう。
たかが自己満足のために、
未経験のものに対してここまでコーディングできるものかと、我ながら感心してます。
本日の作業は終了！！
☆5.4 タイマーイベント ‎(Android Docs(初級編))‎
☆八角研究所 : Android で再開する Java プログラミング（3） &#8211; モグラ叩き
☆デジモノ狂想曲！: Android で タイマー処理 を考えてみた
#20
おはようございます。
#21
今日はなんだか手がよく動く。マリオでいうところの「無敵状態」。
#22
無敵状態が終わった。ものの1時間だったですけど。
#23
タイマー制御が難しい。thread.sleepが期待通り動いてくれない。
（※ 後日談だが、thread.sleepは実装しなかった。）
☆勝手にAndroidブログ &#8211; PukiWiki
#24
並列処理が大事！
☆Androidで学ぶ並列処理とGUI &#8211; やさしいデスマーチ

#25
秒刻みのイベントをフックするのが難しかったので、
ChronometerとかいうViewのChronometerTickイベントをフックするようにした。
なんか…違うよなぁ。
コーディング量は少なくて済んでるし、やりたい事も全部実現できてるんだけど、
これが最適解だって気がしない。
でも、今回はこれでいこう。
あと、クラス変数の宣言の時点で、「(Viewクラス)this.findViewById(R.id&#8230;)」を代入するとコケる。
当然と言えば当然、なのか？
とにかくVBでも似たようなミスをした憶えがあるので、記念に書き留めておく。
☆クロノメーター(Chronometer)を使用するには &#8211; 逆引きAndroid入門
#26
問題をアプリの外部から追加したいんだけど…無理かなぁ。
いろいろ考えたけど、何とも難しそうなのでその対応はやめておこう。
知恵が生まれるほどの知識が蓄えられたら、改めて考えようかしら。
進捗としては、もうゴールの手前ぐらいまで来ている感じがする。
「負けないで」が聞こえてもおかしくないぐらいゴールに近い。
大きなタマネギはすぐそこ。
なんというか、アプリの雰囲気的に『マジカル頭脳パワー』になってきた。
…どーせなら、もっと似せようか。
#27
◎TextViewのsetTextメソッドに、数値（intとかlongとか）を渡すと例外が発生する。
もーちょっとで完成なのに…。
#28
ソース中にコメントも入れ終わったし、ひとまず完成！！

あとがき
どんなアプリを作ったのかを簡単に書いておこうと思う。
【イメージ】

【概要】

『Mosaics』（モザイクス）というゲームアプリ。
『「何か」が25枚のモザイクによって隠されているので、それを制限時間内に当てる』のが目的。
モザイクは数秒おきに1枚ずつはがされていく。残り時間が少なくなると、モザイクの はがれ方も速くなる。
問題がスタートしてから正解するまでが早いほど高得点。得点は100点から減っていき、最低で-50点。
答えがわかれば、回答エリアのすぐ右にある白いボタンを押す。押すと回答モードに入り、タイマーが止まる。ボタンを押さなくても回答は入力できる。
判定ボタンを押すと、入力された回答がチェックされる。正解ならばモザイクが全部はずれて正解用メッセージが表示される。不正解ならばタイマーが再スタート。
こたえボタンを押すと問題終了（「制限時間内に正解できなかった」扱いになる）。

【対応していない事】

インターネットを用いた機能（逆に言えば、圏外でもアプリの動作は可能、なはず）
問題の追加（動的な問題データの追加方法が思い浮かばなかった。特にリソースオブジェクト系の追加について）
点数のセーブ（アプリを終了すると通算の獲得得点がクリアされる）
コンフィグ機能（最高点、最低点、タイマーの開始値、モザイクがめくれる速度 などの諸々の設定が不可）
国際化、メッセージのプロパティ化
「1000点を取ればミステリーツアーにご招待」とか「正解できないから檻から出られない」みたいなもの

などなど
次回予告
次回は、自作アプリ第2弾の実装開始の場面から綴ります。
ありがとうございました。
あわせて読みたい

アンドロイダー育成日記 -Androidと仲良くなるには- その1
アンドロイダー育成日記 -Androidと仲良くなるには- その2(本記事)
アンドロイダー育成日記 -Androidと仲良くなるには- その3

]]></description>
			<content:encoded><![CDATA[<div class="update">
このエントリーは下記の記事の続きです。</p>
<p><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html">アンドロイダー育成日記 -Androidと仲良くなるには- その1</a></p>
</div>
<p>こんにちは。正木です。</p>
<p>おまっとさんでございました。<br />
<a href="http://code.google.com/intl/ja/android/">Google Android</a>向けアプリ作成日記の、続きでございますよ。</p>
<p>それでは、めしあがれ～。<br />
<span id="more-1034"></span><br />
（※ 記事中の役立つ凡例 =&gt; ◎：役立つ教訓 | ☆：役立つ外部リンク）</p>
<h4>前回まで（～#11）</h4>
<p>・Google Android向けアプリの開発環境を作った。<br />
・雑誌<a href="http://gihyo.jp/magazine/SD">『SoftwareDesign』</a>を見ながら、アプリ作成の『いろは』の『い』を見ていった。<br />
・そのほか、コーディングの方法や挙動などを確認した。</p>
<h4>#12</h4>
<p>アプレットの<a href="http://www.droiddraw.org/">『DroidDraw』</a>が、案外使いづらい、のではないか？？</p>
<p>デザインが思い通りいかない事があるんだ。</p>
<p>適当なレイアウトのコンテナみたいなLayoutに、適当なViewを包含させると、<br />
子になっているViewが、マウスでクリックしてもアクティブにならなかったりする（そうなるとViewのプロパティがレイアウト画面から設定できない）。</p>
<p>Visual Studioで、カスタムコントロールのレイアウトをデザインしてる時に顔を出す、<br />
あの「いーっとなる」感じを思い出す。<br />
親コンテナと子コントロールのAnchor プロパティやDockプロパティを適宜設定したけど、<br />
期待していないサイズ変わり方しよるぞ、コイツ、みたいな。</p>
<p>…VSのくだりに何の共通点があるかわかんないけど、とにかくめんどくさい。</p>
<p>「まぁ、ベータ版だしな…」と自分に言い聞かせる。</p>
<h4>#13</h4>
<p>オリジナルアプリの作成を始める事にする。</p>
<p>まずは設計書…のようなものを作る。</p>
<p>テキトーな裏紙に、機能とレイアウトの概要を、嵐のような勢いで書けばハイできあがり♪</p>
<p>（個人的には）面白そうなアプリだと思うのだが…そもそも実現できるのかどうか。</p>
<p>（アプリの概要は<a href="#afterword">「あとがき」</a>を参照のこと。）<br />
<a name="story14"></a></p>
<h4>#14</h4>
<p>なんとなくではあるが、画面レイアウトは構想に近付いてきた。<br />
一部（たとえばEditTextのBackColorやTextColorプロパティを変えたりとかしたり）の設定を除けば、イイ感じ。たぶん。</p>
<p>今後の実装にあたり、気付いた点・不安な点を挙げる。</p>
<ol type="1">
<li>Eclipseの画面レイアウト機能にあるプロパティからでは、ViewのBackColorやTextColorは設定できないのでは？</li>
<li>イメージのリソースは、どこにどうやって持たせるのだ？</li>
<li>おなかへった。</li>
<li>Android端末に、どれだけの負荷をかける事が許されるのか。実機が無くても検証する方法ってないんかな？</li>
<li>自分が作りたいアプリの仕様的に、問題データを簡単に追加したいのだが…。どうやってもたせようか？　ダウンロードとかやっちゃう？</li>
<li>画面レイアウトを作るのは『DroidDraw』だけではしんどい。そもそも、『DroidDraw』のXMLが表示されるエリアは、あれはエディタではないんだな。よくわからないがカーソルキーが死んでしまう時がある。きっかけもわかんない。いきなりお亡くなりになる。なので、『DroidDraw』だけでなく、Eclipseでのレイアウト機能も併用した方がよい。</li>
<li>おなかへってたけど、コーヒー飲んだからちょっとはマシになったかな。</li>
</ol>
<p>※後日談として、上記の疑問点の見解を書いておく。</p>
<ol type="1">
<li>調査せず。今回はソースの中で指定した（ViewのsetTextColorメソッドなどに、android.graphics.Colorクラスの定数を渡す）。</li>
<li>画像ファイル自体は専用のフォルダに保持。ただ、その画像の参照は「パス指定」でなく「画像に割り振られたint型の定数」でやる。</li>
<li>お昼休憩までがんばりましょう。</li>
<li><a href="http://developer.android.com/intl/ja/guide/developing/tools/ddms.html">これ</a>を使えばOKかと。</li>
<li>結局、今回は対応しなかったのでパス。</li>
<li>（上記の意見に変わりなし）</li>
<li>ごはんはちゃんと食べましょう。</li>
</ol>
<h4>#15</h4>
<p>久しぶりに、食事してて「あきらめ」と「敗北感」を悟った。</p>
<p>自分で大盛りをオーダーしときながら…。</p>
<p>パスタは怖い。もーしばらく要らん。</p>
<p>つべこべ言わず作業再開。</p>
<h4>#16</h4>
<p>AndroidのスタートアップJavaクラス（src\(任意のパッケージ)\(一番最初に生成されるクラス).java）のonCreateメソッドは、<br />
<a href="http://www.wicket-ja.org/">Wicket</a>のJavaクラスのコンストラクタメソッドみたいに、<br />
ボタン押下時に何度も何度も呼び出されることはない。</p>
<p>期待通りでちょっと安心。</p>
<h4>#17</h4>
<p>各Viewの可視状態は、boolean値でなくint値で設定しなくちゃならん。<br />
（setVisibilityメソッド とかのパラメータのこと。左記メソッドだと、android.view.Viewクラスの定数（int）を渡す必要がある。）</p>
<p>なんというか、わかりづらい…のは固定観念のせいか！？</p>
<h4>#18</h4>
<p>ねむいでございます。</p>
<h4>#19</h4>
<p>秒変わりきっかけのイベントもフックできた…が、これでいいのか？<br />
タイマーのスタートはできたけど、<br />
「タイマーをストップしてから、再スタートする」というアクションが、これでは実現できないっぽい。<br />
（※ この時点ではandroid.os.Handlerクラスを用いて実装していた。結局は<a href="#story25">#25</a>のような実装になったが、Handlerクラスを使っても「タイマーをストップしてから、再スタートする」のは実現可能であると思われる。）</p>
<p>それ以外の疑問（<a href="#story14">#14で挙げた項目たち</a>）はほとんど解消できた。</p>
<p>ただ新しい疑問も出現したが…それは進捗の証としてヨシとしよう（甘いね）。</p>
<p>あと1日ぐらいで、なんとか使用できるぐらいまでもっていこう。</p>
<p>たかが自己満足のために、<br />
未経験のものに対してここまでコーディングできるものかと、我ながら感心してます。</p>
<p>本日の作業は終了！！</p>
<p>☆<a href="http://sites.google.com/a/gclue.jp/android-docs/54-タイマーイベント">5.4 タイマーイベント ‎(Android Docs(初級編))‎</a><br />
☆<a href="http://www.hakkaku.net/articles/20090212-348">八角研究所 : Android で再開する Java プログラミング（3） &#8211; モグラ叩き</a><br />
☆<a href="http://blog.altemasoft.com/article/30001195.html">デジモノ狂想曲！: Android で タイマー処理 を考えてみた</a></p>
<h4>#20</h4>
<p>おはようございます。</p>
<h4>#21</h4>
<p>今日はなんだか手がよく動く。マリオでいうところの「無敵状態」。</p>
<h4>#22</h4>
<p>無敵状態が終わった。ものの1時間だったですけど。</p>
<h4>#23</h4>
<p>タイマー制御が難しい。thread.sleepが期待通り動いてくれない。<br />
（※ 後日談だが、thread.sleepは実装しなかった。）</p>
<p>☆<a href="http://kousei-inc.com/portal/index.php?勝手にAndroidブログ#d037f76a">勝手にAndroidブログ &#8211; PukiWiki</a></p>
<h4>#24</h4>
<p>並列処理が大事！</p>
<p>☆<a href="http://d.hatena.ne.jp/shuji_w6e/20090701/1246459813">Androidで学ぶ並列処理とGUI &#8211; やさしいデスマーチ</a><br />
<a name="story25"></a></p>
<h4>#25</h4>
<p>秒刻みのイベントをフックするのが難しかったので、<br />
ChronometerとかいうViewのChronometerTickイベントをフックするようにした。</p>
<p>なんか…違うよなぁ。</p>
<p>コーディング量は少なくて済んでるし、やりたい事も全部実現できてるんだけど、<br />
これが最適解だって気がしない。</p>
<p>でも、今回はこれでいこう。</p>
<p>あと、クラス変数の宣言の時点で、「(Viewクラス)this.findViewById(R.id&#8230;)」を代入するとコケる。<br />
当然と言えば当然、なのか？<br />
とにかくVBでも似たようなミスをした憶えがあるので、記念に書き留めておく。</p>
<p>☆<a href="http://www.adakoda.com/android/000127.html">クロノメーター(Chronometer)を使用するには &#8211; 逆引きAndroid入門</a></p>
<h4>#26</h4>
<p>問題をアプリの外部から追加したいんだけど…無理かなぁ。</p>
<p>いろいろ考えたけど、何とも難しそうなのでその対応はやめておこう。</p>
<p>知恵が生まれるほどの知識が蓄えられたら、改めて考えようかしら。</p>
<p>進捗としては、もうゴールの手前ぐらいまで来ている感じがする。<br />
「負けないで」が聞こえてもおかしくないぐらいゴールに近い。<br />
大きなタマネギはすぐそこ。</p>
<p>なんというか、アプリの雰囲気的に<a href="http://ja.wikipedia.org/wiki/マジカル頭脳パワー!!">『マジカル頭脳パワー』</a>になってきた。</p>
<p>…どーせなら、もっと似せようか。</p>
<h4>#27</h4>
<p>◎TextViewのsetTextメソッドに、数値（intとかlongとか）を渡すと例外が発生する。</p>
<p>もーちょっとで完成なのに…。</p>
<h4>#28</h4>
<p>ソース中にコメントも入れ終わったし、ひとまず完成！！<br />
<a name="afterword"></a></p>
<h4>あとがき</h4>
<p>どんなアプリを作ったのかを簡単に書いておこうと思う。</p>
<p>【イメージ】<br />
<img class="size-full wp-image-1044" title="オリジナル第1弾アプリ「Mosaics」" src="http://blog.eni.co.jp/tech/wp-content/uploads/2009/08/mosaics.png" alt="オリジナル第1弾アプリ「Mosaics」" width="245" height="329" /></p>
<p>【概要】</p>
<ul>
<li>『Mosaics』（モザイクス）というゲームアプリ。</li>
<li>『「何か」が25枚のモザイクによって隠されているので、それを制限時間内に当てる』のが目的。</li>
<li>モザイクは数秒おきに1枚ずつはがされていく。残り時間が少なくなると、モザイクの はがれ方も速くなる。</li>
<li>問題がスタートしてから正解するまでが早いほど高得点。得点は100点から減っていき、最低で-50点。</li>
<li>答えがわかれば、回答エリアのすぐ右にある白いボタンを押す。押すと回答モードに入り、タイマーが止まる。ボタンを押さなくても回答は入力できる。</li>
<li>判定ボタンを押すと、入力された回答がチェックされる。正解ならばモザイクが全部はずれて正解用メッセージが表示される。不正解ならばタイマーが再スタート。</li>
<li>こたえボタンを押すと問題終了（「制限時間内に正解できなかった」扱いになる）。</li>
</ul>
<p>【対応していない事】</p>
<ul>
<li>インターネットを用いた機能（逆に言えば、圏外でもアプリの動作は可能、なはず）</li>
<li>問題の追加（動的な問題データの追加方法が思い浮かばなかった。特にリソースオブジェクト系の追加について）</li>
<li>点数のセーブ（アプリを終了すると通算の獲得得点がクリアされる）</li>
<li>コンフィグ機能（最高点、最低点、タイマーの開始値、モザイクがめくれる速度 などの諸々の設定が不可）</li>
<li>国際化、メッセージのプロパティ化</li>
<li>「1000点を取ればミステリーツアーにご招待」とか「正解できないから檻から出られない」みたいなもの</li>
</ul>
<p>などなど</p>
<h4>次回予告</h4>
<p>次回は、自作アプリ第2弾の実装開始の場面から綴ります。<br />
ありがとうございました。</p>
<h3>あわせて読みたい</h3>
<ul>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html">アンドロイダー育成日記 -Androidと仲良くなるには- その1</a></li>
<li>アンドロイダー育成日記 -Androidと仲良くなるには- その2(本記事)</li>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html">アンドロイダー育成日記 -Androidと仲良くなるには- その3</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html" />
	</item>
		<item>
		<title>アンドロイダー育成日記 -Androidと仲良くなるには- その1</title>
		<link>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html</link>
		<comments>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html#comments</comments>
		<pubDate>Mon, 17 Aug 2009 08:00:47 +0000</pubDate>
		<dc:creator>正木 恵二</dc:creator>
				<category><![CDATA[Google Android]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[アンドロイド]]></category>
		<category><![CDATA[リンク集]]></category>
		<category><![CDATA[作業日誌]]></category>
		<category><![CDATA[初心者]]></category>

		<guid isPermaLink="false">http://blog.eni.co.jp/tech/?p=1018</guid>
		<description><![CDATA[
このエントリーには続きがあります。
アンドロイダー育成日記 -Androidと仲良くなるには- その2

こんにちは。正木です。
GoogleがAndroidというプラットフォームを発表したのが、いまから2年近く前の2007年下旬。
その頃の私は「VBまっさかり」で、Visual Basic .NetかOracle以外の技術系の情報は、まったく無関心でした。
それから、時は過ぎました。
時流が変わり、世界の経済が変わり、日本の首相が変わり、日本の裁判が変わり、阪神タイガースの監督が変わり、私にも変化が起きて…。
手っ取り早い話が『Androidをさわりはじめた』というワケであります。最近になって。

そこで、でございます。
Android向けアプリ作成にあたり、したためていた私の作業日誌とやらを公開する次第であります。
実際のところ、現在は「これぞAndroidケータイにピッタリ！！」というようなアプリは作るコトができていません。
とか言いながら、読者ターゲットとしては、
・VBやってたんだけど、Androidにも興味がある！！
・VBもわかんないけど、Androidもわかんない！！
・Androidそこそこわかってるけど、初心に帰って学習したい！！
・僕だけ・私だけのアンドロイドを造りたい！！　　お茶の水さんのようになりたい！！
という感じで、なんだかんだで全方位に定めています。結構したたかです。
それでは、ど～ぞ～。
（※ 記事中の役立つ凡例 => ◎：役立つ教訓 &#124; ☆：役立つ外部リンク）
#1
不意に時間ができたので、Androidを触り始める事にした。
最初は、学習するなら『Ajaxとか使えるユーザビリティに優れたJavaフレームワークを使って何か作る！』と意気込んでいたが、ターゲットを探すのに時間がかかり断念した。
…正直に言えば、大事なところで優柔不断さが出た。
でもさぁ、Ajaxにそこまで深い執念がなかったから（時にはイイワケも必要）、
「どーせ時間があるんなら」と思い、漠然とカッコよく輝いて見えていたAndroidに手を出す事にした。
自作アプリで儲けてる人もいらっしゃるみたいだし、
そのうち出てくるであろうchromeOSを触る事になっても、今回の学習で多少のアドバンテージを得られるだろう、という、そんな策略もあったり。
ソースをダウンロードし、エミュレータが起動できる事を確認して、EclipseにAndroid開発用プラグインをインストールして、
Android開発用プロジェクトを作成し（Hello World的なソースが端っから実装されている）、それを実行させる手前まで完了。
「手前まで」と表現したのは、実行したけどうまくいかなかったため。
「SDKの存在が確認できません」だと。なにぃ？？
#2
『@IT』で、興味深い記事を発見。
「見えてきた!? ケータイ以外でのAndroidの適用例 － ＠IT MONOist」
　
何がすごいかって、記事中に出てくるカーナビみたいなヤツを「Androidを初めて触ったエンジニアが片手間で2週間程度で作り上げ」られるんだからすごい。
（カギカッコ内、リンク先より抜粋）
Androidを用いれば、「何を実現させたいか」と「実現方法」が『ある程度』頭に浮かぶだけで、アプリの量産体制に入るコトができるんだろうな、と。
（もっともAndroidだけではないだろうが、Android向けアプリはそういう風に持っていきやすいんだと思う。）
気分を切り替えて、引き続き「SDK失踪事件」の捜査を再開する。
#3
結果から言うと、事件は解決した。
犯人はこの中にいた。
たぶん…私。
はっきりとした理由はわからないけど、
正解を知りもせずに（お手本：Webでの解説サイトを見なかったり とか）、勘だけでやろうとしていたのが間違いだった気がする。
「Eclipse3.5」にアップデートしたり、ディレクトリ構成もWebサイトのお手本（下記リンク先参照）に倣いやってみたところ、
あっさりと「Hello, Android!!」が表示された。
上記の罪を償いながらも、
事件だの何だのと騒いだ割には、わりかし簡単に開発環境が整えられたように感じる。
◎Eclipseからエミュレータ実行コマンドを実行してから、アプリの起動が完了するまで、自分の開発環境だと20秒ぐらい要する（深く突っ込まず目安として捉えてください）。
◎エミュレータ実行時、エミュレータ画面の複数起動は不可。
☆Androidインストール &#8211; PukiWiki
☆Android開発環境のセットアップ &#8211; kariostroの日記

#4
『SoftwareDesign』を使いながら基礎を固めよう、とする。
（2009年3月号にAndroidの特集が組まれていた。2009年8月中旬現在、公式サイトによると同刊は品切れ状態。）
本に載っているサンプルゲームを、実装してみる。
そして、サンプルゲームを実装しつつ、おもしろコトバが本に載っていたのでちょっと紹介してみる。
◎『Androidアプリケーションは、ゲームであろうが何であろうが「画面に何かを表示する」プログラムであることがほとんどです。』（『SoftwareDesign』 2009年3月号より抜粋）
◎『理系の皆さんの大好きな(?)クイックソートと、理系でない皆さんの大好きな(?)バブルソート』（上記と同様）
#5
立体的に表示させる機能があるらしい。特殊なカードを使うみたい。
「なんじゃこりゃ」という驚きが、思わず声になった。
☆FrontPage &#8211; NyARToolkit
#6
「windowsキー + Break」→ 『システムのプロパティを起動』らしい。初めて知った。
#7
『SoftwareDesign』（#4 参照）に記載されていたソースを実装して、
実行させたら、期待している動きになった。
見事にうまくいってしまった。
「絶対にうまいこといくはずない」という直感を覆してまで…。
◎JavaファイルとXMLファイルの書き換えだけでうまくいった。
#8
『GeoPointAPI』のキー取得の為にやる、アカウントの登録ではまる。
「サービス名」とか「ドメイン」とか。サンプルアプリなのに、どう入力すればよいのだ！？
結局、頓挫。
☆シリウスラボのGeoPlatformAPI/GeoPointAPI
#9
暑い。
#10
AndroidアプリのGUIのデザインの定義は、XMLとして保持するらしい。
『どろいどどろう』とかいうヤツで、Visual Studioでのデザイン画面的にレイアウト用ソースの生成が可能。
☆DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming
（リンク先のようなアプレットではなく、クライアントアプリとしても「DroidDraw」は存在する。）
#11
VBでいうところの『テキストボックス・ラベル・ボタンをフォームに貼り付けて、ボタンを押下すると、テキストボックスへの入力値がラベルに反映される』というプログラムができた。
（AbsoluteLayoutの上にTextView・EditText・Buttonを設置して、ButtonのClickをフックする。Javaファイルに5行弱程度で実装可能。）
実現するために然程時間もかからず、またコーディング量も少なく済んで、感心している。
編集したのは、
・「デザイン用のXMLファイル」（res\layout\main.xml）
・「実処理を書いているJavaのメインクラス」（src\(任意のパッケージ)\(一番最初に生成されるクラス).java）
の2つだけ。
Javaのことだから、もっとXMLファイルがごちゃごちゃしてきたりするもんだと思っていたが、そーでもなかった。
☆Javaの学習ならJavaDriveのAndroid入門
次回予告
次回は自作アプリの実装について綴ります。
ありがとうございました。
あわせて読みたい

アンドロイダー育成日記 -Androidと仲良くなるには- その1(本記事)
アンドロイダー育成日記 -Androidと仲良くなるには- その2
アンドロイダー育成日記 -Androidと仲良くなるには- その3


]]></description>
			<content:encoded><![CDATA[<div class="update">
このエントリーには続きがあります。</p>
<p><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html">アンドロイダー育成日記 -Androidと仲良くなるには- その2</a></p>
</div>
<p>こんにちは。正木です。</p>
<p>Googleが<a href="http://code.google.com/intl/ja/android/">Android</a>というプラットフォームを発表したのが、いまから2年近く前の2007年下旬。</p>
<p>その頃の私は「VBまっさかり」で、Visual Basic .NetかOracle以外の技術系の情報は、まったく無関心でした。</p>
<p>それから、時は過ぎました。<br />
時流が変わり、世界の経済が変わり、日本の首相が変わり、日本の裁判が変わり、阪神タイガースの監督が変わり、私にも変化が起きて…。</p>
<p>手っ取り早い話が『Androidをさわりはじめた』というワケであります。最近になって。<br />
<span id="more-1018"></span><br />
そこで、でございます。<br />
Android向けアプリ作成にあたり、したためていた私の作業日誌とやらを公開する次第であります。</p>
<p>実際のところ、現在は「これぞAndroidケータイにピッタリ！！」というようなアプリは作るコトができていません。</p>
<p>とか言いながら、読者ターゲットとしては、</p>
<p>・VBやってたんだけど、Androidにも興味がある！！<br />
・VBもわかんないけど、Androidもわかんない！！<br />
・Androidそこそこわかってるけど、初心に帰って学習したい！！<br />
・僕だけ・私だけのアンドロイドを造りたい！！　　お茶の水さんのようになりたい！！</p>
<p>という感じで、なんだかんだで全方位に定めています。結構したたかです。</p>
<p>それでは、ど～ぞ～。</p>
<p>（※ 記事中の役立つ凡例 => ◎：役立つ教訓 | ☆：役立つ外部リンク）</p>
<h4>#1</h4>
<p>不意に時間ができたので、Androidを触り始める事にした。</p>
<p>最初は、学習するなら『Ajaxとか使えるユーザビリティに優れたJavaフレームワークを使って何か作る！』と意気込んでいたが、ターゲットを探すのに時間がかかり断念した。</p>
<p>…正直に言えば、大事なところで優柔不断さが出た。</p>
<p>でもさぁ、Ajaxにそこまで深い執念がなかったから（時にはイイワケも必要）、<br />
「どーせ時間があるんなら」と思い、漠然とカッコよく輝いて見えていたAndroidに手を出す事にした。</p>
<p>自作アプリで儲けてる人もいらっしゃるみたいだし、<br />
そのうち出てくるであろうchromeOSを触る事になっても、今回の学習で多少のアドバンテージを得られるだろう、という、そんな策略もあったり。</p>
<p>ソースをダウンロードし、エミュレータが起動できる事を確認して、EclipseにAndroid開発用プラグインをインストールして、<br />
Android開発用プロジェクトを作成し（Hello World的なソースが端っから実装されている）、それを実行させる手前まで完了。</p>
<p>「手前まで」と表現したのは、実行したけどうまくいかなかったため。</p>
<p>「SDKの存在が確認できません」だと。なにぃ？？</p>
<h4>#2</h4>
<p>『@IT』で、興味深い記事を発見。</p>
<p><a href="http://monoist.atmarkit.co.jp/fembedded/articles/special/esec2009/report/android/esec2009_androida.html">「見えてきた!? ケータイ以外でのAndroidの適用例 － ＠IT MONOist」</a><br />
　<br />
何がすごいかって、記事中に出てくるカーナビみたいなヤツを「Androidを初めて触ったエンジニアが片手間で2週間程度で作り上げ」られるんだからすごい。<br />
（カギカッコ内、リンク先より抜粋）</p>
<p>Androidを用いれば、「何を実現させたいか」と「実現方法」が『ある程度』頭に浮かぶだけで、アプリの量産体制に入るコトができるんだろうな、と。<br />
（もっともAndroidだけではないだろうが、Android向けアプリはそういう風に持っていきやすいんだと思う。）</p>
<p>気分を切り替えて、引き続き「SDK失踪事件」の捜査を再開する。</p>
<h4>#3</h4>
<p>結果から言うと、事件は解決した。</p>
<p>犯人はこの中にいた。<br />
たぶん…私。</p>
<p>はっきりとした理由はわからないけど、<br />
正解を知りもせずに（お手本：Webでの解説サイトを見なかったり とか）、勘だけでやろうとしていたのが間違いだった気がする。</p>
<p>「Eclipse3.5」にアップデートしたり、ディレクトリ構成もWebサイトのお手本（下記リンク先参照）に倣いやってみたところ、<br />
あっさりと「Hello, Android!!」が表示された。</p>
<p>上記の罪を償いながらも、<br />
事件だの何だのと騒いだ割には、わりかし簡単に開発環境が整えられたように感じる。</p>
<p>◎Eclipseからエミュレータ実行コマンドを実行してから、アプリの起動が完了するまで、自分の開発環境だと20秒ぐらい要する（深く突っ込まず目安として捉えてください）。<br />
◎エミュレータ実行時、エミュレータ画面の複数起動は不可。<br />
☆<a href="http://kousei-inc.com/portal/index.php?Androidインストール">Androidインストール &#8211; PukiWiki</a><br />
☆<a href="http://d.hatena.ne.jp/kariostro/20090401/1238575662">Android開発環境のセットアップ &#8211; kariostroの日記</a><br />
<a name="story4"></a></p>
<h4>#4</h4>
<p>『SoftwareDesign』を使いながら基礎を固めよう、とする。<br />
（2009年3月号にAndroidの特集が組まれていた。2009年8月中旬現在、<a href="http://gihyo.jp/magazine/SD/archive/2009/200903">公式サイトによると同刊は品切れ状態</a>。）</p>
<p>本に載っているサンプルゲームを、実装してみる。</p>
<p>そして、サンプルゲームを実装しつつ、おもしろコトバが本に載っていたのでちょっと紹介してみる。</p>
<p>◎『Androidアプリケーションは、ゲームであろうが何であろうが「画面に何かを表示する」プログラムであることがほとんどです。』（『SoftwareDesign』 2009年3月号より抜粋）<br />
◎『理系の皆さんの大好きな(?)クイックソートと、理系でない皆さんの大好きな(?)バブルソート』（上記と同様）</p>
<h4>#5</h4>
<p>立体的に表示させる機能があるらしい。特殊なカードを使うみたい。</p>
<p>「なんじゃこりゃ」という驚きが、思わず声になった。</p>
<p>☆<a href="http://nyatla.jp/nyartoolkit/wiki/index.php?FrontPage">FrontPage &#8211; NyARToolkit</a></p>
<h4>#6</h4>
<p>「windowsキー + Break」→ 『システムのプロパティを起動』らしい。初めて知った。</p>
<h4>#7</h4>
<p>『SoftwareDesign』（<a href="#story4">#4</a> 参照）に記載されていたソースを実装して、<br />
実行させたら、期待している動きになった。</p>
<p>見事にうまくいってしまった。</p>
<p>「絶対にうまいこといくはずない」という直感を覆してまで…。</p>
<p>◎JavaファイルとXMLファイルの書き換えだけでうまくいった。</p>
<h4>#8</h4>
<p>『GeoPointAPI』のキー取得の為にやる、アカウントの登録ではまる。</p>
<p>「サービス名」とか「ドメイン」とか。サンプルアプリなのに、どう入力すればよいのだ！？</p>
<p>結局、頓挫。</p>
<p>☆<a href="http://lab.cirius.co.jp/">シリウスラボ</a>の<a href="http://lab.cirius.co.jp/index.php?GeoPlatformAPI/GeoPointAPI">GeoPlatformAPI/GeoPointAPI</a></p>
<h4>#9</h4>
<p>暑い。</p>
<h4>#10</h4>
<p>AndroidアプリのGUIのデザインの定義は、XMLとして保持するらしい。</p>
<p>『どろいどどろう』とかいうヤツで、Visual Studioでのデザイン画面的にレイアウト用ソースの生成が可能。</p>
<p>☆<a href="http://www.droiddraw.org/">DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming</a><br />
（リンク先のようなアプレットではなく、クライアントアプリとしても「DroidDraw」は存在する。）</p>
<h4>#11</h4>
<p>VBでいうところの『テキストボックス・ラベル・ボタンをフォームに貼り付けて、ボタンを押下すると、テキストボックスへの入力値がラベルに反映される』というプログラムができた。<br />
（AbsoluteLayoutの上にTextView・EditText・Buttonを設置して、ButtonのClickをフックする。Javaファイルに5行弱程度で実装可能。）</p>
<p>実現するために然程時間もかからず、またコーディング量も少なく済んで、感心している。</p>
<p>編集したのは、<br />
・「デザイン用のXMLファイル」（res\layout\main.xml）<br />
・「実処理を書いているJavaのメインクラス」（src\(任意のパッケージ)\(一番最初に生成されるクラス).java）<br />
の2つだけ。</p>
<p>Javaのことだから、もっとXMLファイルがごちゃごちゃしてきたりするもんだと思っていたが、そーでもなかった。</p>
<p>☆<a href="http://www.javadrive.jp/index.html">Javaの学習ならJavaDrive</a>の<a href="http://www.javadrive.jp/android/index.html">Android入門</a></p>
<h4>次回予告</h4>
<p>次回は自作アプリの実装について綴ります。<br />
ありがとうございました。</p>
<h3>あわせて読みたい</h3>
<ul>
<li>アンドロイダー育成日記 -Androidと仲良くなるには- その1(本記事)</li>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_02.html">アンドロイダー育成日記 -Androidと仲良くなるには- その2</a>
<li><a href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_03.html">アンドロイダー育成日記 -Androidと仲良くなるには- その3</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/2009/08/android_beginner_diary_01.html" />
	</item>
	</channel>
</rss>
