Glideの味わい方〜オープンデータを活用しよう

Xamarinなかなか踏み込んでくれないなと感じたりしています。

Xamarin 最近どうよ? – Qiita
https://qiita.com/amay077/items/399002a02c1abf9d620b

こちらの記事は面白く、中で紹介されている、Xamarin.Forms Visualの画像を見ると、「よいのでは!」と思いますが、さてどうなることやら・・・

これに対して、上記記事でも紹介されているGlideが、めちゃくちゃ踏み込んできていて面白い。
Glide
https://www.glideapps.com/

ノンコーディング、ノンデザインセンスで、綺麗なアプリがすぐに作れる。本当にすぐに。ただし、データがあれば。私も、常々、コンテンツを持っている人は強いなと思っており、そういう人とコラボして面白いものを作りたいと思っているのですが、まあ普通の人はもしかしたら、簡単にアプリが作れると言っても、響かないのかもしれません。しかし、・・・

オープンデータがある!

オープンデータの定義は
① 営利目的、非営利目的を問わず二次利用可能なルールが適用されたもの
② 機械判読に適したもの
③ 無償で利用できるもの
となります。
https://cio.go.jp/policy-opendata
カタログサイトも提供されているので、色々な観点で見てみると、興味があるデータもあるのではないでしょうか。それを、アプリを通じて活用できたら面白いのではと思いました。

Glide実践

では、実際のデータを使用して、アプリを作ってみます。

データ登録

今回は、「港区観光施設」データを使用してみます。
http://www.city.minato.tokyo.jp/opendata/kanko/index1.html
CSVで提供されているので、ダウンロードします。
ダウンロードしたら、すかさず、Googleドライブにアップします。

アップして、すかさず開き、すかさずGoggleスプレッドシートで開きます。

データ加工

これだけでアプリ作成に行けますが、あえて最初からデータ加工してみます。
「港区観光施設」データをみると、「エリア名称」と「種別」でカテゴリ分けされていることが分かります。アプリでも、この二つのカテゴリで絞り込みできるようにします。
まず、ファイル名は「港区観光施設」とし、元のシートは「施設一覧」に名前を変更します。次に、シートを追加し、シート名を「エリア名称」とし、A1の値も「エリア名称」とします。
次に、A2に「=Unique」と打ち込みますと、入力アシスタンスが起動しますので、クリックし、「施設一覧」シートのB列を選択します。Enterにより、「エリア名称」シートは値がグルーピングされた状態で表示されます。すごい。
(なお、94行目に余計なデータがあることが分かりますので、行削除してしまいます)
で、これだと1行目の「エリア名称」も含まれてしまうので、「=UNIQUE(‘施設一覧’!B2:B)」とします。これできれいになります。

同じように、「種別」シートも作成します。

次に、両シートに細工します。「エリア名称」のB列の1行目を「施設=施設一覧:エリア名称:multiple」として、各行をA列を参照するようにします。「種別」シートも同様です。

これで準備完了です。

Glide基本作成

Glideにログインします。
「+」でアプリ追加を行います。先ほど作成したファイルを指定して、「Select」クリックにより、アプリが生成されます。

基本的にはこれで動くアプリができています。ただし、さすがに、どの項目をどういう配置で表示するかは指定してあげないといけません。
今回のデータだと、施設一覧データの先頭2列が表示されてしまっているので、これを変更します。しかしそれも簡単です。Titleに「名称」、Detailsに「所在地」を指定すると、それっぽくなると思います。

データを1行選択すると、詳細ページに遷移します。
こちらでも、各項目の設定をします。1項目目のSummaryは、「名称」「種別」が良いかなと思うので変更し、「名称」「種別」「緯度」「経度」は不要かと思うので削除します。さらに、右上の「+」で項目追加ができますので、ここでMapを指定します。Address欄に「所在地」を指定することで自動的に地図が表示されます。

「エリア名称」「種別」は基本項目が1項目しかないので、明細は自動表示で問題なしです。クリックした先の施設一覧情報は、Inline listの項目を調整します。

完成です!
今回作ったアプリはこちら。
https://minatoku-kanko.glideapp.io/

Glide仕組みのポイント

いきなり単純データを指定してアプリを作ってから、シートを直してもReload sheetにより反映されますので、最初はそのようにしてカスタマイズしていくのが面白いと思います。
一番のポイントは、Inline listの作り方ではないかと思います。上ではさらっと書きましたが、Inline listを作るために、シートに細工をします。最初に行った、multipleの指定です。
シートの中に、multipleの指定を行うと、その項目をInline listに指定することができます。
もう少し具体的に書くと、ある詳細画面に1データを表示している際に、その中に、子データを明細表示できるのが、Inline listです。今回の上記アプリでは、エリアの詳細情報(と言っても今回は1項目だけですが)の中に、エリアに紐づく施設を子データとして明細表示している形になっています。子データというからには、キーによる紐付けが必要で、その定義を1行目の項目記述で行なっています。
「施設=施設一覧:エリア名称:multiple」という記述では、子データの情報名が「施設」、その子データがどこに存在するかが「施設一覧」、紐付けキーが「エリア名称」、そして子データとして複数明細存在することを示す「multiple」という構造になっています。

他にも作ってみました。

面白いので量産しています。
東京都スポーツ施設
https://tokyo-sports.glideapp.io/

三鷹市みどころマップ
https://mitaka-midokoro.glideapp.io/

Glide 次の期待

Glide素晴らしいと思いますが、次に欲しいのは、ログイン者によるデータ参照範囲制限の機能。コメント機能はすでに実装されていて、認証の仕組みが働いているので、そんなに先の話ではないと期待しています。
それができると、一気にエンタープライズ用途に広まるのでは(手ぐすね引いて待っていますよ)。