れさくのブログ

れさくのブログ

*

4日目:地図アプリを作る~人生の位置情報を求めて~

   

「そもそも八幡山ってどんなところよ?」

そんな声が聞こえてきそうです。

こんなところです。
10294487_741859749199151_7156067106736517382_n
(たまたま通りかかった痛バスで勝手な楽しげなイメージを固定化させる企み)

こんな素敵な街にある5日でアプリが作れてしまうクラウドナインアップス
4日目の授業が始まりました。

7.クラス、ライブラリとAPI
【Google Mapの使い方】
Google Mapの読込み方法や住所検索などのAPIのやりかたを学びます。

【データの解析】
Web上から取得したデータ(XML, JSON)のデータを解析する方法を学びます。

8.マップアプリの作成
【Google APIの利用】
住所検索や現在地取得、線をひくなどのGoogleが提供している様々な機能を利用して制作します。

【UIの制作】
マップを表示する方法や実際に線を描画する方法を学びます。

【通信方法】
Webとの通信をバックグラウンドで行う方法を学びます。

地図アプリを作るわけですが、
・そのためにはGoogleMapの地図APIが必要
・そのAPIを使うためにはライブラリが必要

というわけで、まずはライブラリを入れます。

講義は原則Mac前提、受講生は私以外全員Macです。
今回はWindows特有の操作や現象が多かったので、その辺を中心に重い写真ガンガン載せて進めます。

このブログのアクセスの7割がスマホユーザーというデータが、全然前向きに活用されていません。


1:ライブラリを入れる

FileからImport。ここまではMacと同じなのですが・・・
1

ここでBrowseを押します。
2

「google_play_services」というライブラリを取り込みます。
パスはこんな感じ。
3

するとこうなる。
この時点でMacとかなり見え方が違った気がします。
4
Finishを押すと終了してメイン画面に戻ります。
5

