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

ToolJetは内部ツールを構築・デプロイをするためのオープンソースのローコードフレームワークです。

オープンソースなローコード、ノーコードのレビュー第6弾になります。

D&Dでコンポーネントを配置して、データやイベントを関連付けしながらアプリを作成していくフレームワークで、これまでにレビューしたツールだと「appsmith」や「Budibase」に使用感が似ています。

公式サイト
クラウドサービス
GitHub

特徴

1. D&DでアプリケーションUIを作成

UIは用意された35以上のコンポーネントを組合わせて作成していきます。

2. データソースと統合

データーベース(PostgreSQL、MongoDB、MySQL…)、SaaSツール(Airtable、Googleスプレッドシート、Notion...)、REST API、クラウドストレージ(AWS S3、Google Cloud Storage…)等様々な形態のデータをリンクさせることができます。

統合できるサービスの一覧

類似のツールである「Budibase」のようにフレームワーク内でデータベース上のテーブルを作成したり、変更するといったことは対応していません。別途ツールの外でデータソースを用意する必要があります。

3. 開発者向け

各所でカスタムJavaScriptが記述できます。

4. コラボレーション機能

開発中の画面にマーカーとコメントを残すことができます。

試してみる

これまでのレビューと同じく「改正電子帳簿保存法」に対応した電子証票を管理するアプリケーションを作ります。

基本的な操作はチュートリアル、公式サイトご参照ください。

できたもの

リストビュー

新規作成

詳細、変更、削除

2. 検索

検索機能にはテーブルに付属しているフィルター機能がそのまま採用できるかと思っていたのですが、アプリの要件に必要な日付や金額の範囲指定ができないため今回は採用とはなりませんでした。

類似ツールと比較

データベースは内蔵ではないので別途ツール外でテーブルの作成の手間が必要でしたが、それ以外はある程度使っていくとサクサク作成が進みます。

Inspectorさえ押さえておけば、JavaScriptはあちこちで記述できるのでそれほど悩まずに作れるのではないかと思います。

Inspector↓

 

ページ管理

アプリケーション内に複数ページを作成する方法は探した限りないようなので、複数の画面を使いたい場合はTabで制御する、ToolJet内で作成した他のアプリケーションへリンク等で代替になるのかなと思います。

類似ツールのappsmith、Budibaseは複数ページ対応で、BudibaseはURLまで意識して作成できます。

↓(Budibase開発画面)

デザインの自由度

コンポーネントの配置

D&Dで自由な場所にコンポーネント配置することができますが、それとなく近くのコンポーネントの位置を意識した場所に配置されようとします。同じD&Dで画面を作るappsmithは配置は自由ですが、他のコンポーネントの近くに移動させると連動してほかのコンポーネントも移動したり、サイズ調整されたりするなど、同じD&Dでも操作感が若干異なります。

Buibaseはコンポーネントの親子関係で配置していきます。D&Dのような直感的な操作感ではないですが、コンポーネント間の間隔はmarginで指定でき、ズレにくく整った画面が作れます。ただ、コンポーネントの配置とコンポーネントのアクションに依存関係があるのが、便利でもあり、不便でもあります。

コンポーネントのスタイル

必要そうなスタイル(TextSize*1、TextColor、BackgroundColor 、Visibility、Disable、BorderRadius等)の指定はたいていできます。appsmithやBudibaseに比べると指定できる項目が少なめですが、凝った画面にする予定がないのなら十分ではないかと思います。自由にCSSを記述したい場合はカスタムCSSのあるBudibaseを使うと良いかもしれません。

*1 それほど重要ではないですが、なぜかTextSizeはTextコンポーネントぐらいしか指定できるところがなさそうでした。需要がなさそうな機能はできるだけ作らない方針なのかもしれません。そのせいかどうかはわかりませんが、ToolJetの開発画面は他のツールと比較するとシンプルで見やすいなと思いながら使っていました。

BudibaseのカスタムCSS↓

カスタムな処理の自由度

ToolJetでは、Query等データソース取得時のスクリプトへの埋め込み、データソース取得後の加工、コンポーネントの項目(表示テキスト、コンポーネントの表示ロジック)等といった箇所で任意のJavaScriptが記述可能です。

ボタンなどコンポーネントへのアクションは、「モーダルを開く」「モーダルを閉じる」「クエリの実行」等から選択し、複数関連付けできます。

appsmithでは、アクション実行後の成功、失敗で追加の処理が記述可能です。ただし、ひとつのイベントに対して関連付けできるアクションは1つです。

他のツールにはない機能として、任意のオブジェクトが定義でき、各所でそのオブジェクトを使用できる機能があります。

↓作成したオブジェクトのファンクションはボタンなどのイベントと関連付けが可能

BudibaseはToolJetのようにイベントを複数関連付けすることができます。

関連付けできるアクションに、値による処理の続行・停止の制御(Continue if/Stop if)があります。

任意のオブジェクトは定義できませんが、オートメーション機能として、データ作成、変更、削除等のイベントをトリガーに任意の処理が記述できます。

所感

全体的にToolJetは機能がシンプルです。そのおかげか、一から画面を作成するにあたってあまり悩むことなく進めることができました。(Budibaseで初めて一から画面作成するのは慣れるまで結構大変でした。)

公式サイト見る限りあまりシンプルを推しているわけではないみたいですが、ローコード的には必要十分ではないかと思いました。

さいごに

ToolJetはクラウドサービスも展開しています。
クラウドサービス
使用の制限はあるものの無料のプランも用意されています。
料金体系

また、弊社では導入支援も行っております。気になる方は問い合わせください。

適切なツール選択

あくまでレビューのためサンプルで作成してきた「改電子帳簿保存法」に対応した電子証票を管理するアプリですが、今のところNocoDBが相性が良く、一番簡単に必要な機能を満たしてくれていました。

作成物の特徴にあわせて適切なツールを選択できれば開発工数の削減はできますが、ノーコード・ローコードとはいえ、いくつも比較検討するのは工数がかかります。
また、不適切なツールを選択すると余計にコストがかかってしまう恐れもあります。

「どのツールが自分の作成物に適しているのか」

ツールの選定でお悩みでしたら、お問い合わせまでご連絡ください。

追記

オープンソースなローコード・ノーコードのサービスをはじめました。
詳細は以下をご覧ください。

オープンソースなローコード、ノーコードのサービスメニュー

最近のエントリー

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)

エントリを書くこと