iOSアプリ開発の初心者向けに、Google Apps Script(GAS)のデータをJSON形式で取得してiPhone上に表示させるやり方について解説します。
本記事では以下の内容が学べます。
・GASのスクリプトエディタの使い方
・GASをWebアプリとして使用する方法
・JSON形式をResponseオブジェクトに変換
・GASから取得した配列からデータをリスト形式で表示
本記事では中身を簡単にするため、取得するデータを一つにしていますが、GAS側でコードを付け加えれば連続したデータを取得できるような仕様にしています。
作成するiOSアプリ
GASに入力したデータを取得してiPhone上にリスト形式で表示するシンプルなアプリです。
JSON形式ではこのようなデータ形式にしたものをSwift側で取り扱っていきます。
開発環境
Xcode Version 12.5 (12E262)
Apple Watch Ver.7.4.1(18T201)
iPhone X Ver.14.5.1
GASでコードを書く
新しいスプレッドシートを開いて以下のように入力しておきます。
次にスクリプトエディタを開きます。
以下のコードを入力します。
resultというIDと内容データを格納したリストを定義して、JSON形式で出力するマクロです。
入力が終わったらデプロイボタンを押し、ウェブアプリとしてデプロイします。
その際、セキュリティ上の注意画面が表示された場合は写真の順序で進めていけば大丈夫です。
説明とアクセスできるユーザー(今回はSwiftからアクセスできるように全員にしました)を選択してデプロイボタンを押します。
※全員にした場合、URLをネット上に公開してしまうと誰でもアクセスできるようになってしまうので注意してください
ウェブアプリ用のURLが表示されるのでコピーして次に解説するSwiftコードに貼り付けられるようにしておきます。
GAS側の解説は以上です。
Xcodeでコードを書く
Xcodeで新規プロジェクトの作り方が分からない方はまずはこちらの記事を読んでください。
GASで使用した変数を定義する部分
SwiftUIをインポートし、ResponseとResultと呼ぶデータを格納する構造体を定義します。
GAS内で定義している、今回のアプリに必要な項目をSwift側でも定義します。
JSON形式をResponseオブジェクトに変換する部分
func loadData()でJSON形式をSwiftで扱えるように変換を行います。
●●●の部分にGASで取得したURLを貼り付けます。
ContetViewの部分
VStackを使用してNavigationViewとGASから取得した全てのidのデータ(今回は一つ)を並べたリストを縦方向に整列させて表示させます。
Swift側のコード紹介は以上です。
コード.gs
ContentView.swift
参考サイト
https://capibara1969.com/2946/