エンジニアにこそ知って欲しいーNoCodeサービスの衝撃

# はじめに
エンジニアの方々なら、何となく耳にしたことのあるであろう「NoCode」という言葉。
日本ではまだそれほど盛り上がっていない印象のNoCode界隈ですが開発現場を一変させてしまう程のポテンシャルを持つ強力なサービスに育ってきています。

私はこれまでNoCodeとは無縁な開発に従事してきましたが、NoCodeの現状を知り、これまでの凝り固まった常識が揺さぶられ文字通り頭をブン殴られる程の衝撃を受けました。（「プログラミング教育とかどうなるんや！」「アプリ開発の敷居下がりまくりやん！」と驚愕しました [^1]）

[^1]: 実際はプログラミング教育が必要なくなるなんてことは無く今後も当然に必要ですが、コードを書く技術は相対的に重要度が下がってしまうのかもと思ったりしています。

というわけで、NoCodeサービスのうち評価の高い「Adalo」というサービスを取り上げ、何がそんなにすごいのか**「敢えて淡々と」**紹介したいと思います。


# Adaloとは
![スクリーンショット 2020-08-19 14.07.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/b411bfeb-7d62-2a1c-9ba1-d4fd0156eb61.png)
(参照元：https://www.adalo.com/)

AdaloとはNoCodeでスマホアプリ、Webアプリを開発できる米Apto Labs社が提供するプラットフォームです。
Adaloのサービス開始はなんと2018年（何かと比較されるBubbleは2012年）。

日本ではAdaloで開発したSPOTTOが株式会社For A-careerに買収された(※)ことが話題になりましたが、たった二年という短期間で実用に耐えられるサービスになっています。

※ https://descartes-search.com/media/spotto/

一部NoCodeサービスではPWAしか作成できませんが、Adaloではネイティブアプリの作成（iPhone/Androidとも）が可能です。



## NoCodeサービスは何が優れているのか（Adaloの場合）

### 開発環境構築が不要

![スクリーンショット 2020-08-19 14.51.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/0137963d-93ba-3418-65ad-80985e293d97.png)
（Adaloの開発画面。テンプレートを使用せずアプリを作成した直後の画面を表示。ログイン機能がデフォルトで実装されている。）

Adaloはブラウザ上でアプリを作成できます。
アプリ構築時に必要な画像データやテーブルなどもAdaloのサービス上に保持されるので、アカウントを作ってインターネットに接続できる環境さえあれば、即開発をスタートできます。

大規模開発に有りがちな「環境作るのに1日かかった」なんてことが無く、エンジニアで無い方でも簡単に始めることが出来ます[^2]。

[^2]: ある意味参入障壁ダダ下がりですね。


### テーブルの作成、データ投入がとても簡単
テーブル（collectionとAdaloでは呼ぶ）作成や
データの投入は画面左のメニューの「Database」から数ステップで完了します。

**【テーブル作成例】**
![01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/17e927dc-f558-76de-adfc-60c0dfe79764.gif)


**【データ投入例】**
![02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/06a57ba2-9f51-b10a-86fe-cf688a1ee840.gif)

もちろん、CSVファイルをアップロードしてまとめてデータを登録したり、登録済みデータをダウンロードすることも可能です。
また、APIをコールしてテーブルにデータ格納することも出来ます。


テーブル間のリレーションを定義する場合も左メニューのDatabaseから数クリックで完了します。

**【リレーション作成例】**
![03.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/88a6a913-81b0-96ac-39fa-b1037c20f7dd.gif)


### 画面の作成及びテーブルとのリンクもとても簡単

AdaloではUIの作成は基本的にメニューから使いたいコンポーネントを選び、ScreenにDrag&Dropするのみで完了します[^3]。

[^3]: もちろんUIをカスタマイズしたり、コンポーネントを組み合わせてListなどを自作する場合は別です。

テーブルに以下のデータが格納されているとします。
![スクリーンショット 2020-08-19 17.27.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/0b776bc5-6e50-489b-515c-a65a4a268544.png)



この時、
画面にコンポーネントを設置し、上記テーブルの値を表示させる場合、
・画面にコンポーネントを配置する。
・コンポーメントとテーブルを紐づける
・表示させるテーブルの項目を選ぶ
という手順で行います。


**【画面にコンポーネントを配置させ、データを表示させる例】**
![04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/3d71c853-3a19-9549-a57f-d13389accaaa.gif)

画面の動作は画面右上の「Preview」から確認できます。
**【実際に動かしてみた画面】**
![06.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287413/52cf8c82-3f8d-db42-35f8-2cbace3ea7a3.gif)

たったこれだけ！
1分もかからずに画面にデータを表示させることが出来ました！

登録、削除など所謂CRUDの画面についても上記と同様の手順で簡単に作成できてしまいます[^4]。

[^4]: 呆れる程簡単なので、MVP作りたいスタートアップにはとっても良いサービスですね。

これまで開発案件に参加した経験がある方なら、
この開発スピードがどれだけ異常なのかご理解頂けると思います[^5]。

[^5]: 個人的な感覚だとこれまでの10倍は生産性が高いと感じています。

しかも操作は非常に簡単。
パワポを作る感覚で画面を作成出来、
データ連携も数クリックで完了。

コードを一行も書かずにここまで実現できてしまいました。

「うーん、いまいちまだ凄さがわからない・・・」という方、
こちらは如何でしょうか。


[【adalo】Sendinblueを利用してアプリからメールを送信する]
(https://qiita.com/kumakichiwel/items/6a572f35e991e3289d9b)
→アプリから外部APIをコールするものUIからの設定でOK！数ステップで簡単！

[【adalo】Favoriteボタンを５分で実装する](https://qiita.com/kumakichiwel/items/69653f33eeb2a720615c)
→いわゆる「いいね！ボタン」だって、５分以内で実装できてしまいます！しかもめちゃくちゃ簡単です！


# 最後に

Adaloの概要をざっと見てきましたが如何でしょうか。

勿論大量データを扱う場合や複雑なビジネスロジックを組み込みたい場合API化は必要でしょうし、Adaloが用意するコンポーネントだけで充足出来ない場合はReactNativeでのカスタマイズ[^5]も必要になるでしょう。

[^5]: AdaloのコンポーネントはReactNativeで開発可能

このサービスだけで完結する開発案件はまだまだ少数であるかと思います。

しかし、それを割引いたとしても**NoCodeサービスの圧倒的な生産性や習得の容易さ**は開発現場にとって極めて魅力的なサービスではないでしょうか。

Gartner曰く
「2024年までにアプリ開発の65%がLowCode（NoCodeでない事に注意）により行われる[^6]」
と予想しているそうです。

[^6]: https://www.mendix.com/resources/gartner-2019-magic-quadrant-for-enterprise-low-code-application-platforms/

今後、開発の現場はNoCodeもしくはLowCodeへとシフトしていくものと思われます。

少なくとも（私の様な）開発に従事する方はNoCode、LowCodeに注目しておいた方が良さそうです。