40代おっさんスプレッドシートからAppSheet(data部分)でアプリを作る

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## スプレッドシートにToDoデータを作成

![スプレッドシート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641940/24495201-f426-2a16-4600-f5c97aac94cd.png)
 
上記のように作りました

## アプリの作成

Make a new appをクリックしてください
Start with your own dataをクリックします
アプリ名を入れて
Categoryの部分は入れなくていいです。
そして下の
Choose your data をクリック
出来ましたら
スプレッドシートを選ぶ画面遷移するので、先ほど作ったシートを選択します。
これでアプリは作成されました。

## Dataをチェック

左側のDataをクリックするとシート1というテーブルが出来ていると思われます。
これはスプレッドシートのシート名で作られています。

### テーブル内容を確認

シート1をクリックします。

|Table name|テーブル名です。この名前がビューなどで使われます。日本語も使えます。|
|---------|---------|
|Are updates allowed?|このテーブルにどのような操作を許可するかを指定するものです。ここでは以下のような項目が用意されています。Updates:内容の更新（編集）　Adds:新しいレコードの作成　Deletes:レコードの削除 Read-Only:変更する操作を禁止し、表示するだけにする｜

Table nameはわかりやすい名前にしましょう（ビューで疲れるため）

Are updates allowed?の設定は、どの操作を許可するかによって生成されるビューが変わります。
Adds,UpdatesをONにするとレコードの作成や更新を行うためのフォームビューが自動生成されます。
Read-Onlyを選ぶと表示以外の機能はOFFになり、操作するためのビューも作られなくなります。

### Storageの設定

テーブルが保管されているファイルに関する設定や情報が表示
すべて変更できるわけでなく、値の表示のみが可能なものもあります。

|Source Path|テーブルのパスを指定、スプレッドシートファイルに1つデータがあるだけなら、ファイル名のみになる。複数のファイルをアプリから利用するときなどは、ここから使うファイルを選択する。|
|--------|-----------|
|Worksheet name/Qualifier|使用するワークシートの名前を指定します。複数のシートに異なるデータがある場合はここで使うシートを指定|
|Data Source|データの提供元のサービスを表示、今回はスプレッドシートですのでgoogleと表示されています。変更できない|
|Sorce Id|データ源に割り当てられているID、Googleスプレッドシートでは、各ファイルIDを割り当てられている。IDは変更できない|
|Store for image and file capture|イメージやファイルを保管する場所に関する設定、Defaultが設定されており、ファイル類はすべてGoogleドライブに保管|

### Serurityの設定

データのセキュリティに関する設定を行うもの

|Fllter out all existing rows?|すべに保管されているデータを表示させないもの（データの作成専用にするためのもの）|
|---------|-----------|
|Security filter|データの表示を行うためのフィルターを設定するためのもの（フィルターを通過したデータしか常時されないようにする）|
|Access mode|データがどのような形でアクセスされるかを指定するもの（アプリの作成者としてアクセスするか、ここの利用者としてアクセスるか）|
|Shared?|データの共有を許可するかどうかを指定（Coreプラン以上）|

### Scaleの設定

スケーリングと呼ばれる機能に関するもの
スケーリングとは、アクセスの増加などに対応する機能のこと
データを分散して保存するための設定

|Partitioned across many files/sources?|データを複数のファイルに分散して保存|
|--------|---------|
|Partitioned across many worksheets?|データを複数のシートに分散して保存|

### LocalizationとDocumentation

Localizationはローカライズに関する設定
ここではData localeと言う項目が1つ用意
データのロケール（使用言語とその地域）を指定

Documentationはデータに関するドキュメントを用意するためのもの

## テーブルの列を設定

Dataの上部にある
Columnsリンクをクリックする
テーブルの列に関する設定が表示される

|_RowNumber|行番号の項目、これは自動的に追加|
|--------|--------|
|ID|各レコードに割り振られるIDの項目|
|タイトル、説明、日時、終了|sample_dataシートに用意した項目|

sample_dataファイルのシートに記述したものであるが
_RowNumberという項目が追加されている。
またIDなども自動作成されたりするものなので注意

### NAME

列の名前
テーブルに記述した各列の値から自動的に設定される

### TYPE

TYPEは保管する値の種類を指定するもの
TYPEの設定により、レコードを作成編集するフォームに用意されるUIの表示が決まる
各、値を決めたら右上にあるSAVEをクリック

### キーとラベル

|KEY?|キーという各レコードを識別するための指定。キーはすべてのレコ－ドで異なる値が設定されている項目。これをONにすることで、レコードの識別に指定の列の値を使います。|
|--------|----------|
|LABEL?|ラベルはレコードを代表する値として表示などに使われるもの。例えばレコードをポップアップメニューから選ぶような場合、キーの値を表示してもそれがどういう値かわかりません。こういうときにラベルで指定した値を使う。|

### FOMULA(フォーミュラ(式))

フォーミュラとは
あらかじめ用意しておいた式を使って値を自動的に設定させたいような場合にこれを使う
デフォルトで「＝」になっている設定されていないことを示している

### SHOW?/EDITABLE?/REQUIRE?

|SHOW?|値を表示させるかどうかを指定します。|
|----------|---------|
|EDITABLE?|値が編集可能かどうかを指定します。|
|REQUIRE?|値が必須項目かどうかを指定します。|

### INITIAL VALUE/ DISPLAY NAME/ DESCRIPTION

|INITIAL VALUE|項目の初期値です。これを指定しておくことで最初から値を用意できる|
|----------|---------|
|DISPLAY NAME|項目の表示用の名前|
|DESCRIPTION|この列についての説明テキスト|

### SEARCH?/ SCAN?/ NFC?/ PII?

|SEARCH?|検索可能にするための物|
|----------|---------|
|SCAN?|QRコードによるスキャンを可能にします。ONにするとスキャンのアイコンがフォームに追加され、それにより、QRコードが読み取れるようになる|
|NFC?|NFCによるデータ取得を可能にします。ONにするとNFC利用のアイコンがフォームに追加され、NFC経由で情報を読み取れるようになる|
|PII?|この項目がPersonally Identifiable Information(個人を特定できる情報)であることを示す。ONにするとその情報は機密情報となり、システムログなどに記録されなくなる|

## 参考資料

<https://www.amazon.co.jp/Google-AppSheet-%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%83%8E%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83-ebook/dp/B098W4XDBB>