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のネイティブアプリはIonic CapacitorやApache Cordovaのフレームワーク上に構築されるため、開発者はアプリの様々なネイティブデバイス機能にシームレスにアクセスできます。操作は、プラグインのGitリポジトリを参照するだけで完了します。
アクセス可能な機能には、ジオロケーション、カメラ、通知、バーコードスキャナ、ビーコンなどがあります。これはOutSystemsの言語がシンプルだからこそ可能になるものです。開発者が使用できるプラグインには3つのタイプがあります。
プラットフォームでサポートされているプラグインはOutSystems Forgeで入手可能であり、OutSystemsの認定と全面的なサポートを受けています。
コミュニティでサポートされているプラグインはOutSystemsコミュニティのメンバーがForgeにアップロードしたものであり、ベストエフォート型のサポートも提供しています。
必要なプラグインがForgeにない場合は、独自のプラグインを作成できます。利用可能な数千種類ものCapacitorプラグインや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は以下のような多くのメリットをもたらすため、特定のシナリオに最適です。
- 配布の高速化と簡素化: PWAは、パブリックストア(App Store、Google Play)へのアップロードプロセスと承認を回避することができます。
- 共有性と検索性: PWAはURLを介して(ソーシャルメディアでも)簡単に共有したり、検索エンジンにインデックスしたりすることができます。そのため、見つけやすく、オーガニックトラフィックを伸ばしやすくなります。また、PWAはアプリストアを経由せずに社内向けモバイルアプリを配布する際の選択肢として優れています。
- インストールの負担軽減: PWAにはWebブラウザから直接アクセスできるため、アプリストアは必要ありません。気軽に使用を開始することができるため、エンゲージメントが高まります。
- 継続的な更新: WebベースのPWAは自動的に更新されるため、ユーザーが手動でアプリを更新する必要がありません。
- デバイスのリソースに与える影響の小ささ: PWAはインストール不要であるため、デバイスのリソースを多く使用することがありません。これは、ストレージの限られたデバイスを使用しているユーザーにとってメリットとなります。
PWAやその他のタイプのモバイルアプリケーションを開発したOutSystemsユーザーの成功事例
モバイルアプリ向けのUI/UX機能
OutSystemsを使用すると、開発者やチームはあらゆるデバイスで機能する高品質なユーザーインターフェイスを設計できます。HTML、CSS、JavaScriptのエキスパートでなくても、ビジュアルデザイナでユーザーエクスペリエンスの構築や微調整を行うことが可能です。ドラッグ&ドロップエディタ、柔軟なグリッドレイアウト、スマートな垂直スペーシング、アクセラレータ(UIパターンやスキャフォールディング)など、優れたUXを生み出すために必要なものがすべて含まれたWYSIWYGエディタを利用することで、迅速かつ効率的にモバイル画面を作成することができます。
画面エディタでは、設計内容をリアルタイムでプレビューすることができます。これにより、複数のデバイスでのアプリの外観を即座に確認して調整できるため、開発が高速化されます。
OutSystemsはOutSystems Mobile UIも提供しています。これは完全にレスポンシブな統合UIフレームワークであり、モバイルアプリ向けのカスタマイズ可能なテーマを備えています。サンプルとパターンのライブラリが充実しているため、デザイン性が高くルックアンドフィールに優れたモバイルエクスペリエンスをチームですばやく構築できます。必要な操作は、シンプルなドラッグ&ドロップのみです。UIを手作業でコーディングする必要はありません。
すぐに使用できるUIパターンが多数用意されており、画面に直接ドロップできるようになっているため、コーディングを一切行うことなく、リッチなインターフェイスを簡単に構築できます。CSSは、フロントエンド言語の中でも特に習得が難しいとされています。また、デバイスのフォームファクタも増え続けています。Mobile UIは、そうした複雑さを解消する設計になっています。コードを使用しないアプローチにより、開発者の生産性が向上し、特別な設定をしなくてもよりよいユーザビリティやルックアンドフィールを得られます。また、先進的で魅力的なユーザーエクスペリエンスを構築するために必要なスキルのハードルも下がります。
OutSystemsには、よりリッチなマルチチャネルのユーザーエクスペリエンスの実現に役立つウィジェットが用意されています。これらを活用することで、ユーザーはアプリへのデータ入力効率を高めることができ、開発チームはビジネス機能に注力することができます。こうしたウィジェットには、以下のような特長があります。
- HTML規格とCSS規格に準拠しています。これは、アクセシビリティへの準拠やカスタマイズ要件の面で大きなメリットとなります。
- クライアント側の優れたJavaScriptインタラクションにより、ユーザーを引きつけるインタラクションや、必要に応じたカスタム動作の拡張が可能になります。
- ビジュアル開発環境で簡単に使用することができるため、JavaScriptのトラブルシューティングに長い時間をかけずに済みます。
- マルチチャネル対応であるため、複数のデバイスやフォームファクタに適応して動作し、モバイルシナリオでのユーザビリティを格段に向上させます。
このフレームワークには、モバイルアプリに特化したテーマが組み込まれています。デザイントークンを使用してカスタマイズプロセスを効率化し、インターフェイス全体での一貫性を確保します。
高度なカスタマイズが可能で汎用性の高いLayoutウィジェットも用意されています。複数の基本レイアウト構成の中から選択し、アプリケーションでの必要性に応じてトップバー、ボトムバー、サイドメニューなどの要素を簡単に追加することができます。
開発を高速化できるよう、すぐに使用可能な一連の共通画面(Login、Forgot Password、Profileなど)が用意されているので、初めてのアプリケーション作成が格段に容易になります。
何より大切なのが、このテーマとレイアウトのシステムがモバイルアプリケーションとタブレットアプリケーションの両方で動作する設計になっているという点です。どのコンポーネントパターンも互換性があり、一貫したビジュアルスタイルを自動的に適用します。
このフレームワークには、ボタングループ、トグルボタン、ドロップダウン、ボトムシート、カルーセルといった最新のコントロールやパターンを多数備えたビルド済みウィジェットが含まれています。これにより、アプリケーションのユーザーインターフェイス構築をすばやく簡単に行えるようになります。
先進的なレイアウトでのコンテンツ構築から、高度なコントロール、データを視覚化する要素、新しいナビゲーション機能に至るまで、アプリケーションに必要となるパターンが標準でほぼ網羅されています。また、レスポンシブな動作やモバイルファーストのエクスペリエンスの設計に適した専用のパターンもあります。
特定のユースケースにOutSystems UIフレームワークを使用する場合、画面テンプレートを使用するとエンタープライズアプリケーションの開発を高速化できます。画面テンプレートには、ビルトインロジック、スタイル、サンプルデータを備えた完全に機能する画面が用意されています。また、一般的なエンタープライズシナリオを網羅しており、一流アプリケーションの分析により得られたUX/UIのベストプラクティスが組み込まれています。
オンボーディングフローから、ディレクトリ、製品詳細ページ、リストやギャラリーを備えたプロフィール画面、買い物かごまで、どのテンプレートも企業のブランドガイドラインに合わせて完全に編集・カスタマイズできます。更新するウィジェットにエンティティをドラッグ&ドロップするだけで、独自のデータも簡単に接続可能です。
OutSystems UIのテーマ、レイアウト、パターンはすべてレスポンシブです。表示すべき内容の決定をブラウザやデバイスに委ねるのではなく、「RESS(サーバー側コンポーネントによるレスポンシブWebデザイン)」と呼ばれるサーバー側アプローチを採用しています。サーバーが各デバイス向けにコンテンツを計算・最適化したうえで送信するため、フィット感とパフォーマンスの両方が向上します。
このアプローチには、クライアント側でレスポンシブにする場合と比べて以下のようなメリットがあります。
- 使用中のデバイスをサーバーが認識しているため、必要とされる情報のみをブラウザに送信できる。
- CSSメディアクエリを管理する必要がないため、デバイス固有のスタイルがわかりやすくなる。
- 様々なデバイスに対応するにあたり、サーバーで多様な戦略を用いることができる。
レスポンシブパターンでは、CSSやJavaScriptを一切記述することなく、各デバイスタイプでインターフェイスをどう表示すべきかを定義できます。ビジュアルAPIも用意されているため、デバイスに応じてサーバーロジックを実行することもできます。たとえば、アプリがタブレット端末やデスクトップPC上で実行されている場合には特定のデータのみを抽出し、スマホ上で実行されている場合には最適化された画像を提供するといった形です。
フロントエンド/バックエンド開発のしやすさ
OutSystemsには、モバイルアプリ向けのフロントエンドロジックの構築に必要な機能がすべてそろっています。複数のプラットフォームに対応可能なビジュアル言語により、アプリケーションとユーザーとのインタラクションのあらゆる側面を容易かつ迅速に作成・変更することが可能です。iOSとAndroidで同じ言語を使用するため、複数のOS用にコーディングをする必要がなくなり、デバイスでコードを実行するというパフォーマンスのメリットを存分に享受できます。
OutSystemsモバイルアプリのバックエンドは、フロントエンドと同じビジュアル言語で構築されます。そのため、習得する言語は1つで済みます。OutSystemsでは、バックエンドの開発を簡素化する機能を多数提供しています。具体的には、以下のような機能です。
- 外部のエンタープライズシステム、データベース、カスタムアプリとの簡単な連携とREST APIの連携
- 複数のデータソースやAPIの視覚的な組み合わせと調整による、セキュアなモバイルエンドポイントの実現
- カスタムコードによる拡張
- 共通のIDシステムと連携した、集中型のID・認証システム
- バックエンドでの長期実行処理をカスタマイズするためのバックグラウンドジョブと非同期のイベント駆動型メカニズムのサポート
- 巨大コミュニティが提供するオープンソースコンポーネント
このプラットフォームでビジュアルモデルから生成されるアプリケーションは、すべてデフォルトでエンタープライズレベルのセキュリティ、堅牢性、拡張性、監査性、管理性を備えることになります。