1. モバイルアプリ開発機能
OutSystemsのローコードプラットフォームでは、4つの主要なカテゴリに対応する機能を活用してエンタープライズレベルのモバイルアプリケーション開発を行えます。
- モバイルアプリ: ユーザーのスマホにインストールできるアプリです。デバイスのセンサー、オフライン機能、Android(APK)とiOS(IPA)のネイティブユーザーエクスペリエンスに、単一のIDEとビジュアル言語でアクセスできます。
- プログレッシブWebアプリ: モバイルブラウザからアクセス可能なアプリです。インストールする必要がなく、様々なデバイスやブラウザにシームレスに対応できます。
- UI/UX: ユーザーに向けて表示され、タスクの実行や商品の注文などの操作を可能にするモバイルアプリの要素です。
- モバイルのフロントエンドとバックエンド: OutSystemsプラットフォームや業界標準ツール(XCode、Android Studio、Visual Studioなど)でそれぞれのネイティブ言語を使用して開発されたカスタムネイティブモバイルアプリをサポートします。
目次
クロスプラットフォームモバイルアプリ開発の簡素化
OutSystemsでは、iOS/Androidデバイスにデプロイして動作させることができるモバイルアプリを開発できます。こうしたアプリは、統一コードベースを使用して異なるフォームファクタに自動で対応し、一貫性を保ちます。そのため、クライアント側のロジックとローカルデータストレージの実装、UIとフロントエンドコードの作成が1回で済みます。各デバイス向けにコードベースを変更する必要がなくなるのです。
OutSystemsプラットフォームはこうした効率的なプロセスの実現に向け、最適化されたレスポンシブなJavaScriptアプリケーションを、デバイス、オフラインデータ、ロジックとのあらゆるインタラクションに対応するネイティブシェルでラッピングする形で高性能アプリケーションを生成します。
OutSystemsでネイティブモバイルアプリを作成する場合、iOSアプリの開発にMacは必要ありません。また、Android向けに開発する場合もJavaやAndroid Studioをインストールする必要はありません。アプリを構成し、キーまたは証明書を追加してボタンをクリックするだけです。必要とされるコンテンツやプラグインすべてを含むAndroid用およびiOS用ネイティブビルドの作成は、プラットフォームで処理されます。OutSystemsのネイティブアプリはApache Cordovaフレームワーク上に構築されるため、開発者はアプリの様々なネイティブデバイス機能にシームレスにアクセスできます。操作は、プラグインのGitリポジトリを参照するだけで完了します。
アクセス可能な機能には、ジオロケーション、カメラ、通知、バーコードスキャナ、ビーコンなどがあります。これはOutSystemsの言語がシンプルだからこそ可能になるものです。開発者が使用できるプラグインには3つのタイプがあります。
プラットフォームでサポートされているプラグインはOutSystems Forgeで入手可能であり、OutSystemsの認定と全面的なサポートを受けています。
コミュニティでサポートされているプラグインはOutSystemsコミュニティのメンバーがForgeにアップロードしたものであり、ベストエフォート型のサポートも提供しています。
必要なプラグインがForgeにない場合は、独自のプラグインを作成できます。利用可能な数千種類ものCordovaプラグインの中から必要なものを選択し、GitHubアドレスを追加して、OutSystems APIでプラグインコードをラッピングするだけです。これで、開発したすべてのOutSystemsアプリで新しいネイティブ機能が利用可能になります。業務上、特殊なプラグインが必要となる場合は、まったく新しいカスタムプラグインを作成することもできます。既存のプラグインの使用とカスタムプラグインの開発の詳細については、以下の記事をご覧ください。
OutSystemsは、オフラインやネットワーク状況が良くない環境でも実行できるアプリケーションの構築に必要なすべてのツールを提供します。パフォーマンスのためにデータとコンテンツをキャッシュに格納するだけのごくシンプルなアプリから、オフライン計算を行い複雑な競合解消を必要とする高度に複雑なアプリまで、あらゆるオフライン要求にすばやく、かつ簡単に対応できます。そのため、以下のような課題を解決することが可能です。
- ローカルにデータを保存するための容量の制限
- デバイスとサーバー間のデータ同期
- データ競合とクライアント側コードの期限切れ
- 機密情報のセキュリティ
OutSystemsプラットフォームで開発したアプリケーションは、アプリケーションのコンテンツをすべて自動的にユーザーのデバイスに保存して、パフォーマンスの向上とオフラインアクセスを実現します。また、OutSystemsのビジュアル言語は、デバイスに移すデータを管理するうえで必要な機能をすべて備えています。
ローカルにデータを保存するための容量が限られているという問題に対応するため、OutSystemsではデバイスに保存する情報を視覚的に定義できます。つまり、ビジュアル言語のスピードと柔軟性を損なうことなく、どのデータをオフラインに保存するかを完全に管理できるのです。デバイス上のデータは、SQLiteを基盤テクノロジーとして使用してローカルデータベースに保存されます。データストレージの物理的な大きさ以外に保存データ量を制限する要素はなく、アプリを閉じても、デバイスを再起動しても、充電がなくなってもデータは保持されます。
同様に、データ同期もすべてOutSystemsのビジュアル言語で行います。同期プロセス発生のタイミングは管理可能です。業務の仕様がいかに複雑でもそれに見合った同期パターンを柔軟に使用できます。このプロセスはアプリケーション側から随時開始することも、ユーザーのログイン時、アプリケーションの起動時、サーバー接続の復旧時といった特定のインスタンスで自動的に開始することもできます。
以下の図は、OutSystemsを使用して開発した典型的なオフライン対応アプリケーションのランタイムアーキテクチャを示したものです。ネイティブアプリケーションには、接続がなくサーバーからスタンドアロンの状態での実行に必要なリソースがすべて含まれています。接続されている場合、アプリケーションは自動的に最新バージョンのリソースを確認したうえで自身を更新します。なお、この処理については制御やカスタマイズが可能です。
競合に対処するために、プラットフォームでは以下のような場合の同期パターンを使用できます。
- サーバーデータベースはマスターデータを保持しています。これは、時間の経過とともに変化する可能性があります。
- ローカルストレージデータベースはマスターデータのサブセットを保持しています。これも変更の可能性があります。
- 同期によって、変更されたデータがローカルストレージからサーバーデータベース、またはその逆方向に送信されます。
- サーバーでデータが更新されます。競合する変更は後で解決できるよう記録されます。
サーバー側で変更されたのが(データではなく)コードであり、クライアント側のコードが古くなっている場合、同期によって新しいコードまたは更新されたコードがサーバー側からクライアントに送信されます。
機密情報を保護する必要がある場合は、アプリケーションのデータ暗号化を有効にします。これにより、デバイス上のデータはセキュアな256-bit AES暗号化で保護されます。
バックエンドでは、クライアントがサーバーとデータを送受信できるようREST APIが自動的に生成され、公開されます。認証済みのユーザーのみが同期プロセスを開始でき、すべての接続をSSLで実行するセキュアなAPIであるため、データをセキュアに保つことができます。
OutSystemsは、モバイルプラグインなどのネイティブモバイル機能をデバッグするために、AndroidとiOSの両方に対応するデバッグ機能を提供しています。どちらの場合も、通常はUSBケーブルを介して実際のデバイスへの接続を確立する必要があります。この方法を使用すると、アプリの動作のデバッグやトラブルシューティングをより正確に行えるため、問題を発見、理解、解決しやすくなります。また、カメラやGPS位置情報など、デバイスのハードウェアやセンサーを積極的に操作、活用することができます。
OutSystemsで開発されたアプリケーションのデバッグの詳細については、こちらのオンラインヘルプをご覧ください。
プログレッシブWebアプリの配布
プログレッシブWebアプリケーション(PWA)はWebを介して提供されるタイプのアプリケーションであり、HTML、CSS、JavaScriptなどの一般的なWeb言語で開発されます。オフラインでの動作、プッシュ通知の送信、デバイスのハードウェアへのアクセスが可能であるため、ネイティブアプリケーションと同じようなユーザーエクスペリエンスが得られます。
OutSystemsでモバイルアプリを開発する際に開発者がPWAの配布を有効にすると、自動的にLighthouse(Webページの品質を評価するためのGoogleのオープンソース自動化ツール)に完全準拠したPWAを使用できるようになります。OutSystemsとOutSystemsコミュニティは、ネイティブアプリケーションとPWAをサポートするコンポーネントの範囲を着実に拡大しています。そのため、特定のロジックを追加することなく単一のコードベースを使用できます。また、1つのモバイルプラグインをネイティブアプリケーションとPWAの両方で活用できます。
OutSystemsで開発されたPWAは以下のような多くのメリットをもたらすため、特定のシナリオに最適です。
- 配布の高速化と簡素化: プログレッシブWebアプリケーションは、パブリックストア(App Store、Google Play)へのアップロードプロセスと承認を回避することができます。
- 共有と発見: PWAはソーシャルメディアでURLを介して簡単に共有したり、検索エンジンにインデックスしたりすることができます。そのためWebで見つけやすく、ユーザーを自然に引きつける新たな手段となります。また、PWAは社内向けモバイルアプリを配布する際の選択肢として優れています。
- インストールの負担軽減: PWAにはWebブラウザから直接アクセスできるため、アプリストアは必要ありません。気軽に使用を開始することができるため、エンゲージメントが高まります。
- 継続的な更新: WebベースのプログレッシブWebアプリは自動的に更新されるため、ユーザーが手動でアプリを更新する必要がありません。
- デバイスのリソースに与える影響の小ささ: PWAはインストール不要であるため、デバイスのリソースを多く使用することがありません。これは、ストレージが限られているデバイスを使用しているユーザーにとってメリットとなります。
PWAやその他のタイプのモバイルアプリケーションを開発したOutSystemsユーザーの成功事例
モバイルアプリ向けのUI/UX機能
OutSystemsを使用すると、開発者やチームはあらゆるデバイスで機能する最適なユーザーインターフェイスを作成できます。HTML、CSS、JavaScriptのエキスパートでなくても、ビジュアルデザイナでユーザーエクスペリエンスを設計し、ニーズに合わせて微調整することが可能です。WYSIWYGエディタは優れたUXの作成に必要な各種ツールを備えています。ドラッグ&ドロップエディタ、柔軟なグリッドレイアウト、スマートな垂直スペーシング、アクセラレータ(UIパターンや画面テンプレート)などを利用することで、迅速にモバイル画面を構築することができます。 画面エディタでは設計内容をリアルタイムで完全にプレビューすることができます。これによって複数のデバイス向けの設計をプレビューし、迅速に調整することができるため、作業を加速できます。
OutSystemsはOutSystems UIも提供しています。これは完全にレスポンシブな統合UIフレームワークであり、モバイルアプリ向けのカスタマイズ可能なテーマを備えています。サンプルとパターンのライブラリが充実しているため、デザイン性が高くルックアンドフィールに優れたモバイルアプリをすばやく開発できます。必要な操作は、シンプルなドラッグ&ドロップのみです。UIのコードを操作する必要はありません。
すぐに使用できるUIパターンが多数用意されているため、コーディングを一切行うことなく、ドラッグ&ドロップで見栄えのよいUIを簡単に構築できます。CSSを習得が最も難しい言語のひとつとみなす開発者が少なからずいることや、デバイスのフォームファクタの多様化によって新たな課題が生じていることを鑑み、OutSystems UIはこうした複雑さや課題に対処できる設計になっています。
コードを使用しないアプローチにより、開発者の生産性やユーザビリティが高まり、特別な設定なしでルックアンドフィールが向上します。また、魅力的なユーザーエクスペリエンスを実現するにあたって開発者に求められるスキルが軽減されます。
OutSystemsには、よりリッチなマルチチャネルのユーザーエクスペリエンスの実現に役立つウィジェットが用意されています。これらを活用することで、ユーザーはアプリへのデータ入力効率を高めることができ、開発チームはビジネス機能に注力することができます。こうしたウィジェットには、以下のような特長があります。
- HTMLおよびCSS規格に準拠しています。これは、アクセシビリティへの準拠やカスタマイズ要件の面で大きなメリットとなります。
- クライアント側の優れたJavaScriptインタラクションにより、ユーザーを引きつけるインタラクションや、必要に応じたカスタム動作の拡張が可能になります。
- ビジュアル開発環境で簡単に使用することができるため、JavaScriptのトラブルシューティングに長い時間をかけずに済みます。
- マルチチャネル対応であるため、複数のデバイスやフォームファクタに適応して動作し、モバイルシナリオでのユーザビリティを格段に向上させます。
このフレームワークには、Web用のテーマ2つとモバイル用のテーマ3つが用意されています。いずれもカスタマイズ可能であり、完全にレスポンシブです。トップメニューおよびサイドメニューのテーマは、様々な基本レイアウトに対応してレイアウトを調整します。端末用テーマはタブレットのサイズに合わせて拡大されます。タブレット用レイアウトはタブレットフォームファクタ向けに特別に設計されたものであり、画面サイズの大きさをより有効に活用できます。ユニバーサルテーマは、同じ画面セットで2つの異なるレイアウトを提供する単一のアプリケーションに最適です。また、フォームファクタに応じて機能が異なります。
数十に及ぶパターンは、いずれも全テーマでシームレスに機能し、ルックアンドフィールにもなじみます。ユーザーからも、デバイスの種類に関係なく適用でき、デザイン性が高いという評価を得ています。
ボタングループ、トグルボタン、ドロップダウン、バルーン、カルーセルといった魅力的な新規パターンやコントロールを備えたビルド済みWebブロックで、既存のOutSystemウィジェットを拡張することができます。これにより、アプリケーションのユーザーインターフェイス構築を手軽に行えるようになります。
モデリングしやすい最新式のレイアウトでのコンテンツ表示から、革新的なコントロール、データを視覚化する要素、新しいナビゲーション機能に至るまで、アプリケーションに必要となるパターンがほぼ網羅されています。また、レスポンシブな動作やモバイルエクスペリエンスの設計に適した特殊なパターンもあります。
OutSystemsでは、ビルトインロジック、スタイル、サンプルデータが用意され、一通りの機能を備えた画面テンプレートを利用できるため、エンタープライズアプリケーションの開発が容易になります。一般的なエンタープライズアプリケーションのユースケースには、このテンプレートでほぼ対応できます。これらを使用すると、世界をリードするアプリケーションを幅広く研究することで生まれたUI/UX設計のベストプラクティスを適用することもできます。
導入画面、ディレクトリ、製品詳細、買い物かごのほか、リストやギャラリーなどのプロファイルなど、あらゆる画面を企業のブランドガイドラインに合わせて完全に編集・カスタマイズできます。変更するウィジェットにエンティティをドラッグ&ドロップするだけで独自のデータも簡単に接続可能です。
OutSystems UIでは、テーマ、レイアウト、パターンのすべてがレスポンシブです。表示すべき内容をブラウザやデバイスによって決まるクライアント側アプローチではなく、「RESS(サーバー側コンポーネントによる応答性)」と呼ばれるサーバー側アプローチを採用しています。コンテンツは、特定のデバイスに送信される前にサーバーで計算され最適化されます。ページを適応させることでフィット感やパフォーマンスが向上します。この手法は、ブラウザやデバイスに決定を委ねるアプローチと比べて、以下の点で優れています。
- サーバーが使用中のデバイスを認識しているため、必要とされる情報のみをブラウザに送信できる。
- CSSメディアクエリが存在しないため、特定のデバイス向けCSS命令がわかりやすくなる。
- サーバーでのデバイス対応に、様々な戦略を用いることができる。
レスポンシブパターンでは、CSSやJavaScriptを1行も書くことなく、各デバイスタイプに対してどのレスポンス動作をとるべきかを定義することができます。さらに、多数用意されているビジュアルAPIを活用し、アプリを使用しているデバイスタイプに応じてサーバーロジックを実行することも可能です。たとえば、アプリがタブレット端末やデスクトップPC上で実行されている場合にはデータベースから特定のデータのみを取り出し、スマホ上で実行されている場合には最適化バージョンの画像を取り出すといった形です。
フロントエンド/バックエンド開発のしやすさ
OutSystemsには、モバイルアプリ向けのフロントエンドロジックの構築に必要な機能がすべてそろっています。複数のプラットフォームに対応可能なビジュアル言語により、アプリケーションとユーザーとのインタラクションのあらゆる側面を容易かつ迅速に作成・変更することが可能です。iOSとAndroidで同じ言語を使用するため、複数のOS用にコーディングをする必要がなくなり、デバイスでコードを実行するというパフォーマンスのメリットを存分に享受できます。
OutSystemsモバイルアプリのバックエンドは、フロントエンドと同じビジュアル言語で構築されます。そのため、習得する言語は1つで済みます。OutSystemsでは、バックエンドの開発を簡素化する機能を多数提供しています。具体的には、以下のような機能です。
- 外部のエンタープライズシステム、データベース、カスタムアプリとの簡単な連携、およびREST APIの連携
- 複数のデータソースやAPIの視覚的な組み合わせと調整による、セキュアなモバイルエンドポイントの実現
- カスタムコードによる拡張
- 共通のIDシステムと連携した、集中型のIDおよび認証システム
- バックエンドでの長期実行処理をカスタマイズするためのバックグラウンドジョブおよび非同期のイベント駆動型メカニズムのサポート
- 巨大コミュニティが提供するオープンソースコンポーネント
OutSystemsプラットフォームを使用すると、ビジュアルモデルでエンタープライズレベルのアプリケーションを生成することができます。つまり、デフォルトでセキュア(OutSystemsのモバイル専用セキュリティ機能を参照)、堅牢、スケーラブル、監査可能、管理可能なアプリケーションになるのです。