75才からのモバイルアプリ作成

MIT App Inventor 2 を使ったアプリ作成

MIT App Inventor 2で遊ぶ (Nobel Prize Laureates 3)

2024-10-20 08:18:58 | 日記

受賞者(団体/組織)の名称(または名称の一部)を入力して、情報を検索できる画面を追加。

以下のnameパラメーターに個人又は団体の名称のフル、又は一部をインプットし検索すれば該当の受賞者(団体)のデータを返してくれる。

     https://api.nobelprize.org/2.1/laureates?name=

例えば、

                https://api.nobelprize.org/2.1/laureates?name=nuclear

で検索すれば、2017年に平和賞を受賞した有名な "International Campaign to Abolish Nuclear Weapons" (ICAN)と1985年に同じく平和賞を受賞した "International Physicians for the Prevention of Nuclear War" 2件の平和賞受賞団体のデータを取得できる。

個人でも団体でも同じパラメーター(name)で検索できるのは便利。

もし、インプットした名前(フル又は一部)に合致したデータがない場合は(例えば"sakabe"で検索した場合)、以下の通り、metaデータのcountの値を0で返してくる。ブロック・コードではこれを利用して合致するデータがない場合の処理を行っている。

                                     

アプリ実行のビデオ:

スクリーン・デザイン:

左のメイン画面の下部にアイコン・ボタンを配置。赤黄点線で囲んだアイコンをタップすると検索画面へ遷移。そのほかのアイコンは装飾目的で配置しており、今のところ何ら機能を実装していない。

右画面が検索画面。

                                           

ブロック・コード:

取得したJSONデータの加工、整形、表示等は、前回、前々回と同様なので省略。

合致するデータがなかった場合の処理を中心に見てみる。

1. 変数targetURL:APIのURL

2. searchButtonをタップした際に、検索する名前がsearchNameTextBoxにインプットされていれば、API URLに対しGETリクエストを行い処理を実施する。もし、インプットなしにsearchButtonがタップされた場合は、名前のインプットを促すウインドウがポップアップする。

なお、GETリクエストを出す前に、念のため、変数の初期化を行う関数resetAllを実行しておく。

3. 取得したJSONデータの処理。

取得したJSONデータをデコードし、変数JSONに格納。=> "meta" データに含まれる  "count" の値が 0 であるかどうかをチェック(赤黄点線内)

     => 0 でなければ、関係する関数を実行しデータの処理を続けListViewに表示する

     => 0 の場合は、合致するデータがない旨をポップアップウインドウに表示する(赤白点線内)

 

                                                    ***********************************************************

前回までのブログ:

MIT App Inventor 2で遊ぶ (Nobel Prize Laureates 2)

MIT App Inventor 2で遊ぶ (Nobel Prize Laureates 1)