最近注目を集めているキーワードに「ノーコード」および「ローコード」プラットフォームがあります。何となく分かるけれども、両者をきちんと区別するのは難しいようです。
今回はこの二つのキーワードについて、それぞれがどんなもので、どんな利点と欠点があるのか紹介します。
コードを書かずにアプリケーションを実現するノーコードプラットフォーム
ローコードとノーコード、二つのキーワードに共通する「コード」とは、プログラミングコードを意味します。
ノーコードとは、すなわちプログラミングコードを書かずに自分が実現したいこと (アプリケーション) を作成するプラットフォームになります。
例えば、有名なところでは次のようなサービスがあります。
この手のサービスとしてよく比較されるのが、CMS(コンテンツ・マネジメント・システム)です。
CMSには管理画面があり、その中で設定すると、訪問者向けの画面に反映されます。WordPressをはじめとする、ブログシステムを使ったことがあればイメージしやすいかと思います。Eコマースを運営されている方であれば、同様に管理画面を使って商品や注文情報を管理するでしょう。
これらのサービスとノーコードプラットフォームの違いは何でしょう。
ノーコードプラットフォームは、CMSの管理画面などに比べて、実現できることがもう少し幅広いのがポイントになります。
CMSは、プログラミングの知識は一切不要で利用できる代わりに、できることは管理画面を作成した開発者の意図した範囲内に限られます。
ノーコードプラットフォームでは、プログラミングの知識こそ必要ないものの、Web APIやWebhookといった技術的な仕組みは求められます。そうした技術を組み合わせて、より自由度の高いアプリケーションを開発できるようになります。
コード量を大幅に削減するローコードプラットフォーム
ノーコードプラットフォームでも多くのことが実現できますが、それでも物足りない、かゆいところに手が届かないと感じることが多々あります。
例えば、UIをカスタマイズしたい、自動化したい、自社サービスと連携させたいといったニーズです。そうした時に注目されるのがローコードプラットフォームになります。
ローコードプ ラットフォームは「ノーコード」とは異なり、コード量が少ない(ロー)プラットフォームになります。
必要な機能の殆どが、自動的に組み込まれるようになっており、それらをつなぎ合わせるためにプログラミングを書きます。つなぎ方を自分で決められるので、ノーコードに比べて自由度は高くなります。ただしプログラミング知識は必須になります。
Monacaはローコードプラットフォームに属するサービスになります。
一般的なスマートフォンアプリを作るのに比べて、一つのコードでiOS/Android双方に対応できる、プラグインによってネイティブの複雑な実装を行わずに済むなど、コード量を減らすための工夫をしています。
例)Googleスプレッドシート
例として、Googleスプレッドシートを挙げてみます (Excelでも構いません)。
Googleスプレッドシートは、表計算サービスを利用できます。殆どのケースにおいて、表計算のまま利用しているでしょう。
しかし、それだけでは物足りない、例えばボタンを押したらレポートを作成するような機能を作りたいと思ったとします。
そうした時には、マクロ機能を使います。
マクロ機能はユーザの操作を記録し、いつでも再実行できる機能です。マクロ機能は「ノーコード」に値します。マクロ機能を使うことで、これまで何度も手入力していたような手間がなくなり、生産性が上がります。
さらに、レポートを作成する元データを外部システムから取得したいと考えたとします。これはマクロ機能だけでは難しそうです。
そこで、必要になるのがスクリプトです。
GoogleスプレッドシートであればJavaScript、ExcelであればVBAを使います。スクリプトを使えば、ネットワーク機能をはじめとして、様々な機能をプログラミングできます。データはGoogleスプレッドシートに保存したり、取り出したりできるのでデータベースを作ったりする必要はありません。
そうした面倒な部分は、サービス側で提供してくれるという意味で、ローコードプラットフォームでもあるといえます。
ノーコードプラットフォームの生まれた背景
ノーコードプラットフォームはここ数年、海外で急成長している分野になります。
背景として、多くのWebサービスがシステムからサービスを利用できるようにするWeb APIを公開するようになっていること、そしてそれらを組み合わせれば多くの機能が実現できるようになっていることが挙げられます。
例えば、Gmailに届いたお問い合わせをCRMに登録したり、Googleスプレッドシートを更新したデータを、Salesforceに登録して分析するといった流れを、ノーコードプラットフォームを使えば自動化できます。ちょっとした機能を自分たちで開発するのではなく、つなぎ合わせてくれるサービスを使うことでコーディングを行わずに、機能実現が可能になります。
もう一つは、多くのアプリやWebサービスがリリースされる中で、共通点を抽出して、アプリやWebサービスをコーディングなしで実装できるようにしている流れがあります。
共通機能をコンポーネントにして、後はデザインテンプレートを用いることでインスタントなアプリが開発できます。ニッチな機能はありませんが、最大公約数的にコンポーネントが用意されていますので、多くのニーズには答えられるでしょう。これはどちらかといえば、CMSと似た流れといえそうです。
ローコードプラットフォームの生まれた背景
通常のアプリケーション開発では、一般的なプログラミング言語を用いて一から開発を行います。それでは毎回大変なので、共通項を抽出してフレームワークと呼ばれるものが作られます。
フレームワークを使うことで、認証やデータベース操作などの面倒な部分から開発者が解放されます。
こうして、開発はより効率化されていきます。ローコードプラットフォームも同様に、共通した部分や面倒な部分をプラットフォームが実現してくれるところから生まれています。
アプリ開発の文脈においては、AndroidとiOSのプラットフォームを共通化したいというニーズが強くあります。
それぞれ、KotlinやJava、Objective-CやSwiftを使って、それぞれのプラットフォーム向けに開発するのは面倒です。コストや人員も二倍必要になってしまいます。ローコードプラットフォームを用いることで、より少ないコード量で、より大きな生産が可能になります。
利用するのは、プログラマーはもちろんですが、開発スキルがそれほど高くない社内システムの担当者や、プログラミングを趣味程度に行っている非開発職の方も対象になります。
学習コストは一般的なプログラミング言語に比べて低く、開発環境を整える手間がないといった点が特徴になるでしょう。
ノーコードとローコードの違いとは
スマートフォンアプリに注目が集まった頃、Web上で設定するだけでアプリが作れるといったサービスが乱立しました。これらはいわばCMS的なもので、指定したブロックを配置すればアプリになるというものです。
多くのテンプレートがあり、レストランアプリやイベントアプリ、企業のポータルアプリなどを簡単に作成できるようになっていました。しかし、このテンプレートが物足りないと感じても、拡張はできません。
そこでローコードプラットフォームを使うようになります。
ローコードプラットフォームは、ノーコードに比べると圧倒的に手間がかかると感じることでしょう。ローコードプラットフォームでもテンプレートは用意されていますが、そこから先は自分で実装しなければなりません。
ノーコードでは、コーディング量がゼロだったのに比べると、ローコードは少ないとはいえコードを書くのが億劫に感じるのは致し方ありません。しかし、実現したいものを素早く、確実に実装するためにはローコードプラットフォームを使いこなすのが一番です。
ノーコードプラットフォームは、利用目的が限定的になりやすいです。そのため、多くの場合は、企業向けに提供されるようです。自分たちが作りたいと思っているサービスやアプリにぴったり当てはまる場合には、ぴったりです。
また、コードを書くわけではないので、利用する人は非開発職であることが多いです。ローコードプラットフォームの場合はより汎用的な目的で用いられます。また、プログラミングの知識は多少あった方が作りやすいでしょう。
まとめ
アプリを作ってみたい、雰囲気を知りたいという場合には、ローコードプラットフォームから試してみてもいいかも知れません。コードを書かない分、コストも小さく、敷居も低いはずです。それだけで済む場合には問題ありません。
しかし、使ってみて物足りない、もっとこうしてみたいといったニーズが出たらローコードプラットフォームに乗り換えるタイミングかも知れません。その際にはぜひMonacaを使ってアプリ開発にトライしてみてください。