1. 概要

AppPotが提供する機能を使うためには以下の2つの方法があります。

  • REST APIを利用
  • AppPot SDKを利用

スマードデバイスのアプリではない、他システムやウェブのサービスからAppPotの機能を使うにはREST APIを利用します。REST APIを使うことでAppPotのほぼ全ての機能をSDKを通さず直接利用することができます。スマートデバイス向けのアプリを開発する際にはAppPot SDKを利用することでREST APIを意識することなく、OOPの手法だけでアプリを開発できます。

アプリ開発者はAppPot SDKを使うことでスマートデバイスで稼働するアプリをより迅速かつ効率的に作成できます。AppPot SDKはB2C、B2BやB2Eなど、あらゆる種類のアプリの作成に対応しておりますが、特に強化されたセキュリティと企業システムとの親和力の面で優れています。AppPotのSDKを導入することでアプリの開発者はデータの安全な永続化処理、サーバーとの同期、トランザクション管理、オフライン対応、プッシュメッセージ対応等、アプリ製作で必要な多様な機能をノンコーディングで利用できるので、自分が実装したい機能だけにフォーカスできます。

AppPotはiOS、Android、JavaScriptに対応した3つのSDKを提供します。iOSとAndroid向けのSDKは各プラットフォームのネイティブアプリを作成するために使います。JavaScriptのSDKはビュー等にHTMLやCSSを利用してハイブリッドアプリを作成するために使います。制作するアプリの配布対象のプラットフォームと実装方式に適したSDKを選んで使って下さい。

AppPot SDKを利用した開発の流れ

以下にAppPot SDKを利用したアプリ開発の流れを示します。

Alt development process
・図:AppPot SDKを利用した開発の流れ

AppPotサーバーの準備

アプリ開発に入る前に先ずサーバー側の管理画面からアプリを新規登録する必要があります。アプリを登録する際にはアプリを使用できるグループを指定する必要がありますので、AppPot管理画面からグループとそれに属するユーザーを定義してあることが前提となります。以下にAppPot SDKを使う前に管理画面で行うべき作業を記述します。各作業の詳細については管理画面のマニュアルを参照して下さい。

  • グループとユーザーの登録
  • アプリ情報の登録
  • プッシュメッセージ送信用証明書の登録(オプション)

2. 共通仕様

AppPot SDKがアプリ開発のために提供する機能

  • Value Object(以降、VOと称する)の定義によるデータモデルの自動生成
    • アプリ開発者がVOを定義してビルドすることで端末内とサーバー側にデータモデルが自動生成されます。
    • データを保存する場所はValue Objectの属性の指定によって端末と、サーバー、あるいはその両方を指定できます。
    • 自動生成したデータモデルはVOの定義を変更することでいつでも修正できます。
    • 結果的にアプリ内にデータベースの作成と操作が自動化され、サーバー側の開発も不要となります。
  • データの操作機能の提供
    • Value Objectで定義したデータモデルはValue Objectを操作することで自動的に永続化処理が行われます。
    • 端末に保管したデータは定期的にサーバーのデータと同期され、常に最新の情報を保ちます。
    • 端末に保管するデータの寿命を指定し、端末内のストレージを無駄に使うことを防ぐこともできます。
    • アプリ開発者はデータの永続化処理の詳細はAppPot SDKを任せて、各アプリ独自の処理を作ることに集中できます。
  • ネットワーク処理の支援
    • 全てのネットワーク関連の処理はSDKによって隠蔽されます。アプリ開発者がネットワーク処理を意識する必要はありません。
    • 端末がオフライン状態でもSDKがユーザーの操作を記憶し、ユーザーに意識させることなく、端末が再びオンラインになった時にサーバーに変更を反映することができます。
  • 強化されたアプリのセキュリティ
    • 認証と認可はAppPot SDKによって自動的に行われます。アプリの開発者はAppPotが提供する認証・認可の機能を使うこともできますし、社内の既存認証システムとAppPotを連携して使うこともできます。
    • ログイン、ログアウト及びユーザー権限に基づくデータへのアクセス制御がSDKによって行われます。もうアプリ毎に同様の機能を作る必要がありません。
    • ユーザーの認証情報は各プラットフォーム内の安全な場所に暗号化して保存されます。また端末に保持する情報はValue Objectの属性指定によって選択的に暗号化できます。悪意を持つ人が端末のアプリの内部を直接覗いても重要な情報が簡単に漏洩されることはありません。
  • アプリ使用状況のモニタリング
    • AppPot SDKが提供するモニタリング機能を使うことでアプリの使用状況をモニタリングできます。
    • モニタリングする情報の詳細度はAppPotの管理画面から設定を変えることでいつでも変更可能です。この変更は既に配布されたアプリに対しても適用されます。
    • モニタリング情報を活用することでアプリのKPIを測定し、更なる改善等に活用できます。
  • プッシュメッセージの利用
    • AppPot SDKを使ってデバイスを登録しておくとAppPotの管理画面から各アプリに対して簡単にプッシュメッセージの送信ができます。
    • プッシュメッセージの送信先はユーザーが属するグループ単位で制御できます。
    • よく使うプッシュメッセージはテンプレートとして登録し、より効率的に使うことができます。
    • ユーザーのアプリから他のユーザーに対してプッシュメッセージを送信することもできます。

