このページでは、Android用AppPot SDKの概要の説明と、Android Studioで使用するための手順を記載しています。

準備ができている人は、次のデータアクセスの手順を参照して下さい。

1. 概要

アプリ開発者はAppPot SDKを使うことでスマートデバイスで稼働するアプリをより迅速かつ効率的に作成できます。

特に強化されたセキュリティと企業システムとの親和力が特徴と言えます。AppPotのSDKはデータの安全な永続化処理、サーバーとの同期、トランザクション管理、オフライン対応、プッシュメッセージ対応等、どのアプリでも必要な機能をノンコーディングで利用できます。アプリの開発者は実装したい機能だけにフォーカスできます。

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

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

Webアプリや、ハイブリッドアプリからAppPotの機能を使うにはREST APIを利用します。

アプリ開発の際にはAppPot SDKを利用することでREST APIを意識することなくアプリを開発できます。AppPotはiOS、Androidに対応したSDKを提供します。iOSとAndroid向けのSDKは各プラットフォームのネイティブアプリを作成するために使います。制作するアプリの配布対象のプラットフォームと実装方式に適したSDKを選んで使って下さい。

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

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

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

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

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

3. AppPotサーバーの準備

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

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

4. AppPot SDKの導入

AppPot SDKのインポート

アプリ開発に使用するIDEを開き、ダウンロードしたApPot SDKを追加します。ここではEclipseを前提にした説明をします。

既にアプリを開発するためのプロジェクトを作成している場合はそのプロジェクトをEclipseで開きます。

通常のAndroidアプリと同様にAndroid Projectを新規作成してください。
ここで特にAppPotに依存した設定はありません。

この例ではAppPotDemoApplicationというアプリをプロジェクトを新規作成して、Activityを作っています

次にAppPot SDKを作成したプロジェクトのlibsフォルダにドラッグ&ドロップで取り込み、ビルドバスに含めます。


プロジェクトにAppPot SDKのjarを取り込んだ状態


AppPot SDKをビルドパスに追加

また、AppPotのSDKが必要とする以下のPermissionをAndroidManifest.xmlに追記してください。

  • android.permission.INTERNET:インターネット通信に必要
  • android.permission.ACCESS_WIFI_STATE:WiFi状態チェックに必要
  • android.permission.ACCESS_NETWORK_STATE:ネットワークアクセス状況チェックに必要

AndroidManifest.xmlの<application>の前に下記を追記

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

アプリの実行時に以下のようなエラーが出る場合、正しくPermissionが追加されていない可能性があります。

        07-15 07:38:09.191: E/AndroidRuntime(29208): Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10237 nor current process has android.permission.ACCESS_NETWORK_STATE.
				07-15 07:38:09.191: E/AndroidRuntime(29208): at android.os.Parcel.readException(Parcel.java:1425)
				07-15 07:38:09.191: E/AndroidRuntime(29208): at android.os.Parcel.readException(Parcel.java:1379)

これでAppPot SDKを使うための準備は終わりました。次からは実際にAppPot SDKを使う方法について記述します。

アプリの運用とバージョン管理

AppPot SDKを使用するアプリはAppPot管理画面で登録したAppIdやバージョン、アクセスするサーバーアドレス等をSDKに設定してあります。
実際のアプリの変更とは関係なく、AppIdが変わるとそれは別のアプリとして扱われます。
またバージョンが変わると同じアプリの別バージョンとして扱われます。
バージョンが変わるとAppPotサーバー上で異なるデータベースを使う事になります。
従って、既存のデータをそのまま使いたい場合はアプリのバージョンをそのまま維持するか、データの移行を行う必要があります。

なお、AppPotで管理するアプリのバージョンはAppStoreや、Google Play等で公開する際に指定するバージョンには依存せず、個別に運用できます。