ローコードツール「OutSystems」はエンジニアの武器になるか?TODOアプリ開発で見えたメリットと使い所
はじめに
こんにちは、株式会社メンバーズの秋田です。
Webエンジニアとしてこれまで開発経験を積んできましたが、初めてローコード開発ツールOutSystemsを使ってみました。
OutSystemsの初心者として開発方法や感想を書いておきます。
この記事ではTODOアプリの作成手順を通じて、OutSystemsで素早くアプリを開発できることを分かってもらえると思います。
OutSystemsとは?
OutSystemsとはITエンジニア向けのローコード開発ツールです。
画面やその裏で動くロジックをドラッグ&ドロップで作成できます。画面ではCSS、ロジックではfor文やエラーハンドリングといった知識が必要であり、エンドユーザー向けのツールよりも高度な設定が可能です。
開発は「Service Studio」というOutSystems専用の統合開発環境で行います。
画面作成、ロジックの記述、デバッグ実行、デプロイまでこの1つのソフトで実行可能です。逆に言うと、一般的なWebシステム開発で用いられるVisual Studio CodeやGitHubは使う必要がありません。
デプロイすると、クライアント側はReact、サーバー側はC#のコードに変換されます。
実際の開発プロセス
TODO管理アプリを例に、OutSystemsでの開発イメージを共有します
いずれの操作もService Studio上で実行可能です
DB(データモデル)の構築
テーブルやカラムを作成します。TODOアプリなので、タイトル、ステータス、期限日を設けることにします。
OutSystemsではテーブルはEntity、カラムはAttributeと呼びますが、一般的なWebシステム開発者に理解しやすいように以降の説明ではテーブル、カラムと表記します。
カラム名を入力すると、名前に応じた型が自動的に設定されます。たとえば、 TitleはText、IsDoneはBooleanといった具合です。
Labelに論理名を登録しておくと、フロントエンドで入力フォームを作成する際にラベルに反映されるので便利です。Is Mandatoryで必須/任意も登録できます。
カラムの設定
また、データを引数で渡せばCRUD操作を行えるメソッドxxxTodo(例:CreateTodo)も自動的に作成されます。引数(Source)としてTodoテーブル型の値、返却値(Id)として作成したレコードのIdが返されることがわかります。これを保存ボタン押下時に呼び出せば登録処理が簡単に書けます。
今回はOutSystems内にDBを作成しましたが、外部DB(PostgreSQLなど)を利用することも可能です。
画面(UI)の作成
TODO登録フォームを作成します。
といっても、テーブルを画面にドラッグ&ドロップするだけで、以下のような登録フォームができます。
DBをD&Dするだけでフォームが完成
上記の画面のように自動的に、タイトルはテキストボックス、完了はチェックボックス、期限日は日付選択になります。
これは、OutSystemsがDBカラムの型に応じて適切なUI部品を自動的に選択してくれています。タイトルはDBカラムの設定で必須にしているので、未入力の場合はバリデーションエラーが表示されます。
次に、一覧画面を作成します。
こちらもテーブルをドラッグ&ドロップすると、表形式の一覧画面が作成されます。ソートやページングもデフォルトで用意されています。
DBをD&Dするだけでここまで完成
上記のようなデータ取得についてはOutSystemsが自動的に処理を作成してくれるため、開発者はドラッグ&ドロップするだけで一覧画面上でデータを表示できます。
登録ロジックの実装
画面が完成したので、データを登録するロジックを作ります。
OutSystemsではロジックも条件分岐の部品などをドラッグ&ドロップして作成します。
処理の実行場所としてはクライアント側とサーバー側が用意されています。一般公開したくない処理は隠蔽することが可能です。
このアプリでは、クライアント側では保存(Save)ボタン押下時に次のようなロジックを実行します。
クライアント側の処理
登録フォームのバリデーションチェック後(Form1.Valid?)、フォームの入力内容を引数に渡してサーバー側の登録処理RegisterTodoを呼び出します。
登録成功後、「TODOを登録しました」というメッセージを表示して、一覧画面Mainflow/Homeへ遷移させます。
サーバー側ロジックのRegisterTodoでは、DBのTodoテーブルへの登録処理を実行します。
引数In_Todoでは登録するデータを受け取ります。データの型(右下のData Type)としてTodoテーブルを指定しているので不整合を防げます。
Todoテーブルへの登録処理は、OutSystemsで用意されたレコード作成ロジックCreateOrUpdateTodoを利用すれば簡単に作成できます。
開発者は登録したいレコード(右下のSource)として引数のIn_Todoを指定すればOKです。
デプロイ
アプリは緑色のPublishボタンをクリックすればデプロイされます。簡単ですね!
触ってみた感想
Webエンジニアとして初めてOutSystemsを触ってみて、新規事業のMVP開発や業務システムの迅速な立ち上げにおいてこの開発スピードは強力な武器になると感じました。
今回作ったようなTODOアプリでは、スクラッチ開発よりもローコードでの開発の方が明らかに早く作ることができました。テーブル定義を作れば、画面やデータ取得・登録処理を簡単に作れました。多少の項目追加や仕様変更であればすぐに対応できそうでした。
実際の業務アプリではTODOアプリと比較してロジックが複雑になり、仕様変更などによる影響範囲の見通しが悪くなることも考えられます。OutSystemsでは「Find Usages」による呼び出し箇所検索や、モジュール間の依存関係解析、さらに「BDD Framework」による自動テストなど開発者に有益な機能が備わっています。
手続き型ロジックの弱点を統合ツールが補完してくれるため、スクラッチ開発の設計知見を持つエンジニアがその特性を活かせる領域で活用することで、最小限のリードタイムで価値を生み出せるプラットフォームだと感じました。
参考サイト
OutSystemsに興味を持たれた方は、無料で開発できたり、公式の教材も用意されていますので試してみてください。
OutSystems公式サイト
専門カンパニーのご紹介
メンバーズの「ラピッドスケールカンパニー」では、ローコードやアジャイル、UXデザインを駆使し、お客様の自律した内製開発・DXを伴走型でご支援しています。
カンパニーの取り組みや詳細については、ぜひホームページをご覧ください。
この記事を書いた人
What is BEMA!?
Be Engineer, More Agile