データの保存場所の選択

iOS版、Android版SDKの場合は、APIを直接使用するのに加えて次の機能を使用することができます。

選択できるデータの保存場所のオプション

オブジェクトごとにpersistenceTypeを指定することで、次の3つのデータの持ち方を選択することができます。

タイプ 説明
ServerOnly(デフォルト) モバイル端末にはデータを保存せず、サーバーにだけデータを保存します。モバイル端末がオフラインの状態ではデータの取得や更新ができません。
LocalOnly モバイル端末にだけデータを保存します。サーバーにデータを保存しないので、ユーザーの個人的なデータを保持するために使われるオプションです。他のユーザーとデータを共有することはできません。
LocalAndServer モバイル端末とサーバーの両方にデータを保持します。両方のデータはオブジェクト毎に指定した条件に基づき、定期的に同期されます。モバイル端末がオンラインの時にはサーバーにあるデータを、オフラインの時にはモバイル端末のデータを使用できます。また、オフラインの間にモバイル端末で行われたデータの操作は一時的にモバイル端末内に保存され、オンラインになった時点でサーバーと同期されます。

各オプションの使用例

  • 在庫情報はリアルタイムで参照、更新する必要があるため、ServerOnlyを指定する。
  • 自営業所の顧客マスタの情報はオフライン時にも参照したいため、LocalAndServerを指定する。
  • 正式報告書ではない、ユーザーの一時的なメモなどは作成者だけが参照・更新するため、LocalOnlyを指定する。

LocalAndServerの自動同期の仕様

LocalOnlyやServerOnlyはデータの保存場所が一箇所であり、その仕様は明確ですが、LocalAndOnlyに対しては自動同期とオンライン時とオフライン時の挙動について理解しておく必要があります。

サーバーとモバイル端末の自動同期の条件指定

オブジェクト単位に次のオプションを指定することができます。オブジェクトの自動同期は以下の条件に基づいて処理されます。

項目名 iOS変数名 Android変数名 デフォルト値 説明
自動同期実施有無のフラグ autoRefresh autoRefresh 0(false) 自動同期を行うか
自動同期の間隔(秒数で指定) autoRefreshInterval refreshInterval 3600  
自動同期したデータの端末内の保持期間(秒数で指定) lifespan lifespan 3600  
自動同期するデータの権限指定 scopeTypeForAutoRefresh scopeTypeForAutoRefresh 2(Group) 同期時に指定したスコープに従ってデータを取得する。

送信時の再送

LocalAndServerの場合、データの更新は以下のような処理順序で行われます。

  1. モバイル端末内データを更新
  2. AppPotサーバーのデータを更新

    2-1. AppPotサーバーへの通信失敗
    2-2. モバイル端末内に更新イベントをキューイング
    2-3. 通信ができるようになるとキューイングされた更新をAppPotサーバーに連携

データの取得

AppPot SDKは基本AppPotサーバーから取得したデータをアプリに返します。この際に、もしモバイル端末内で変更されたデータがあったらそれはサーバーとの同期が取れた状態で表示されます。
モバイル端末がオフラインでサーバーとの通信ができない場合はモバイル端末内にあるデータをアプリに返します。

モバイル端末内データの暗号化

オブジェクトの項目単位(プロパティ単位)でモバイル端末内のデータを暗号化することができます。この機能を使うとより強力なセキュリティを確保できますが、暗号化した項目を検索条件に使用することはできません。詳細は各SDKのマニュアルを確認して下さい。