メインコンテンツまでスキップ

Android アプリ

Android 開発者ガイド

このドキュメントでは、LeadHub のネイティブ Android アプリ(Kotlin で記述)について説明します。このアプリは REST API を介して LeadHub インスタンスに接続します。アプリのビルド、カスタマイズ、またはデプロイが必要な開発者を対象としています。


必要条件

始める前に、以下が揃っていることを確認してください:

要件詳細
Android StudioHedgehog(2023.1.1)以降
JDK17 以上
最低 API レベル26(Android 8.0)
LeadHub インスタンス有効な SSL 証明書を持つ HTTPS でアクセス可能
API キーユーザーダッシュボードで生成

プロジェクトのセットアップ

1. プロジェクトを開く

Android Studio で android/ フォルダを開きます。Gradle が依存関係を自動的に同期します。

2. ベース URL を設定する

app/src/main/assets/config.xml を開き、インスタンスの URL を設定します:

<config>
<base_url>https://yourdomain.com</base_url>
</config>

3. 同期してビルド

Build → Make Project を実行して、すべてが正しくコンパイルされることを確認します。


アーキテクチャ

アプリは標準的な Android MVVM パターンを使用します:

レイヤーテクノロジー
ネットワークRetrofit + OkHttp
UI 状態ViewModel + LiveData
ローカルストレージRoom(SQLite データベース)
プッシュ通知Firebase Cloud Messaging(FCM)
認証情報の保存EncryptedSharedPreferences

認証フロー

  1. ユーザーがログイン画面でインスタンス URL と API キーを入力します。
  2. アプリが GET /api/health を呼び出してインスタンスへのアクセス可能性を確認します。
  3. アプリが API キーを Bearer トークンとして使用して GET /api/users/me を呼び出します。
  4. 成功すると、API キーが EncryptedSharedPreferences に保存され、ユーザーは認証済みとみなされます。

プッシュ通知

アプリは新しいリードの通知に Firebase Cloud Messaging を使用します。

  1. Firebase Console でプロジェクトを作成します。
  2. アプリのパッケージ名で Android アプリを追加します。
  3. google-services.json をダウンロードして app/ に配置します。
  4. バックエンドが通知を送信できるように、FCM サーバーキー(FCM_SERVER_KEY)を LeadHub サーバー設定に追加します。

リリースビルド

1. Keystore を生成する

keytool -genkey -v -keystore leadhub.keystore -alias leadhub -keyalg RSA -keysize 2048 -validity 10000

2. 署名を設定する

アプリの build.gradlesigningConfigs セクションに keystore の詳細を追加します。

3. リリース APK / AAB をビルドする

Android Studio の Build → Generate Signed Bundle / APK を使用するか、以下を実行します:

./gradlew bundleRelease

出力された AAB ファイルは app/build/outputs/bundle/release/ にあります。

4. Google Play にアップロードする

Google Play Console の 製品版 → 新しいリリースを作成 で AAB ファイルをアップロードします。


使用する API エンドポイント

エンドポイント目的
GET /api/healthインスタンスのアクセス可能性を確認
GET /api/users/meAPI キーを検証しユーザー情報を取得
GET /api/leadsリード一覧を取得
GET /api/leads/{id}リードの詳細を取得
PUT /api/leads/{id}リードを更新
GET /api/pipelinesパイプラインとステージを取得

必要な最小 API キースコープ

スコープ理由
read:leadsリードの表示
write:leadsアプリからリードを更新
read:pipelinesパイプラインステージを表示