本アプリ(Android版)はここにありますので、よろしければお使いください。
■動機は何か
新型コロナウィルスのニュースを聞きながら、Google Mapsでアフリカの地図を見ていました。どこでも気になった地点をタップすると、その辺りで発信されたツイートが表示されたらいいなあと考えました。それらのツイートは、すべてが正確な情報とは言えないでしょうが、一般のニュースには出ない、現地ならではの有用なローカル情報もあるのではないでしょうか。
■地図をタップしてツイートを得るためのアプリ
と考えていたら、ありました!参考資料[1]にあるチュートリアルがそれです。これは、元々は、米国の若者たちが、続発した銃乱射事件の情報を共有し、なんとかこれを食い止めたいとして起こした活動が原点にあるようです。全米各地から、Twitterのハッシュタグ#NeverAgainで情報を発信し共有していました。このチュートリアルで作るものは、そこで使われたアプリをもとにしているようです。これに習って、今回作成したのが、図1左側のアプリです。以下のように使います。
- 地図上で気になる対象地点、地域をタップする。
- ハッシュタグとして、指定の#Coronavirusに加えて、#(地域名)が自動生成される。
- その地域でツィートされた新型コロナウィルスに関する情報が得られる。
さらに、セネガル、ウガンダ、マダガスカルをタップして、図2のようなツイートも得られました。現地の生の情報に触れることができたように思います。
- ガボン:首都リーブルビルでの2週間前のコロナ封鎖を緩和しました...
- セネガル:コロナの最高の検査キットを発明してくれた母国セネガルに誇り...
- ウガンダ:さらに4名のトラック運転手が検査で陽性になった...
- マダガスカル:ウィルスに効く?という伝統的お茶を求めて長い列...
■このスマホアプリの作成上の要点
このアプリは、MIT App Inventorで作成しましたが、その要点を簡単に示します。まず、今回は、OpenStreetMapを使いますので、そこから、API経由で得られたレスポンスの一例を図3に示します。JSONファイルが返ってきますので、これをデコードして、地点の名前(都市名、州名、国名など)を得る処理がポイントです。すなわち、これによって、上記のハッシュタグ#(地域名)が作られます。
JSONフィルのデコード処理は、以下の図のようになります。図4では、明示的に多重のリストを処理するためのLook up in pairsの機能を使い、図5では、(キー、バリュー)のペアをDictionary機能で処理しています。どちらでもよいです。今回は、JSONファイルが単純な構造であるため、両者に大差は見えませんが、もっと複雑なJSONになると、図5のDictionaryを利用した方が簡潔になると思います。
(注)図3よりも幾分複雑なJSONのデコードについては、こちらの記事をご参考にして戴きたく。
小生は、普段Twitterは特に利用していませんが、今回の経験から、その有用性を改めて感じた次第です。
参考資料
[1] Map the Movement (Advanced) in App Building Guides for the Youth Mobile Power Series
https://appinventor.mit.edu/explore/app-building-guides
0 件のコメント:
コメントを投稿