接続先のシステムから確認する
正確な見積もりにはサービス名だけでは足りません。公開された仕様、テスト環境、アクセス要件、アプリで実行すべき操作を確認します。
対応APIへの接続と、適切なインターフェースがないシステムへの接続は異なります。資料、アカウント権限、バックエンド機能の不足は開発前に明らかにします。
許可されたアクセスとサポート対象の連携方法を使います。独自のモバイルアプリを作っても、第三者のライセンス、利用条件、アクセス要件はなくなりません。
対応範囲を定められる連携作業
アカウントと認証付きリクエスト
対象システムに適したログインと認可を実装します。セッションの期限切れ、権限の取り消し、操作権限のない利用者への対応を定義します。
業務データと同期
顧客情報、案件、在庫など合意したデータをアプリに接続します。各記録の管理元、競合する更新、不完全な更新の扱いを決めます。
外部SDK
仕様があるメーカー製ライブラリを組み込み、設定と互換性の要件、アプリに加わる動作を確認します。SDKを使う場合も権限とデータの扱いの確認は必要です。
通知、アップロード、取引を伴う操作
開始、進行、完了確認、復旧までを範囲に含めます。ファイルのアップロードと読み取りだけの照会では扱いが異なり、データを変更するリクエストを無条件に再送してはいけません。
Flutter向けのネイティブ連携
Flutter案件にAndroid専用SDKが必要なら、ネイティブ実装とDart側との境界を調べます。共通のモバイル製品はFlutter開発をご覧ください。
失敗の理由が利用者に伝わるようにする
連携が失敗したとき、何が起き、次に何ができるかを示します。どんな失敗も空白画面にしてはいけません。
| 状況 | 定義すべき動作 |
|---|---|
| 通信できない。 | 使えない操作と、端末内に作業を保存できるかを示す。 |
| セッションの期限が切れた。 | 必要以上に入力を失わず、サポートされた認証手順で復帰する。 |
| サービスがリクエストを拒否した。 | 適切な案内を表示し、調査に必要な診断情報を残す。 |
| データ変更後にタイムアウトした。 | 重複処理を起こし得る再送の前に結果を安全に確認する。 |
| メーカーが応答やSDKを変更した。 | 互換性の前提と必要になり得る保守を明確にする。 |
これらは連携仕様の一部です。具体的な実装はAndroidアプリだけでなく、APIとバックエンドにも左右されます。
認証情報と責任の所在を明確にする
サーバー管理者の認証情報をモバイルアプリ内に隠しておくべきではありません。特権操作には適切な権限を持つバックエンドが必要な場合があります。
アプリの設定、サーバー側の操作、関連アカウントの管理者を定めます。最初の問い合わせでは本番トークンやパスワードではなく、資料のリンクと必要な操作の説明を送ってください。
バックエンドの変更、管理画面、継続的なサービス料金は、提案に明記しない限り別の範囲です。
引き継ぎに含めるもの
案件に応じて、実装の変更、設定手順、項目の対応表、前提条件、主な成功・失敗場面の確認を納品物にできます。
提供元にテスト環境があれば適切な検証に使います。環境と対応バージョンを記録し、将来のすべての変更まで確認済みとは主張しません。
連携を中心としたアプリ全体はAndroidアプリの受託開発、物理機器との接続はAndroidの機器連携をご覧ください。
よくある質問
CRMや既存WebサイトにAndroidアプリを接続できますか?
可能性があります。サービス名、必要な操作、公開API資料をお送りください。必要な操作と権限が利用できるかを確認します。
バックエンドへのアクセスも必要ですか?
連携内容によります。既存APIだけで足りる場合も、サーバー側の変更やバックエンド担当者による設定が必要な場合もあります。
非公開のメーカーSDKにも対応できますか?
適切なアクセスとライセンスがあれば検討できます。資料、対応環境、機密情報を公開せずにテストする方法が必要です。
オフラインでも連携できますか?
一部のデータと操作はオフライン向けに設計できます。キャッシュ、送信待ち、変更の整合方法を範囲に定めます。
既存の連携機能を修正できますか?
はい。失敗する操作と発生条件をお知らせください。まずアプリの不具合調査を行うのが適切な場合もあります。
何と何をつなぎたいか教えてください
アプリ、サービスまたはSDK、利用者が完了したい操作をお知らせください。公開資料のリンクがあれば添えてください。