はじめに
はじめまして!CN2 ICTD-2所属のこぐです。
好きな色は水色です。
私は2022年に新卒でAMBLに入社し、現在は情報セキュリティの管理・監査業務の効率化を図るために、セキュリティ情報の収集・調査・分析・可視化をするシステムを開発するプロジェクトに参画しています。このシステムの開発にMicrosoft社のノーコード・ローコード開発ツール群であるPower Platformを使用しており、様々な発見があったので、本記事では、ノーコード・ローコードのメリットやデメリットと、Power Platformについてくわしくご紹介し、実際に簡単なアプリを作成する工程をご紹介したいと思います。
ノーコード・ローコードとは?
「ノーコード」・「ローコード」という開発手法は、DXの普及とともに確実に市場を広げています。ITRの調査によると、国内のローコード/ノーコード開発製品・サービス市場は、2026年度には1,300億円を上回り、2021年度の2倍を超える市場規模に拡大すると予測されています。(参照:ITR ローコード/ノーコード開発市場2023)
従来の技術者がソースコードをコーディングする開発手法に対して、ノーコードはソースコードを一切使用せずに全てテンプレートなどが決まったアプリを使って開発する手法、ローコードは比較的少ないソースコードで開発する開発手法です。
ノーコードのメリット・デメリット
まずノーコードのメリット・デメリットについて紹介します。
メリット
誰でも開発可能
ソースコードを書く必要がないため、プログラミング言語を知らない人でも開発することが可能です。
開発期間の短縮・開発コストの削減(生産性・品質向上)
用意されている機能やパーツを組み合わせるため、スクラッチ開発に比べて素早くシステムやアプリを開発することができ、バグの発生軽減による品質向上や開発期間の短縮、開発エンジニアのコスト削減が可能です。
デメリット
大規模開発には不適
ノーコード開発ではあらかじめ用意された範囲に従って開発を行う必要があるため、大規模システムで必要とされる複雑な要件に対応することが困難です。
機能の自由度や拡張性は低い
用意された範囲以外の機能拡張は行えないため、プラットフォーム側で機能拡張が提供されていない場合は、拡張することが出来ません。
ローコードのメリット・デメリット
次にローコードのメリット・デメリットを紹介します。
メリット
汎用性と拡張性が高い
ノーコードに比べコーディング可能なため、ノーコードよりは自由な機能を実装することが可能です。
既存システムや外部システムと連携可能
あらかじめ用意されている機能やパーツとコーディングを組み合わせることで、社内システムや外部システムと連携するシステムを構築することができます。
デメリット
ある程度のプログラミングスキルは必要
カスタマイズする場合やリリースした後の運用中にカスタマイズ部分の改修や機能追加要件がある場合、コーディングすることになるため、プログラミングスキルが必要となります。
ブラックボックス化
プラットフォームで提供される機能の内部処理は、利用者から見えないことが多く、仕様変更に伴う処理結果の検証が困難です。
機能の制限
ノーコードに比べ拡張性は高いですが、提供パーツの組み合わせによる機能制約があります。特にデザインの拡張性においては、開発要件を100%叶えることが難しい場合があります。
このようにノーコード・ローコードは、簡単に一定水準までの機能を持つシステムやアプリを開発することは可能ですが、その水準以上の拡張性に欠けるという特徴があります。
Power Platformとは?
ノーコード・ローコードに比べ、「Power Platform」という言葉を聞いたことがある方は、まだ少ないと思います。実際に私もこのプロジェクトに参画する前は、名前も知りませんでした。
Power PlatformはMicrosoft社のノーコード・ローコード開発ツール群です。ExcelやPower Pointと同様の感覚で、システムやアプリを作成することが可能です。基本的にノーコードでの開発が可能ですが、プログラミングスキルがあれば、より高度なシステムやアプリを作成することも可能です。
データソース
Power Platformのデータソースとして、Microsoft製品(Excelファイル、SharePointリスト)や外部製品(MySQL、PostgreSQL、Oracle、RedShift)と連携して使用することが可能です。さらにPower Platformに用意されているデータベースであるDataverseを使用することができます。Dataverseは特殊なデータベースで、従来のSQL言語を知らなくてもGUI上でリレーショナルデータベースを構築することができます。
DataverseはAzure SQL、Blob Storage、Cosmos DBで構成され、コンテンツの内容に応じてそれぞれのサービスに振り分け、データが自動で保存されます。リレーショナルデータベースは、Azure SQLで構成され、添付ファイル等はBlog Storage、監査ログ(テーブルの変更履歴)はCosmos DBで管理されます。
Power Platformの3つのサービス
ここで、Power Platformを構成している3つのサービスを紹介します。この3つのサービスは、実際に私が担当するプロジェクトで使用しているサービスです。
Power Apps
プログラミングの知識や技術、知識がなくても業務効率化に役立つシステム、アプリを作成できるサービスです。Power Appsの中には、画面のレイアウトや関数の埋め込みに関して自由度が高い「キャンパスアプリ」と、テンプレートを使用してスピーディーに作成することができる「モデル駆動型アプリ」の2種類があります。
Power Automate
日々の業務の自動化に特化した機能をもつサービスです。メールの送受信、添付ファイルの保存、フォームの作成、未記入の人へのリマインド、ファイルに対しての操作の自動化、外部システムへの連携など、様々なことを自動化することが可能です。実行フローをノーコードで作成するため、プログラミングスキルがなくても作成することができます。
Power BI
データを収集・結合・分析して、グラフやダッシュボードといった形にアウトプットが可能なサービスです。簡単な操作でデータをまとめ、分析することができるので、さまざまなデータをビジネスに活用することが期待できます。
Power Platformのこの3種類のサービスを組み合わせることによって、様々な機能を作成していくことができます。
事例:Power Platformを使用した「ToDoリストアプリ作成」
ここからは、実際にPower Platformのサービスの一つである「Power Apps」を使用して、簡単にToDoリストアプリを作成してみます。作成時間の目安は、1時間~2時間ほどです。
Power Apps 開発者プランの申し込み
まずPower Appsを使用するためにはPower Appsのライセンスが必要です。今回はPower Appsの開発者プランを使用します。開発者プランは容量制限はありますが、Power AppsとDataverseが無期限かつ無料で使用できるサービスなので、Power Appsを試してみたいという方にオススメです。
開発者プランの登録するためにはOffice 365 E5のアカウントが必要です。お持ちでない方は、Microsoft社が提供するこちらで「無料試供版」のアカウントが作成できます。ここで入力するメールアドレスは個人のもので大丈夫です。手順に従い必要事項を入力していくと「~~~@XXX.onmicrosoft.com」というメールアドレスが発行されます。
そしてこちらの「無料で始める」から開発者プランに登録します。最初のメールアドレス入力は先ほど取得したメールアドレスを使用します。
登録するとPower Appsのホーム画面が表示されます。ここで、事前準備として画面右上の環境で「~’s Environment」を選択します。今後はこの環境にテーブル登録やアプリ作成を行います。
データベース作成
次に、アプリから入力されたデータのデータベースを作成します。今回は前述した「Dataverse」を使用します。このDataverseを元にアプリを作成するテンプレートがあるため、先にDataverse上でテーブルを作成しておくと簡単にアプリを作成することができます。
まずDataverseからテーブルを選択し新しいテーブルを作成します。表示名は「ToDoリストアプリ」とします。Dataverseのテーブルに用いるスキーマ名は「todo_list_app」にします。プライマリ列は「Name」から「No」に変更します。
次に作成したテーブルを開き新規から列を選択し、必要なカラムを追加していきます。今回は下記のようなカラムを追加します。下記以外の列項目は全てデフォルト設定で大丈夫です。
表示名 | データの種類 | 書式 | スキーマ名 |
タイトル | 1行テキスト | テキスト | title |
内容 | 複数行テキスト | テキスト | content |
期限 | 日付と時刻 | 日付と時刻 | deadline |
完了ステータス | はい/いいえ | – | status |
また、Noは自分が入力するのではなく、自動で番号を付与する、かつ必須でない入力項目にしたいと思います。理由としてはNoが任意入力の場合、同一の番号が振られる可能性があり、同一の番号が振られた際に、該当のレコードを絞り込むことができないからです。スキーマから列を選択し、Noを選択し編集をクリックします。このように変更します。
ここで仮のデータを一つ追加します。仮に以下のような形で登録するとこのような画面になります。Noは自動付与なので空白にしておいてください。
No | タイトル | 内容 | 期限 | 完了ステータス |
(空白) | テスト | テスト | 2022/12/27 12:00 | いいえ |
これでデータベースの準備は完了です。
アプリ作成
作成したDataverseを元にアプリを作成していきます。まずホームからDataverseを選択します。
新しい接続からDataverseと接続します。
テーブルの中から作成したテーブルを選択します。
すると自動的にリスト画面、詳細画面、編集画面があるアプリが表示されます。
ここから表示するカラムを変更していきます。アプリ画面の丸の部分をクリックしフィールドの編集をします。
次に詳細画面も同様にカラム表示変更を行います。左下を「DetailScreen1」に変更しフィールドの編集からフィールドの追加でタイトル、内容、完了ステータス、期限を追加します。また、Noを削除し順序を変更しこのような画面にします。
さらに編集画面も同様に編集します。
ここで一旦アプリを起動してみましょう。右上で保存してから再生を押します。名前はToDoリストアプリにします。自由にアプリを触ってみてください。
このままではToDoの追加のみの機能しかないので、完了したものはチェックできる機能を追加します。まず一つ目のアイテムを選択した状態で左の+からチェックボックスを選択すると各アイテムにチェックボックスが自動で追加されます。
テキストは不要なので削除し、チェックボックスのサイズを変更してこのように配置します。
このチェックボックスと用意した完了ステータスが対応するように設定していきます。まずアプリを開いたときデフォルト値が対応するように、左上からDefaultを選択しThisItem.完了ステータス
を入力します。
次にチェックボックスにチェックが入ったときに完了ステータスを「はい」に変更する設定をします。同様に左上からOnCheckを選択し、Patch(ToDoリストアプリ,First(Filter(ToDoリストアプリ,ThisItem.No=No)),{完了ステータス:'完了ステータス (ToDoリストアプリ)'.はい})
を入力します。
同様にOnUncheckをPatch(ToDoリストアプリ,First(Filter(ToDoリストアプリ,ThisItem.No=No)),{完了ステータス:'完了ステータス (ToDoリストアプリ)'.いいえ})
に変更します。これでチェックボックスと完了ステータスが適応しました。
また、チェックボックスを押すと詳細画面に遷移することを避けるため、アイテム全体をクリックした時に画面遷移するのではなく、>を押した時に遷移するように変更します。一番上のアイテムを選択した状態で左上のOnSelectをクリックします。現在入っている式を切り取ります。
次に>のOnSelectに先ほど切り取った式を張り付けます。
これで>を押したときのみ画面が遷移するようになりました。
そして、完了したものと未完了のものを切り替えられるようにします。まず上のToDoリストアプリをToDoに変更し左からボタンを2つ追加しこのようにボタンを配置します。
動作としては左のボタンを押したときは未完了のもの、右のボタンを押したときは完了のものが下に表示されるようにします。まず各ボタンを押したときにbuttonという変数を切り替えるように設定します。左のボタンを選択しOnSelectにSet(button,"いいえ")
を入力します。右のボタンにはSet(button,"はい")
を入力します。次にアイテムを選択しItemsを上から下SortByColumns(Filter(Search([@ToDoリストアプリ], TextSearchBox1.Text, "XXXXX_content","XXXXX_no","XXXXX_title"),If(button="いいえ",完了ステータス='完了ステータス (ToDoリストアプリ)'.いいえ,完了ステータス='完了ステータス (ToDoリストアプリ)'.はい)), "XXXXX_content", If(SortDescending1, Descending, Ascending))
へ変更します。(XXXXXは環境によって変わります)
また、各項目を編集することで全体テーマの色や各ボタン、文字、アイコンなどを自由に変更することが可能です。さらに公開しPower Appsのアプリをインストールすることで自分のスマートフォンでアプリを使用することができます。
さいごに
本記事では、私が実際に日々の業務で使用しているPower Platformについて紹介させていただきました。新人研修でコーディングを学習した後にノーコード・ローコードであるPower Platformを使用した感想としては、画面レイアウトの作成・編集や簡単な処理を行う上では簡単にアプリを作成することができるので、便利だなと思いました。
しかし、複雑な処理を行う際には正直コードで書いた方が見やすく簡単に実装できるなと思った部分もありました。また、Power Platformで自分が希望する機能を追加するために、Microsoft公式ページやインターネット上の記事を参考にすることが多かったです。
実際に今回の記事を作成するに当たって、業務で主に使っているモデル駆動型アプリではなく、キャンパスアプリを使用したので、分からないことが多々ありましたが、Microsoft公式ページで概ね解決することができました。
皆さんも日々の業務の中で効率化・可視化したいことがあれば、Power Platformを使用してみてはいかがでしょうか。この記事を読んで、もし使ってみたいと思った方がいれば嬉しいです!最後までお読みいただきありがとうございました!
参考文献
- ノーコード・ローコードとはそもそもなに?|5分でわかる基礎情報
https://www.softbanktech.co.jp/special/blog/it-keyword/2022/0016/ - Power Platform とは、4つのサービスの機能とメリットなど
https://www.softbanktech.co.jp/special/blog/it-keyword/2022/0004/
あなたも一緒にAMBLで働いてみませんか?
AMBLは事業拡大に伴い、一緒に働く仲間を通年で募集しています。
データサイエンティスト、Webアプリケーションエンジニア、AWSエンジニア、ITコンサルタント、サービス運用エンジニアなどさまざまな職種とポジションで、自分の色を出してくださる方をお待ちしています。ご興味のある方は、採用サイトもご覧ください。
●AMBL採用ページ
-メンバーインタビュー (1日の仕事の流れ/やりがい/仕事内容)
-プロジェクトストーリー (プロジェクトでの実績/苦労エピソード)
●募集ページ
プリセールス/ エンジニア/ クリエイター/ データサイエンティスト /営業・コンサルタント /コーポレート /サービス企画 /教育担当