ノーコード/ローコード開発って?
ここ数年でノーコード/ローコード開発の話をよく聞くようになりました。
実際、クラウドワークス
やランサーズ
のようなクラウド・アウトソーシング・サービスを覗いてみても、そのような案件をよく目にします。
プログラミングの知識がなくてもアプリケーションが開発できるという謳い文句とアプリケーションやシステムの内製化需要。
2つがかみ合って、この5年ほどで急激に盛り上がってきた印象です。
でも、この手の発想はずっと以前からあって、実は「やってみた結果うまくいかないね」ということがよくありました。
ここ数年で劇的に技術の進歩があったわけでもないから、本当のところ状況はあまり変わってないのではないかと思います。
プログラミングというのは簡単に言えば「機能」を作り出すものです。
そして、アプリケーション開発、システム開発とは「機能」を組み合わせて「サービス」を作るものです。
つまり、簡単に言えばノーコードやローコード(=ノープログラミング/ロープログラミング)とは新たな機能を作らずに、用意された機能を組み合わせてアプリケーションを作るサービスということになります。※
ところが一般的に「アプリやシステムを開発する」という時、人々がイメージするのは「必要な機能を作る」ことが含まれていることが多いです。
このギャップが「やってみたけど、うまくいかなかった」原因の1つではなかろうかと思っています。
※色々なコンセプトの様々なサービスがあるので、十把一絡げに言い切れるものではありません。あくまでも「そういうことが多い」というだけです。
ということは、扱おうとするノーコード開発サービスで「何ができるのか」「何ができないのか」を正しく知ることが重要だということです。
今回は「家族の体温管理アプリ」を Google AppSheet というノーコード開発ツールを使って、ノーコード開発の世界に触れてみようと思います。
Google AppSheetってどんなサービス?
AppSheetを提供するのはもちろん Google です。
Google AppSheetの特徴はざっくりとこんな感じ。
- Googleサービスとの連携
- 様々なデータソースを利用可能
(Googleドライブ、Office365Excel、DropboxからSQLServer、Oracleまで) - 豊富なサンプル
→ サンプルからカスタマイズすることで簡単に作成 - ノーコードでPGスキルはそれほど求められない
→ 一方でAppSheetのGUIを使いこなすための学習は必要 - 機械学習のサポート
→ 2022年現在、まだBeta版なのでこれからの発展に期待
何よりもGoogle AppSheetが特徴的なのは全ての機能を無料で利用して開発できることです。
作ったアプリはデプロイすると料金がかかりますが、デプロイさえしなければ料金がかかることはありません。
作ったアプリを無料で使い続けることもできます。
そして、デプロイしなくても10ユーザーまで無料でアプリを使うことができます。
なので、試しに触ってみるには都合がいい、導入のハードルが非常に低いツールなのです。
体温管理アプリを作る
子供が熱を出して病院へかかる時、問診ではたいてい「いつから熱が高いのか」「最高体温はいつで、何℃まで上がったのか」といったことを聞かれます。
自分のことであれば、ある程度は覚えておくこともできますが、子供のことになると記憶しきれないことがあります。
そもそも検温自体、私がすることもあれば奥さんがしてくれることもあるので、お互いに情報を共有しないといけません。
我が家ではLINEを使って体温をはじめ、子供の健康状態を送りあうことで管理していますが、タイムラインを遡って確認するのがなかなか面倒だと思っていました。
そこで、AppSheetで体温管理アプリが作れないものかと思って、やってみました。
作ったのはこんな画面のアプリです。
DBはGooge Spread Sheet
アプリを作り始める前にまずデータを保存するためのDBを作ります。
Google AppSheetでは様々なデータソースをDBにすることができます。
今回はGoogleが提供するオンラインの表計算システムSpread Sheet
をDBにしました。
定義方法はこの画像を見ればわかると思います。
「体温管理APP_DB」というファイル名がDB名、シート名がテーブル名のイメージですね。
1行目が列名になっています。
今回は「体温データ」と「家族マスタ」という2テーブルを定義しました。
家族マスタには長男・長女・ママ・パパの4つを定義しました。
現時点では体温データに必ずしもデータを投入しておく必要ないです。
AppSheetを作る
まず Google AppSheetのページにアクセスして、アカウントを作成・ログインしておきます。
作成方法については検索すれば山ほどヒットするので、割愛します。
AppSheetにログインできたら画面左上の「Create」から「Start with existing data」をクリックします。
「Create a new app」というポップアップが表示されたらApp nameに任意のアプリケーション名を入力して「Choose your data」をクリックします。
データソースを選択する画面でSpread Sheetを選択し、先ほど作成した「体温管理APP_DB」というファイルを選びます。
これだけでアプリケーションの雛型が出来上がってしまいます。
これぞノーコード開発って感じですね。
Dataでデータ取得を定義
アプリケーション開発画面の左のメニューから「Data」を選択するとアプリケーションで参照するデータを編集することができます。
下記は今回作った体温管理アプリのテーブルと列定義の設定です。
既存の項目を組み合わせた新たな列を作ることもできます。データ取得のSQLを作る代わりにここでデータ取得を定義するイメージですね。
他にもSlices
でデータをフィルターしたビューのようなものを作って参照することもできます。
今回は「人別」「直近7日間」という条件でフィルターした Slice を『長男』『長女』『ママ』『パパ』の4つ作りました。
Row filter condition
で定義されている下記の式がフィルターの条件を表しています。
=AND([家族ID]=1, DATE([測定日時])>TODAY()-7)
画面はUXで定義
画面はアプリケーション開発画面の左のメニューから「UX」を選択して編集します。
ちょうど「Data」のすぐ下にあります。
今回作る画面はカレンダー画面とグラフ画面の主に2種類です。
カレンダー画面と長男、長女のグラフ画面をPrimary Views
として作りました。
Primary Views にした画面は画面下部にメニューが表示されるので、画面の切り替えがスムーズにできます。
頻繁にアクセスする画面を Primary Views に定義すれば良さそう。
Menu Views
は左上のハンバーガーメニューから開くことができる画面で、時々しかアクセスしない画面を定義しておけば良さそうです。
今回はママとパパのグラフ画面を Menu Views にしました。
カレンダー画面の設定とデザインはこんな感じです。View type
で Calendar を選べばカレンダーの画面になります。
続いてグラフ画面の設定とデザインです。
グラフ画面は View type でChart
を選んで、Chart type でグラフの種類を選ぶ感じです。
今回はcol series[line]
をChart typeにしました。
また、グラフ画面では家族1人1人ように画面を用意することとにしました。
そのために Data の Slice で作った人別の直近7日間データをデータソース[For this data] に選択しました。
本当はわざわざ人別に画面を作るのではなく、画面上でもっと自由に条件指定できるとよかったんですが、なかなか思うようには行かなくて、このあたりがノーコード開発の限界なのかもしれません。
※抽出条件を変更する機能もありますが、希望する感じにカスタマイズすることはできませんでした。
あと、体温データの登録画面はDataで定義した内容を元に、ほとんど自動で実装してくれます。
体温の小数点以下桁数や長男/長女/ママ/パパなどの選び方を変更するくらいの簡単な調整をするだけでこんな画面になりました。
実はこの辺はUXではなく、Dataの定義で調整することになります。
全てをブラウザ上の簡単な操作だけで、体温管理アプリができてしまいました。
まとめ
ほとんどコードらしいことを書くことなく、割と使えるツールが作れたような気がします。
ノーコード開発が流行るのも納得できました。
ただ、やはり物足りない部分もあると感じました。
特にUI周りではなかなか希望が叶えられないところが多かった印象です。
デザインを自由にできないのはもちろん、グラフの色1つ変更するのも叶わなかったりします。
グラフの縦軸、横軸を入れ替えたり、縦軸の範囲を調整したりするのも一筋縄ではいかなかったり、諦めざるを得なかったりすることもありました。
このあたりの限界を見極めて、仕様の方を柔軟に調整できるかどうかが、ノーコード開発の肝になりそうです。
そしてお客さんにこの「ノーコード開発の限界」をちゃんと理解してもらって、協力して仕様調整できるようにすることが大事かもしれません。
システムクラフトではGoogle AppSheetをはじめ、さまざまなプラットフォームのノーコード開発をお手伝いさせていただいています。
ご興味ある方はぜひシステムクラフトまでご相談ください。
コメント