スタイル・エッジ技術ブログ

士業集客支援/コンサルティングのスタイル・エッジのエンジニアによるブログです。

AppSheet で社内向けツールを作った話

はじめに

こんにちは。スタイル・エッジの YH です。

前回のブログ執筆からおよそ1年半が経過し、新卒で入社したてホヤホヤだった私もついに3年目…😨
今まで多様な業務を経験させていただきましたが、今回はノーコード開発に携わった際に利用した「 AppSheet 」というツールをご紹介します。

※本記事では2023年7月現在の情報を掲載しています。 最新の情報は AppSheet 公式リファレンスをご覧ください!

アプリをノーコードで開発しよう

ノーコード開発とは、コーディングなしでシステム開発を行う手法のことを指します。
GUI で処理を作成でき、インフラ関連の構築も不要であることが特徴で、非エンジニアの方でも簡単にアプリケーションを作成できます。
今回取り扱った Google が提供している「AppSheet」もノーコード開発ツールの一種です。

まずノーコード開発の手始めとして、事業部内で利用する勤怠管理ツールを開発することになりました。
アプリでできることは下記の通りです 👇

  • アプリで出退勤や所在を登録すると、勤怠連絡用のチャットに自動連携される
  • 勤怠情報がチーム別・プロジェクト別でアプリ上から確認できる

実際の開発期間は、仕様検討も含めておよそ1ヶ月ほど。
ノーコード開発の手軽さを体感しました 🎈

次は日報ツールだ!

勤怠管理ツールの開発実績からノーコード開発の可能性を見出し、次なる野望として全社向けの日報管理ツールを作成することになりました。
実際の運用に乗せるまで結果的におよそ2.5ヶ月ほどかかりましたが、この取り組みのなかでノーコード開発の便利さと難しさを実感することができました。

本記事では開発中の所感をもとにノーコード開発の得手・不得手を紹介していきます。

使って分かったノーコードの強み

環境構築が不要なので、すぐ実装に取り掛かれる

ノーコード開発ではアプリを新規作成した直後から開発に取り掛かることができ、インフラ周りの準備がほぼ不要です。
開発前の準備には専門の知識が必要になる場合が多いため、この辺りを AppSheet が担ってくれることは開発の敷居をかなり下げてくれるように感じました。

例えば AppSheet の場合、 AppSheet Database という独自のデータベースをアプリ作成と同時に自動で用意してくれます。
その他、通常の開発であれば必要になるパッケージのインストールやサーバ周りの構築などの工程が必要ですが、AppSheet ではプラットフォームに用意されているため環境構築自体が不要です。
即実装に取り掛かれるこのスピード感は、ノーコード開発の大きな強みと言えるでしょう。

共有方法に関しても、Google アカウントさえあれば公開範囲を設定するだけなのでお手軽にアプリ開発に取り掛かれます。

とにかく開発スピードが速い

仕様さえ固まれば GUI 操作ですぐに実装することができます。
対象データの一覧表示のような View なら、ものの 5 分で実装することができました。

データの表示だけでなく、登録フォームも簡単に実装できます。
特にバリデーションの設定が簡単で、Google Sheets でのデータ管理で課題となる入力規則の設定や、必須・任意項目の指定などもマウス一つで簡単に設定することが可能です。
(一部バリデーションの指定にコーディングが必要になる場合もありますが、Google Sheets や Excel の関数をご存じの方ならすぐに AppSheet 独自の関数に落とし込めそうです。)

ちなみに、実際の画面がコチラ👇

Viewの設定画面

諸々設定するとこんな感じの画面がお手軽に作成できます✨

作成されたタスク一覧画面

Google and the Google logo are registered trademarks of Google LLC, used with permission.)

GUI なので何をやっているか分かりやすい

AppSheet では「ボタンを押すと ○○ をする」というような機能面の開発を「Action」という機能を使って行います。
この場合、「どのテーブルに」「どんな条件で」「何を行う」というのを GUI で指定・確認できるので、開発経験が浅くても開発のハードルが低くなるのではと思いました。

また、何かしらの処理や動作をトリガーにするデータ操作や、Webhook による連携を「Automation」という機能を用いて開発します。
Automation ではフロー図に処理を書いていくため、一目でなんの処理が行われているのか見やすいという利点があります。

下記は実際の Automation 設定画面になります💁‍♀️
これならプログラミング経験がない方でも簡単に実装できそうですね!

Automation設定画面

Google and the Google logo are registered trademarks of Google LLC, used with permission.)

使って分かったノーコードの弱み

「できること」「できないこと」がハッキリわかれる

ノーコード開発ではそのプラットフォームに用意されている機能がすべてになります。
つまり、用意されていない機能や処理は実装できない(ローコードで実装できる場合でも、かえって冗長になることがある)という弱点があります。

このような処理を実現する奥の手として、AppSheet では Google Apps Script(GAS) の呼び出しが可能です。(戻り値も取得できます)
しかし「GAS の呼び出し」というオーバーヘッドが発生しているのか、処理が遅くなる感覚がありました。

実際、別で開発したアプリでは AppSheet での実装が難しい部分を GAS で補ったのですが、処理自体の遅さが気になったのはもちろんのこと GAS 実行時のエラーキャッチが難しかったです💦
そういう点でもプラットフォームに用意されている機能以上のことを実装するのはハードルが高いと感じました。

チーム開発には不向き

AppSheet は個人開発を想定して構成されているようで、チーム開発には適していません
これは小規模ながらもチームで開発を進めていた日報ツール開発では大きな障壁となりました。

例えば、一般的な開発で用いられるバージョン管理ツール(Git や Subversion など)の役割を担えるような機能が AppSheet にはありません。
(過去の履歴を自動でバージョンとして残し、特定のバージョンを指定して変更を戻すことなどは可能です)
このため複数人で一つのアプリを編集しなければならず、変更がバッティングすると実装した機能が消えてしまったりするので運用には工夫が必要でした。

日報ツール開発時は、チームで開発するために下記のような運用ルールを策定しました。

  • 自己検証は公開中のアプリを複製して作成した別環境を用意して行う
  • 同時に公開中のアプリを編集しないよう、専用チャットで作業を行う旨を周知するよう徹底する

プラットフォームの品質への依存度が高い

提供されたプラットフォームで開発している以上、プラットフォーム自体のバグやシステムエラーには太刀打ちできません。
またメンテナンスによる瞬断の有無は運営側のアナウンスを待つ他なく、AppSheet の場合(肌感ですが)こういったアナウンスが遅い印象があります。

ちなみにスタイル・エッジでは対策として

  • 公式サイトのアナウンスを定期的に確認する
  • プラットフォームのメンテナンスがある場合は、利用者に予めアプリの使用を控えてもらうようアナウンスする

などを行っています。

最後に

ここまでノーコード開発の強みや弱みを書いてきましたが、やはり「誰でもツールを作れる」のは魅力的だと思います。
これまで Google Sheet 等で管理していたデータをアプリ化するだけでも、データの集計や入力ミスの防止などに大いに役立つと感じました。

このように、スタイル・エッジでは Web アプリケーションだけでなくノーコードツールなどの新しい技術を取り入れた社内ツールも作っています!
ご興味ある方は最近リニューアルされた採用サイト ↓をぜひご覧ください ♪ recruit.styleedge.co.jp