このあたりからMacとWindowsで操作が全然違う!
皆が黙々とMacで進める中、れさくだけ1人Windowsで我が道を行く。
ああ、光の道が見えるぜ・・・(ジャイロ

左上に見えるライブラリ「google_play_services」を右クリックで「Properties」。
6

「Is Library」にチェックを入れて「OK」
7

ライブラリを入れるのはここで完了です。


2:プロジェクトを作成する

新規プロジェクト立ち上げ。いつも通りの手順です。

このプロジェクトに、先ほど入れたライブラリを取り込みます。
立ち上げたプロジェクトを右クリックで「Properties」。
8

すると先ほどと同じような画面になりますが、今回は「Add」を押します。
9

先ほど入れたライブラリが見えます。
これを選んで「OK」。
10

するといかにも取り込まれました的な絵になるので、「OK」。
11


3:GoogleのAPIと連携する

三度の飯よりAPIが好きなれさく。
使うだけじゃなくて最近は作るのも好きだったりします。

さてAPIとは何ぞや。

例えばGoogleさんが、「うちの地図をもっと多くの開発者に使ってもらいたい」とか思ってくれたとします。

でもそのままでは大変ですよね。

難攻不落のGoogleのセキュリティ網を突破して地図データにアクセスして、そのデータの塊を使えるように変換してああしてこうして・・・やってられません。

っていうか不正アクセスとかしちゃいけません。

つまり「使ってもらいたい」と思ったからには、「簡単便利に使える仕組み」を用意しておかないといけません。

それがAPI。

Access Positive Internet
(アクセスが簡単でインターネットがよりポジティブポジティブゥ!)

ごめんなさいウソです。

Application Programming Interface
(アプリ開発のためのインターフェース、接続部分)

この接続部分をいかに簡単に使いやすくするか、がAPIのキモですね。

さてしかし。

「簡単便利に使える」ということは、ガンガン使えるということです。

1秒間に数百回のアクセスを数日間続けて地図データ抜き続けたり、

1人で数十個、数百個のアプリを作って、それらがじゃんじゃんAPIを使ったり。

たまったもんじゃありません。

ごめんなさい。(←?!)

そこでAPIの中には「鍵もってないと使っちゃダメだよ」というものもあります。

事前に「誰が」「どのアプリで」「どのAPIを使うか」を申請するのです。

申請すると、鍵をくれます。

鍵は、たいてい文字列です。

この鍵を自分のアプリに埋め込んだうえで、APIを使います。

すると例えば今回の例のGoogleさんはその鍵を見て、

「誰が」「どのアプリで」「どのAPIを使うか」が分かる訳です。

たとえばそのアプリが異常に負荷のかかるアクセスを掛けてきたら、そのユーザーだけアクセスを遮断することができます。

何しろ鍵で犯人が分かる訳ですから。

・・・・・・・・・・・・・。
・・・・・・・・。
・・・・・。

という訳で鍵をもらいに行きます。

Googleさんが開発者のために用意したサイトです。
https://console.developers.google.com/project

先生「まだ何も作っていないので、真っさらな画面が出てきます」

れさく「うんうん、真っさらな画面が」
12
なんかプロジェクトできてるー?!ガッビーン

たぶんむかしむかーし実験した残骸だと思います。

鍵をもらいに行ったら古い自分の部屋が出てきた気分です。

深山荘とかどうなってるかな。

(取り壊されてました)

しかしこんなこともあろうかと!

個人とは別に法人アカウントも取っておいたのだよ!

ああ起業しておいてよかった。(小並感)

という訳で「株式会社電波の杜」でログイン。
13
真っさらな画面は出てくれたのですが、何故かこちらは英語です。
グローバル企業、電波の杜。

さて「そのアプリ専用の鍵」を作るのですから、「そのアプリの証」を渡してあげないといけません。
この「アプリの証」を「フィンガープリント」と言います。指紋です。
14
ここにフィンガープリントを入力します。

さてフィンガープリントってどうやって取るのか?
難しいんです。
keystoreがどうのこうので
恐怖の黒い画面にコマンドラインでどうのこうのと。

でも大丈夫!
Eclipseの環境設定にフィンガープリントが最初から載ってます。

「フィンガープリントだって簡単さ。そう、Macならね。」
 
 
 
 
 
Windowsだよ!!
 
 
 
 
Macなら楽々なのですが、Windowsでフィンガープリントを取るにはこうします。

まずそもそも「フィンガープリント」なんて軽やかな名前で呼んじゃあいけません。

指紋ですよ、指紋。

「し もん?」
16

「指紋疾走だとォー!」
17

「そおうだッ!『指紋』だよォ!このマックがァァ―――ッ!!」
18

という訳でAPI Keyが表示されました。(←唐突にジョジョモード終了)
19

この「鍵」をアプリのソースに入れて、もう完成です。

ジョジョスマホで起動!

ジオメディアあるある:その1「ガーナ沖」
10806309_844220978963027_3004143707995344900_n
ここは緯度経度がどちらもゼロなんですね。

なので最初に表示する緯度経度を指定しなかったり、位置情報取得にコケた時のエラー処理をきちんとしておかないと、ガーナ沖に送られてチョコレートとか作ることになります。むしろ望むところですね。

アプリの現在地ボタンを押すと、ちゃんと八幡山になりました。
10523163_844221565629635_982609153636473459_n
このアプリのおかげで、ヤマダ電機があることを知りました。

さて、5日でアプリが作れてしまうクラウドナインアップスはいよいよ次回が最終回。

その前にWebkitのCookieの件を先生に質問して、あわよくば秘伝のタレをもらってしまう計画を発動させておこう。
(れさくさんって最低ですねそうですね)

 - 5日間でできるAndroidアプリ開発

adpc

adpc

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

unnamed
プロローグ:ジオの奇妙な冒険

2010年! それは位置ゲーとジオメディアの発展が起業家の思想と生活を変えた時代 …

eclips2
0日目:Androidアプリ開発環境をMacに設定しかけて途中からWindowsに設定する

~前回までのあらすじ~ 「ちょっと!蕎麦の出前まだなの?」 「すみませんねェ、今 …

10671457_837472396304552_3584240601328250199_n
2日目:スタバで授業の復習をしたら駅コレAndroidアプリができてしまった(後編)

~これまでのあらすじ~ スタバでスタバなうを作った。 さて、この勢いでもっと何か …

5日目:クラウドナインアップスAndroid教室最終日

一部で好評! 八幡山ってどんなところよ?シリーズ。 京王線の八幡山駅を出て左に進 …

unnamed
APKファイル署名のデッドロック?

Androidアプリリリース直前の段階で最大の疑問。 【課題】 大昔に「署名なし …

ic_launcher
おまけ:本当は大変なAndroid開発

スクールで作ったapkファイルがあれば、「新規で」アプリリリースするなら簡単。 …

4日目の前日:ところで駅コレのAndroid版って

そもそも今回れさくがAndroidアプリ教室に通っている理由は、「駅コレのAnd …

1日目:計算機を作ろうとしたらUSBドライバの勉強が進んだの巻

~前回までのあらすじ~ AndroidSDKは重い。 AndroidSDKは複雑 …

Androidアプリにプッシュ通知を実装する

運営から限定イベントのお知らせが届いたり、新着ニュースが届いたり。 そんな通知を …

いよいよ本番:eclipse上でプロジェクトをコピーする

クラウドナインアップス卒業後も先生に質問しまくったりサンプルコード頂いたりしまく …