ハードウェアからサーバ・アプリまでワンストップで開発

 ノーコード・ローコード

mayumi

”amplication"

公式サイト:https://amplication.com/

Github:https://github.com/amplication/amplication

オープンソースなローコード、ノーコードまとめのリストから気になったものをレビューしています。今回はその第1弾です。

こちらはイスラエル発のWebアプリケーション開発者向けのローコードツールです。

つくりたいアプリケーションの「データモデル」と「ロール」、「権限」をツール上で定義すれば

  • 簡易な機能

  (データモデルのCRUDと権限管理、認証機能等)

  • 簡易UI
  • REST API
  • GraphQL
  • 環境構築のdockerファイル

を自動生成するというものです。

 

生成したアプリケーションは

Server

NestJs / Prisma / PostgreSQL / Passport / GraphQL / Swagger UI / Docker

Client

ReactJS / Axios / Formik

で構成されています。

amplicationはクラウドサービスも行っています。

http://app.amplication.com/

ベータ版の間はFreeだそうです。(2022/3/24)

簡単なアプリを作ってみる

商品(Product)を参照、登録、変更、削除、検索だけ行うアプリを作ってみました。

エンティティ

UserはAmplication上でアプリを定義するとフィールドも含めて自動で作成されます。

ロール

商品(Product)エンティティに対する権限

ロール 参照 作成 編集 削除 検索
Admin
User ×
Guest × × ×

アプリの作成

amplication上でのアプリの作成手順です。アプリの作成はコマンドラインツールもあります。

参照:https://docs.amplication.com/docs/first-app

1.アプリケーションの作成

1-1. "New app"をクリック

1-2. "Start from scrach"を選択

今回はスクラッチにしました。

1-3. アプリ名、説明、カラーを設定

2. データベース名の設定

2-1.データベース名を入力します。

3.エンティティの作成

3-1.エンティティ名を入力

2-2. "Add field"からフィールドを追加します。

2-3.必要に応じでフィールドの項目を変更します。

3. ロールの作成

3-1. "Add role"に追加するロール名を入力します。

3.パーミッションの設定

3-1. Entitiesをクリックします。

3-2.パーミッションを設定するエンティティをクリックします。

3-3. "Permissions"からEntityに対する操作をどのロールに許可するか設定します。

4. コミット&ビルド

ここまで設定したものの変更を確定します。”Commit chages & build"をクリックします。

デプロイ

参照: https://docs.amplication.com/docs/deploy

1. 生成したプロジェクトをダウンロード

展開したデータ

2. セットアップされた環境で展開

※node,npm,dockerのセットアップされている必要があります。

3. docker-composeコマンドの実行

docker-compose up

生成されたアプリ

デプロイすると「http://localhost:3001」でサービスにアクセスできるようになります。

画面

ログイン

初期ユーザー「admin/admin」でログインできます。

ログイン

ログイン後(ホーム)

エンティティの管理(User)

ユーザーを何件か登録した状態。

エンティティの管理(Product)

API ドキュメント (Swagger)

http://localhost:3000/api/

graphQL

http://localhost:3000/graphql

パーミッション

作成権限のないユーザーでProductを作成しようとしたところ。SAVEがクリックできないようにされています。

総合

使いやすさ ★★★☆☆
技術要素の要求度 ★★★★★
カスタマイズ性 ★★★★★
分類 ローコード

認証機能やパーミッションの設定の面倒なところも作ってくれるのは便利ですね。

使い勝手は開発者を前提としていれば難しいことはなさそうです。好みがあえば気に入る方もいるのではないかと思います。